CNN 公式推导
矩阵卷积
在图像处理中,我们常会用卷积来提取图像(image)的特征(feature), 矩阵卷积有如下两种
假设
- 全卷积(full convolution)
全卷积的定义式如下
- 有效卷积(vaild convolution)
有效卷积的定义如下
通过正向传播(forward propagation)计算激活值(activation)
- 卷积层(上一层为输入层)
在卷积层数据都是以三维数据存在的。假定输入层是层,它的输出(对应于 层的输入)的特征图为 , 特征对应的卷积核是 , 给每一个输入单元加上一个偏置单元(bias term) , 卷积层的输出矩阵为 阶矩阵,计算公式如下
- 子采样层(sub-sample layer)
通过卷积操作我们得到了关于输入数据的特征图,我们希望我们能够利用所有的特征图训练我们的分类器,但这样存在输入数据过大,容易发生过拟合的问题。
可以采用聚合统计的方法避免这个问题,通过计算区域中最大值的像素或者计算平均数的方法降低输入数据的维度。这种聚合操作就是池化操作(pool)。上面两种方法分别对应于平均池化(average pooling) 和最大值池化(max pooling)
以平均池化为例,每个单元的权重为,滑动步长为 ,每一项卷积操作之后都加上一个偏置单元 , 子采样层的输出为 阶矩阵,计算公式为
- 卷积层(上一层为子采样层)
如果子采样层后接的是卷积层,计算方式和多层神经网络描述的相同,输出阶矩阵为