术语解释:
1、卷积神经网络
CNN是一种特殊的神经网络,一个标准的CNN由一系列的层组成,包括卷积层,池化层,全连接层等。(通常用来做影像处理)
工作原理:
1、一张图片(如下图,图片上写着字母),可通过CNN去识别出这个字母是X还是O
2、例如,X经过CNN识别得到X,O通过CNN识别就能得到O
3、无论X和O怎样变化,旋转,扭曲,加粗等,通过CNN都能准确识别出来,这对于人眼比较简单,但对于计算机来讲,图片中的每个像素都只能用-1或者1来代替,要识别出这些扭曲了的字母还是需要复杂的过程的。
4、比如我们将图中的每个像素小方块填上-1和1两种数字,假设图片是黑白的,黑色用-1表示,白色用1表示,那么由计算机识别左图和右图,计算机会认为它们不是一样的,因为左图上某一位置的1或者-1在右图同一位置上不是相同的数字。
5、通过CNN识别图片的部分特征,便能识别出左图和右图是相等的。
6、CNN如何识别图像的部分特征呢?便是通过“卷积”,下图三个3*3的矩阵被称为“卷积核”或者“filter”,将图像用矩阵表示,然后用矩阵与卷积核分别作卷积运算,便能得出图像的部分特征了。
7、第一个卷积核能识别出图像X中的右下斜线的特征,第二个卷积核能识别出X的最中间的一小块X的特征,第三个卷积核能识别出X的左下斜线的特征。
卷积层:
功能:对输入数据进行特征提取
卷积层运算原理:
彩色图的卷积运算原理:
1、在图像矩阵中依次取卷积核大小的矩阵(3*3)和卷积核作内积,得到的内积和取平均值,填入新的矩阵中,新矩阵被称为Feature Map
3、最后得到Feature Map之后,Feature Map里面数字的颜色代表相似度,颜色越浅,值越大,相似度越高。如下图,图像与第一个卷积核做完卷积之后,发现得到的Feature Map确实有第一个卷积核的特征。
4、将图片与这三个卷积核都做完卷积之后,发现图片拥有三个卷积核的特征,此时可基本确定图片代表的字母是X了
5、池化层:当图片非常大的时候,要快速获取图片的特征变得非常困难,于是通过池化,将原图缩小,但保留原图的特征不变。
池化层原理:就是把特征图像区域的一部分求个均值或者最大值,用来代表这部分区域。如果是求均值就是mean pooling,求最大值就是max pooling
maxpooling:
pooling过程:下图池化的stride为2,或者说用的是22的filter,用的是max pooling,池化后原来77的矩阵便缩小成了4*4的矩阵,但保留原来的特征不变。
激活函数:(简单来讲就是将负数都化为0,方便卷积计算)
将原图经卷积-激活-池化后得到的初步feature map:
3个过程可多次重复(排列组合)
全连接层:连接所有的特征或者说神经元,并且为每一条连接边赋予权重(权重的大小是经过长期的机器学习总结得到的),用每个神经元上的值与对应权重相乘,最后加和,减去偏差,得到最终的输出结果。
1、
2、比如前面提到的图片,在最后作全连接的时候发现得到的结果是X的可能性最大。
3、全连接也可以重复多次进行
整个过程得到的最终结果:
误差:最终得到X的概率是0.92,则它得到X的误差是0.08,最后得到是O的概率是0.51,则它得到O的误差是0.49
使得误差降到最小的权重改变(损失函数:在训练阶段,用于评估网络输出结果与实际值的差异。然后用损失函数的值更新每个神经元之间的权重值。卷积神经网络的训练目的就是最小化损失函数值。),梯度下降概念