CNN 卷积神经网络
Convolutional Neural Network [1989]
CNN 的结构可以分为 5 层:
- 输入层 Input Layer
- 卷积层 Convolutional Layer 提取图像的底层特征
- 池化层 Pooling Layer 防止过拟合,将数据维度减少
- 全连接层 Fully Connected Layer
- 输出层 Output Layer
输入层
卷积层
卷积运算公式:
符号说明
输入矩阵:
卷积核:
输出矩阵:
索引范围:
对于输入尺寸为
- 示例
输入矩阵:
TIP
每次计算的时候,边缘只被计算一次,而中间被多次计算,那么得到的特征图也会丢失边缘特征,最终会导致特征提取不准确,那为了解决这个问题,我们可以在原始的输入图像的二维矩阵周围再拓展一圈或者几圈,在这里我们扩展一圈。
这种通过拓展解决特征丢失的方法又被称为 Padding
卷积核为:
以左上角第一个有效位置为例:
全部计算过程如下(步长 = 1):
池化层
图:池化层
全连接层
前向传播
定义:
符号 | 全称 | 意义 | 示例 |
---|---|---|---|
Kernel Size | 卷积核/池化窗口的边长 | 3×3 卷积核时 | |
Channels | 输入数据的通道数 | RGB 图像 | |
Depth | 卷积层输出通道数(滤波器数量) | 64 个滤波器时 | |
Height | 输入特征图的高度 | 输入图像高度为 256 时 | |
Width | 输入特征图的宽度 | 输入图像宽度为 256 时 | |
Stride | 卷积操作的步长 | 通常设为 1 |
卷积层
输入特征图
激活输出:
其中
池化层 (Max Pooling)
全连接层
与普通神经网络相同:
反向传播
全连接层
池化层 (Max Pooling)
卷积层
权重梯度:
偏置梯度:
输入梯度: