基于全连接层(Affine 层)的网络的例子: 基于 CNN 的网络的例子,新增了 Convolution 层和 Pooling 层(用灰色的方块表示): CNN常见结构:
“Convolution - ReLU -(Pooling)”(Pooling 层有时会被省略)靠近输出的层中使用“Affine - ReLU”最后的输出层中使用“Affine - Softmax”卷积计算的过程:
上面的卷积运算以1的步幅在输入数据上向右向下滑动滤波器的窗口,每滑动一次就将各个位置上滤波器的元素和输入的对应元素相乘,然后再求和(有时将这个计算称为乘积累加运算)。然后,将这个结果保存到输出的对应位置。
偏置存在的情况:
例子如下:
O H = H + 2 P − F H S + 1 OH=\frac{H+2P-FH}{S}+1 OH=SH+2P−FH+1 O W = W + 2 P − F W S + 1 OW=\frac{W+2P-FW}{S}+1 OW=SW+2P−FW+1 上式要可以除尽,否则需要报错,在一些深度学习框架中会四舍五入,不需要报错。
当有了纵深(通道方向)时,卷积计算的例子:
卷积计算:
按通道进行输入数据和滤波器的卷积运算,并将结果相加输入数据和滤波器的通道数要设为相同的值结合长方体来思考卷积运算:
通道数为 1 的输出数据:3. 通道数为FN的输出数据:
应用多个滤波器就可以得到多个卷积计算的输出。
有偏置的情况:CNN的处理流:用多个滤波器得到了FN个输出数据,即(FH,OH,OW)的数据方块,将该方块传递给下一层继续处理。
一次对 N 个数据进行卷积运算的例子:
end
原书为《深度学习入门 基于Python的理论与实现》作者:斋藤康毅 人民邮电出版社本文章是gitchat的《陆宇杰的训练营:15天共读深度学习》1的课程读书笔记本文章大量引用原书中的内容和训练营课程中的内容作为笔记《陆宇杰的训练营:15天共读深度学习》 ↩︎