深度学习的典型神经网络类型——卷积神经网络(CNN)

发布时间 2023-12-23 11:23:14作者: cyznb

1.CNN的定位

CNN属于深度学习中的一类典型神经网络,是一种前馈神经网络,它采用的是SGD(随机梯度下降)算法,它的人工神经元可以相应一部分覆盖范围内的单元,在图像处理方面的表现十分出色。
CNN在模式分类领域,因其避免了对图像的前期的预处理,所以它可以直接输入图像得到结果。

2.CNN的构成

  • 卷积层
  • 池化层
  • 全连接层

3.CNN的核心思想

  • 局部感知

图像的局部感知跟人对外界的感知类似,都是从局部到整体,图像的空间联系也是局部的像素较为紧密,so,只需要神经元对局部进行感知,最后再综合起来;

  • 参数共享

    • 对输入的图片,用一个或多个卷积核来扫描,卷积核自带的参数就是所说的权重w;
    • 同一个卷积核扫描的图层中,每个卷积核使用的同样的参数进行权重的计算(就是内积,后面会讲);
    • 参数共享意味着:每一个卷积核在遍历整个图像的时候,卷积核的参数固定不变,就是每次内积的那个数不变。

4.CNN的核心流程

  • 输入图像,进入卷积层,卷积核(可以看作二维矩阵)开始遍历图像(一个卷积核就提取一个特征),每次和图像上与卷积核矩阵一样大的区域(就是两个矩阵的乘法)进行内积,得到一个矩阵(这个矩阵就是一个特征图);
  • 对特征图池化,就是取矩阵里面最大的数(或者最小的数,平均数等等方式),去某个数作为代表,输出去;
  • 以此类推,用不同的卷积核就有不同的多个特征图,以此类推,不断卷积池化,直到提取完所有特征,就会得到多张特征图;
  • 最后,把所有的特征图拉伸开,得到一个全连接层,然后输出。
    确实文字难以描述,用一个图来理解:

    如图:每一次内积得到一个数,最后把所有数拼成一个矩阵,这个矩阵就是一次卷积得到的特征图,然后进行池化,选出一个代表这个特征图的数,就完成一次卷积池化,然后多个卷积核多次卷积池化:

卷积核的计算:

提取多个特征图,最后全连接:

5.输入三维或更高维张量

输入三维就是输出三维张量,维数输入输出是对应的,如下图输入输出均为三维,卷积池化过程不变,只不过更多次:

6.最后,总结

  • CNN属于一种前馈神经网络,采用的是SGD算法,在图像处理方面的表现十分出色;

  • CNN由卷积层,池化层,全连接层组成;

  • 核心思想:局部感知+参数共享;

  • 核心流程:

    • 对输入的图片,用一个或多个卷积核来扫描,每一次卷积中卷积核的参数固定不变,结束一次卷积进行一次池化,选出最具代表的一个特征;
    • 多次卷积池化,得到多个代表特征,把它们拉伸全连接输出;
  • 拓展到高维:每一层一个结果,最后输出的就是一个三维的立体。