手记

CNN卷积神经网络——新手上手

CNN原理:


首先,了解什么是卷积?



数学表达式上看,卷积是一种数学运算,其目的是简化数学表达式,过滤掉复杂数据中的噪声,提取关键特征,卷积应用也被称为滤波,卷积核被称为滤波器。(书中卷积的具体操作讲解的非常详细,需要了解的可以去图书馆借本书看)


卷积的含义:对原始的数据进行一次运算,使结果数据可以加强我们想要得到的特征,消除其他不关心的噪声。



不同于使用固定数字的卷积核,给卷积核赋予参数,这些参数是需要训练的。随着神经 网络的训练,这些卷积核为了在训练数据上得到更好的效果,就会自动调整卷积核中的参数,此过程是自动的。

下面是卷积神经网络基础:


1、局部感知野:一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,距离远的像素相关性则较弱。因而每个神经元没必要对全局图像进行感知,只需对局部进行感知,然后在更高层将局部信息综合起来,就得到全局信息。局部感知野:即一层中的节点不必和前一层所有节点相连,只需要和部分节点相连就可以了。

2、参数共享:即每一层中的节点对上一层节点中的局部连接的参数都是一样的。


3、多卷积核:“局部感知野”和“参数共享”将参数的数量大幅度下降了,但这里只使用了一个卷积核,只提取了一种特征。要提取多种特征种类时,就需要多种不同的卷积核。




4、池化:因为图像具有空间相关性——一个像素点和周围的像素点在很大概率上是相似的,那么把位置相邻的像素点合并,便可缩小最后特征的维数了。



因此,池化是将空间上相邻的点进行聚合处理。

“池化”操作不仅可以降低特征维度,还可以改善结果(不易过拟合)。



比较流行的池化方式:“平均池化”和“最大池化”。


平均池化:池化区域内的所有值的平均值作为池化结果。



最大池化:池化区域内所有值的最大值作为池化结果。



池化操作可以看作是一个池化窗口在图片上移动,每次取窗口的平均值或最大值,窗口移动的步长可以是1,也可以是池化窗口本身的大小。


5、多层卷积


卷积神经网络往往会使用多层卷积和池化,每层的输出用非线性激活函数做转换,或者几层之后用非线性激活函数做转换。


第一层卷积层也许是从原始像素点检测到一些边缘线条,然后根据边缘线条在第二层检测出一些简单的形状,后面的层基于这些现状检测出更高级的特征,比如脸部轮廓、耳朵轮廓等,最后一层利用这些高级特征的一个分类器,也可采用神经网络之外的其他分类器。


多层次的卷积神经网络符合我们对图像的识别过程。图像本身由像素组成,有像素构成线条,由线条构成基本现状,由基本形状构成物体,再由物体构成我们的概念。


6、卷积神经网络的训练

卷积神经网络的训练构成和全连接网络的训练构成类似,都是先将参数初始化,进行前向计算,得到最后的输出结果,计算最后一层每个神经元的残差,然后从最后一层逐层往前计算每一层的神经元的残差,根据残差计算损失对参数的倒数,然后再迭代更新参数。

原文出处

0人推荐
随时随地看视频
慕课网APP