1.CNN的定位
CNN属于深度学习中的一类典型神经网络,是一种前馈神经网络,它采用的是SGD(随机梯度下降)算法,它的人工神经元可以相应一部分覆盖范围内的单元,在图像处理方面的表现十分出色。
CNN在模式分类领域,因其避免了对图像的前期的预处理,所以它可以直接输入图像得到结果。
2.CNN的构成
- 卷积层
- 池化层
- 全连接层
3.CNN的核心思想
-
局部感知
图像的局部感知跟人对外界的感知类似,都是从局部到整体,图像的空间联系也是局部的像素较为紧密,so,只需要神经元对局部进行感知,最后再综合起来;
-
参数共享
- 对输入的图片,用一个或多个卷积核来扫描,卷积核自带的参数就是所说的权重w;
- 同一个卷积核扫描的图层中,每个卷积核使用的同样的参数进行权重的计算(就是内积,后面会讲);
- 参数共享意味着:每一个卷积核在遍历整个图像的时候,卷积核的参数固定不变,就是每次内积的那个数不变。
4.CNN的核心流程
- 输入图像,进入卷积层,卷积核(可以看作二维矩阵)开始遍历图像(一个卷积核就提取一个特征),每次和图像上与卷积核矩阵一样大的区域(就是两个矩阵的乘法)进行内积,得到一个矩阵(这个矩阵就是一个特征图);
- 对特征图池化,就是取矩阵里面最大的数(或者最小的数,平均数等等方式),去某个数作为代表,输出去;
- 以此类推,用不同的卷积核就有不同的多个特征图,以此类推,不断卷积池化,直到提取完所有特征,就会得到多张特征图;
- 最后,把所有的特征图拉伸开,得到一个全连接层,然后输出。
确实文字难以描述,用一个图来理解:
如图:每一次内积得到一个数,最后把所有数拼成一个矩阵,这个矩阵就是一次卷积得到的特征图,然后进行池化,选出一个代表这个特征图的数,就完成一次卷积池化,然后多个卷积核多次卷积池化:
卷积核的计算:
提取多个特征图,最后全连接:
5.输入三维或更高维张量
输入三维就是输出三维张量,维数输入输出是对应的,如下图输入输出均为三维,卷积池化过程不变,只不过更多次:
6.最后,总结
-
CNN属于一种前馈神经网络,采用的是SGD算法,在图像处理方面的表现十分出色;
-
CNN由卷积层,池化层,全连接层组成;
-
核心思想:局部感知+参数共享;
-
核心流程:
- 对输入的图片,用一个或多个卷积核来扫描,每一次卷积中卷积核的参数固定不变,结束一次卷积进行一次池化,选出最具代表的一个特征;
- 多次卷积池化,得到多个代表特征,把它们拉伸全连接输出;
-
拓展到高维:每一层一个结果,最后输出的就是一个三维的立体。