全连接前馈问题:
卷积神经网络CNN是一种具有局部连接、权重共享、汇聚等特性的深层前馈神经网络。
一维卷积(信号处理中使用)
二维卷积(图像)
给定图像 ∈ ℝ× 和滤波器 ∈ ℝ×, << , << ,其卷积 = ∑ = 1 \sum_{=1}^{} ∑u=1U ∑ = 1 \sum_{=1}^{} ∑v=1V−+1,−+1 ,这里假设卷积的输出 的下标(, )从(, )开始。输入信息和滤波器 的二维卷积定义为 = ∗
均值滤波: = 1 / 。一幅图像在经过卷积操作后得到结果称为特征映射。在计算卷积的过程中需要进行卷积核翻转(从两个维度(从上到下、从左到右)颠倒次序,即旋转180度)以上图为例,卷积是右下角元素减去左上角元素,和常规想法是相反的。
互相关(不翻转卷积):= ∑ = 1 \sum_{=1}^{} ∑u=1U ∑ = 1 \sum_{=1}^{} ∑v=1V+-1,+-1,和卷积的区别仅仅在于卷积核是否进行翻转。公式写法是 = ⊗ = = rot180 ( ) ∗ 。我们用互相关来代替卷积。
卷积的变种
卷积神经网络的具体结构:局部连接,权重共享
通常的交叉堆叠结构:
注:⼀个卷积块为连续M 个卷积层和b个汇聚层(M通常设置为2 ∼ 5,b为0或1 )⼀个卷积网络中可以堆叠N 个连续的卷积块,然后在接着K个全连接层 (N 的取值区间比较大,比如1 ∼ 100或者更大;K一般为0 ∼ 2)
深度就是特征个数,如果是灰度图像,就只有一个特征映射, 输入层的深度 = 1;如果是彩色图像,分别有 RGB 三个颜色通道的特征映射, 输入层的深度 = 3。
汇聚层也叫子采样层,其作用是进行特征选择,降低特征数量,从而减少参数数量。卷积层虽然可以显著减少网络中连接的数量,但特征映射组中的神经元个数并没有显著减少,如果后面接一个分类器,分类器的输入维数依然很高,很容易出现过拟合。为了解决这个问题,可以在卷积层之后加上一个汇聚层,从而降低特征维数,避免过拟合。
常用的汇聚函数有两种:最大汇聚(取区域中所有神经元活性值的max)和平均汇聚(取区域内所有神经元活性值的平均值)。典型的汇聚层是将每个特征映射划分为2 × 2大小的不重叠区域,然后使用最大汇聚的方式进行下采样。汇聚层也可以看作一个特殊的卷积层,卷积核大小为 × ,步长为 × ,卷积核为max函数或 mean函数。过大的采样区域会急剧减少神经元的数量,也会造成过多的信息损失。
参数学习:只有卷积层有参数,因此只需要计算卷积层中参数的梯度
误差计算
关于b的误差项:因为z(l,p) 的每个元素都要加上⼀样的偏置b(l,p) , 即b(l,p) 与z(l,p)的每个元素都有关,根据链式法则,需要将关于z(l,p) 的每个元素的偏导数,即每个误差项相加。
反向传播
汇聚层(第 + 1层):该层每个神经元的误差项对应于第 层的相应特征映射的一个区域。根据链式法则,第 层的一个特征映射的误差项 (,) 只需要将 + 1层对应特征映射的误差项 (+1,) 进行上采样操作,再和 层特征映射的激活值偏导数逐元素相乘,就得到了 (,)。具体推导过程如下:
其中′ (⋅)为第 层使用的激活函数导数,up为上采样函数,与汇聚层中使用的下采样操作刚好相反。如果zp= max 则关于最大xp的导数为1,其余为0。如果zp 是平均,则每个xp的导数都为1/n。
卷积层
第 层的第d个输入x(,d) 关联到 +1层的全部 p=1,…P个净输入z(+1),因此反向传播时 需要把关于全部P个输出的偏导数累加。