卷积神经网络与视觉识别-斯坦福CS231n课程笔记

    我们训练模型其实就是构造出特定的函数,能够满足特定的输入和输出的对应关系

    参数的训练是大规模的矩阵运算。一个重要问题就是由于幂律分布,有意义的数据是少数,即呈现稀疏矩阵的形式,因此需要压缩,降维等等操作才能充分利用计算资源。如同搜索需要我们采取一定的优化的措施,如深度/广度优先搜索,还有各种条件的剪枝处理等等,能够大大减少搜索空间的范围。而更少的参数,需要如同PCA主成分分析,需要找到相关性更大的参数/特征来进行线性组合

    迁移学习可能运行我们使用经过训练的模型的参数,运用到不同领域,使得我们在新场景的使用不需要训练这么大规模的参数,从而减少计算量。底层的机制可能就是大量的特征是通用的,其已经构造出一定的有意义的函数。

    团队合作可能也对应于一定的运算机制,能够实现更宏伟的目标。

    Distbelief到tensorflow,开放的机器学习系统,更多人的协作系统,共享和大量基础架构的搭建,使得人们更加注重想法的提出而不是实现(跨平台,跨设备)。

    输出也可以作为下一步的输入,如同反馈体系,能够呈现螺旋式的上升的过程,能够识别更高维度的特征。本质上这是学习。

    数据驱动的图像分类方式:线性分类器(非显性编程)

    需要考虑特定的指标的定义,如距离有欧式距离,曼哈顿距离等等,于是有KNN算法,进行聚类分析:1随机生成n个中心2计算距离并分类3更新中心4继续计算距离直至收敛,生成n个分类

    基于模型/统计编程,构造出函数f(x,W,b)=Wx+b..W是权重,x是具体的对象,我们能够通过其加和来构造出级数∑wixi,从而逼近特定的函数,从而能够在图像的像素矩阵(视为高维的对象)和特定的名词/分类构建一定的联系。可以理解为在图像构建的高维空间构造一定的分类曲线。只要维度足够高,就可以如同微积分基本定理一样实现高维的划分。

    损失函数和最优化

    构造出一定的损失函数和目标函数,能够定量测定当前分类器的好坏,从而能够进一步地改进。在规划中,约束条件是必要的,损失函数高说明这是很差的分类,需要进一步调整参数。

    Softmax函数作为分类器,其分数一方面可以作为各种分类准确性的度量,同时也可以理解为特定分类的概率,可能可以使用贝叶斯推断来进一步运算。

    梯度下降法,求导df(x)/dx=lim [f(x+h)-f(x)]/h.近似法,斜率可以往更小的方向移动,直至极值,找到使损失函数最小的点。

    具体的对象可以分解为一系列特征的权重加和,这是线性代数的思想,线性无关的基底的选择性组合对应于具体的向量/对象,即我们收集的数据。具体的特征可以通过统计来构造。

    神经网络训练:定义添加神经层的函数:1训练的数据2定义节点接收数据3定义神经层即隐藏层和预测层4定义损失函数4选择优化方法使得损失最少

    链式法则,反向传播,中间变量对损失函数的影响。每一次更新参数,都需要经过前馈和后馈。

    超参数的选择:隐藏层的数目,单个隐藏层的神经元数目,学习率,步长,随机失活dropout的概率等等,

    多隐藏层就对应于这些中间函数,对应于最后的特征。

    Dropout技术,将一些权重较低的神经元按照一定概率进行消除,即瘦身,这种随机失活能够减少神经网络的规模和计算量,而且也更难过拟合。

    思考一个发育式的机器学习算法,新的数据输入能够如同生物发育使得内在的一套编码机制能够根据具体的环境/数据表达,如同创生生命一样创生智能,如群体智能。

    卷积神经网络

    视觉皮层的感知机制,层级式的架构,矩阵叠加,深度学习就是多层网络的叠加。;卷积操作可以理解为一定的数据压缩,可以把更大信息量的数据进行运算。迁移学习可能就是利用封装好的参数层,能够对应于大脑的一些固定的架构(生物的进化是打补丁式的更新),从而能够大大减少新物体的训练所需要的计算量。

    滤波器filter(具体的大小也是一种参数如5*5*3),进行卷积运算即点乘dot。池化层,找到更加重要的信息(一种采样)。需要经过激励函数如ReLU函数的运算(神经元的运算∑wixi),这些层次彼此交叉,最后形成一定的特征。最后的全连接层可以构建最后分类的映射。

    在分类的基础上继续追求,即物品分割,以方框的形式来包围特定分类的物体。这是更加细化的计算,因为具体的分割可以是更加无限可能的,预测可以理解为搜索,可能的搜索空间将十分大,所以还是需要神经网络算法来构建出这种联系即定位。找到具有更大可能的区域进行划分,即通过特制的匹配。(region proposal)

    R-CNN算法,首先构造出一定数目的方框如2000个,然后在其中找到具有更大可能性的一些方框,然后进行神经网络CNN的分类,更新结果并返回,直至收敛。在一定程度上可以视为神经网络再叠加一个神经网络,所谓的深度学习就是利用更深的神经网络来实现更加复杂的功能。.

本章未完,请点击下一页继续阅读