- 整体结构
- 卷积层
全连接层(Affine层)存在的问题:数据的形状被“忽视”了。比如,输入数据是图像时,图像通常是高、长、通道方向上的3维形状。但是,向全连接层输入时,需要将3维数据拉平为1维数据。
卷积层可以保持形状不变。当输入数据是图像时,卷积层会以3维数据的形式接收输入数据,并同样以3维数据的形式输出至下一层。
CNN中,有时将卷积层的输入输出数据称为特征图。其中,卷积层的输入数据称为输入特征图,输出数据称为输出特征图。
对于输入数据,卷积运算以一定间隔滑动滤波器的窗口并应用。
CNN中,滤波器的参数就对应之前的权重。
在进行卷积层的处理之前,有时要向输入数据的周围填入固定的数据(比如0等),这称为填充(padding)
使用填充主要是为了调整输出的大小。
如果每次进行卷积运算都会缩小空间,那么在某个时刻输出大小就有可能变为1,导致无法再应用卷积运算。
应用滤波器的位置间隔称为步幅(stride)。 之前例子中步幅都为1.
增大步幅后输出的大小会变小。比如由(7,7)变为(3,3)
- 池化层
池化是缩小高、长方向的空间的运算。
图7-14的例子是按步幅2进行2 × 2的Max池化时的处理顺序。“Max池化”是获取最大值的运算,“2 × 2”表示目标区域的大小。
一般来说,池化的窗口大小会和步幅设定成相同的值。
池化层和卷积层不同,没有要学习的参数。
经过池化运算,输入数据和输出数据的通道数不会发生变化。 计算是按通道独立进行的。