CNN卷积神经网络
1.与全连接神经网络的区别
1).总有至少一个卷积层
2).卷积层级之间的神经元是局部连接和权值共享(整张图片在使用同一个卷积核内的参数,卷积核里的值叫做权重,不会因为图像内位置的不同而改变卷积核内的权系数),这样的设计大大减少了(w,b)的数量,加快了训练。
2.卷积神经网络的核心是卷积
1).卷积层
设定不同的卷积核(如何设计卷积核:对于CNN来说,训练就是让网络根据已有的数据和它们的标签自动确定卷积核中的数字),我们就能找到各种各样的特征.
卷积层也是由卷积核构成,不同的卷积层之间会有信息传递.
在CNN的卷积层中存在着一个个填充着数字的正方形小格子,它们被称为卷积核,原始图片经过输入层后会变为灰度或是RGB数值填充的矩阵,将卷积核与图片矩阵对齐,对应格子中的数字相乘后再相加,再将得到的数字填入新矩阵(卷积)。卷积核在以一定的距离在图像上移动运算(步长),得到的新矩阵能反映图像的部分特征(特征图)。卷积核将卷积的结果映射到卷积层中。它们即使这一层的输出,也是下一层的输入。
卷积层的工作方式是压缩提纯的过程,图二中输出的特征图越来越“矮",越来越“胖"。
通俗地讲,卷积层就是去除信息中冗长和多余部分,留下精华信息
图1
2).池化层
池化层能选取图片的主要特征。常用的Maxpooling是保留窗口覆盖区域的最大数值,矩阵被池化后,参数会大量减少,
3).全连接层
通常在网络的最后,能将提取到的特征集合在一起,给出的图片可能是某种事物的概率,
图2
3.激活函数
只有激活函数达到了一定的值,卷积核才会激活去传递信息.
4.BN操作
1). 作用
将输入值或卷积网络的张量进行类似标准化的操作,将其放缩到合适的范围,加快训练速度;另一方面使得每一层可以尽量面对同一特征分布的输入值,减少变化带来的不确定性。
BN可以防止学习过程中梯度消失,这一点论文中有阐述,作者说使用sigmod激活函数的时候,如果不用BN的话,会让反向传播的过程中梯度消失(当输出值较大或较小时,sigmod函数就会进入饱和区域,导致其导数几乎为零),但是可以通过使用Relu激活函数来解决,那就意味着BN主要还是让数据分布变为一致。