CNN中用到的卷积层在“观察”什么呢?

第1层权重的可视化

我们对MNIST数据集进行了简单的CNN学习。第1层的卷积层的权重的形状是(30, 1, 5, 5),即30个大小为5 × 5、通道为1的滤波器。滤波器大小是5 × 5、通道数是1,意味着滤波器可以可视化为1通道的灰度图像。现在,我们将卷积层(第1层)的滤波器显示为图像。这里,我们来比较一下学习前和学习后的权重,结果如图7-24所示

通过学习,滤波器被更新成了有规律的滤波器,比如从白到黑渐变的滤波器、含有块状区域(称为blob)的滤波器等

图7-24中,学习前的滤波器是随机进行初始化的,所以在黑白的浓淡上没有规律可循,但学习后的滤波器变成了有规律的图像。

图7-24中右边的有规律的滤波器在“观察”什么?它在观察边缘(颜色变化的分界线)和斑块(局部的块状区域)等。比如,左半部分为白色、右半部分为黑色的滤波器的情况下,如图7-25所示,会对垂直方向上的边缘有响应。

“滤波器1”对垂直方向上的边缘有响应,“滤波器2”对水平方向上的边缘有响应。

由此可见,卷积层的滤波器会提取边缘或斑块等原始信息。而刚才实现的CNN会将这些原始信息传递给后面的层。

基于分层结构的信息提取

第1层的卷积层中提取了边缘或斑块等“低级”信息,那么在堆叠了多层的CNN中,各层中又会提取什么样的信息呢?根据深度学习的可视化相关的研究,随着层次加深,提取的信息(正确地讲,是反映强烈的神经元)也越来越抽象。

图7-26中展示了进行一般物体识别(车或狗等)的8层CNN(AlexNet)。AlexNet网络结构堆叠了多层卷积层和池化层,最后经过全连接层输出结果。图7-26的方块表示的是中间数据,对于这些中间数据,会连续应用卷积运算。

如果堆叠了多层卷积层,则随着层次加深,提取的信息也愈加复杂、抽象,这是深度学习中很有意思的一个地方。最开始的层对简单的边缘有响应,接下来的层对纹理有响应,再后面的层对更加复杂的物体部件有响应。也就是说,随着层次加深,神经元从简单的形状向“高级”信息变化。

小结

• CNN在此前的全连接层的网络中新增了卷积层和池化层。

• 使用 im2col 函数可以简单、高效地实现卷积层和池化层。

• 通过CNN的可视化,可知随着层次变深,提取的信息愈加高级。

• AlexNet是CNN的代表性网络。

• 在深度学习的发展中,大数据和GPU做出了很大的贡献。