一、卷积神经网络概述:
- 传统的多层感知机每个神经元都与上一层的所有神经元相连接,因此拥有大量超参数。而卷积神经网络(CNN)引入了卷积层和池化层的结构,帮助减少了参数数量,提高了网络的拟合能力和泛化能力。
- CNN是为了更好地处理高维数据、保留空间结构信息并减少参数数量而设计的。
1.卷积层:
1.1卷积核与神经元:
-
一个卷积核可以被看作是一个神经元的参数,而该神经元通过其卷积核来进行卷积操作以提取特征,并将这些特征作为该神经元的输出。这个输出特征图随后可以作为下一层卷积层或全连接层的输入。
-
同时每个神经元的卷积核作为参数通过反向传播进行更新。
-
对于二分图像数据,卷积核通常是二维;对于三维视频数据,卷积核通常是三维的。
-
二维卷积核的卷积如下:
这是一个神经元的卷积核执行的卷积操作。
最后三个神经元的输出特征图组合成该层隐藏层的输出:
- 三维卷积核卷积如下:
这是一个神经元的卷积核进行的卷积操作。注意三维卷积核最后多一步加法才能压缩成该神经元的单通道输出。
最后每个神经元的输出特征图组合成该层隐藏层的输出:
-
1.2卷积层作用:
- 特征提取:卷积操作可以提取输入数据的特征,通过滤波器 (卷积核)对输入数据进行卷积操作,从而捕捉到图像或其他数据中的局部特征。
- 参数共享:每个卷积核在整个输入数据的不同位置进行卷积操作时使用的是相同的权重,这种参数共享的方式有助于减少参数数量,提高模型的泛化能力。
- 保留空间结构信息:卷积操作通过卷积核在输入数据上按位置进行卷积,并且输出也是按位置对应的,这样可以保持输入数据的空间结构,有助于捕捉数据中的空间关系。
1.3多通道概念:
一个神经元对应一个卷积核,同一隐藏层的多个神经元会使用各自的卷积核对输入数据进行特征提取,从而得到不同的输出特征图。每个特征图对应一个通道,多个神经元提取的各自不同的特征图构成了多通道。
如上图所示,该隐藏层为三通道输出,即从三个方面提取到了数据的特征。每一个隐藏层输出的通道数等于该隐藏层中卷积核的个数。
特别的,对于输入数据的通道数,例如图片数据,若输入通道数为3,则三通道分别表示该张图片账本的R、G、B三个方向的像素。
2.池化层:
2.1池化层作用:
- 降维和减少参数:池化操作通过对输入数据进行采样和汇聚,有效减少特征图的大小,减少计算量和参数数量,有助于防止过拟合。
- 平移不变性:池化操作可以使特征对位置的变化更加稳定,即使输入数据发生平移,模型也能够提取到相同的特征或者对象。这使得模型对于位置的微小变化更加鲁棒,提高模型的泛化能力。(举例来说,假设我们有一张狗的图片,当在这张图片左上角提取到一只狗,那么不管狗的位置上下左右如何变化,依然能够提取到这只狗。)
- 增强特征(Feature Map):通过池化操作,可以更加突出重要的特征,保留主要的特征信息(最大池化中,将每个区域内的最大值作为输出),有助于提高模型对于关键特征的识别能力。
3.隐藏层与卷积层、池化层关系:
隐藏层是指除输入层和输出层以外的所有层,用来进行中间数据的处理和特征的抽取。因此:一个卷积层就是一个隐藏层,一个池化层也是一个隐藏层。
其中,卷积层的参数为卷积核和偏置项,池化层不包含可学习的参数,在最大池化中,它在每个池化窗口内选择最大值作为输出;而在平均池化中,它在每个池化窗口内计算平均值作为输出。