卷积神经网络(笔记,自用)
相对于普通全连接神经网络,卷积神经网络更擅长处理图像问题。
主要原因在于全连接神经网络的输入是一个长条的一维向量,我们如果想将图片信息输入,就只能将二维的图像打成一维的长条再输入,这样不仅导致计算量很大,也忽略了图像中像素与像素之间的空间位置关联性。
卷积神经网络支持输入二维图像信息,同时滑动窗口的卷积操作也可以很好地保留像素与像素之间的位置关系。
卷积神经网络工作原理
卷积层
如图,设置3*3的卷积核,内部的9个值分别为1,0,1,0,1,0,1,0,1
卷积核从左上角起始,按照一定的步长向右滑动,到一行结尾就另起一行接着滑,每滑到一处,就会跟自己所覆盖的9个像素分别相乘(再加偏置b),再全部加和,算出一个像素值,如下图
最终整个图全部滑过一遍之后,算出来的“新图”就缩小了一圈,但原来的特征基本保留。
池化层
池化层可以在不大肆破坏图片信息的情况下,将图片快速降维,可以理解为整合的作用。
做法:将图片划分成网格,每个小格里是s*s个像素块,通过某种方法,将s*s个像素捏成一个像素,从而实现快速降维。
-
max pooling:
取s*s个像素块中的最大值,作为“代表”,代表这s*s个像素块
-
average pooling:
取s*s个像素块中的平均值
dropout
作用:防止过拟合
做法:例如设置dropout rate = 0.5,那么会在训练时每一层**随机屏蔽50%**的神经元,让这些神经元不工作,反而会得到更好的效果。
例子
LeNet-5 Architecture
AlexNet