1. 全连接的神经网络
如果不进行卷积操作,那么所有的神经网络层之间将全部使用全连接。
图中的两级神经元:
- 第 1 层表示的是将 2 维图片延展成 1 维,
- 第 2 层表示的是第 1 层的数据进行矩阵运算之后得到的数据,就相当于特征图延展成 1 维的数据
所以,如果原图的尺寸是 M×N,假设特征图的尺寸为 P×Q ,那么运算的过程中的权重个数是 M×N×P×Q,权重的个数就是图中两层神经元之间的彩色的线的条数,因为图中进行的操作是全连接操作。
因此,由图可见,会产生非常大量的权重运算,浪费计算资源。
2. 通过卷积实现局部连接的神经网络
假设现在原图的大小为 10 × 10,使用卷积核的大小为3 × 3,卷积核的个数为 5 个,用来提取 5 个不同的特征,那么得到的特征图大小为 8×8(10-3+1),如果使用padding 方法,那么得到的特征图为10 × 10,但是,在运算过程中卷积核所使用的权重参数的个数仅仅为:3 × 3 × 5 = 45个权重参数。
PS:以上所有的描述,默认使用的灰度图(也就是原图通道数为1),方便阐述
【实例对比一下】
现有如下灰度图原图:
- 尺寸:10 × 10
- 卷积核个数:5
- 卷积核尺寸:3 × 3
- 卷积方法:使用padding
- 得到特征图的大小:10 × 10
① 使用卷积法的参数数量:
3 × 3 × 5 = 45
② 使用全连接法的参数数量:
10 × 10 × 10 × 10 = 10000
数量级差别明显,原因是:
- 全连接方法的权重参数,只与输入图片和特征图的尺寸决定,然后就是全方面的,无差别的全连接运算。但是卷积方式则使用了一个非常重要的概念—【权值共享】,所以卷积法可以大量的减少训练的权重参数数量。
3. 权值共享
CNN 卷积网络的过程中,一个卷积核对一整幅原图进行计算的时候,扫描整幅图所有的部分用的是同一个卷积核。如下:
可以看的很清楚,无论这个卷积核在原图的哪一个部分做运算,总是这同一个卷积核,最后输出得到一个特征图。
如上图所示,详细展示了,如何在卷积核运算的过程中共享同一组权重参数,而且右边的神经网络层也可以看的很清楚,右面神经网络图的部分的颜色对应的是左边卷积核中对应的参数。可以很直观的看到,参数的数量大大减少,而且非常有效。