特征可视化
神经网络学习将输入数据(如图像)转换为越来越有意义但表征越来越复杂的连续层。
你可以将深度网络看做一个多阶段信息蒸馏操作,其中信息通过连续的滤波器并不断被「提纯」。(François Chollet, Deep Learning with Python (Shelter Island, NY: Manning Publications, 2018), p. 9)
阅读完他的文章后,你将了解如何生成模式,以最大化这些层次表征的某个层中所选特征图的平均激活,如何解释其中一些可视化,以及最终如何测试所选滤波器可能响应的模式或纹理的假设。你可以在下面找到 VGG-16 网络多个层中滤波器的特征可视化。在查看它们时,希望你能观察到生成模式的复杂性如何随着进入网络的深度而增加。
Layer 7: Conv2d(64, 128)
滤波器 12, 16, 86, 110(左上到右下,逐行)
Layer 14: Conv2d(128, 256)
滤波器 1, 6, 31, 32, 54, 77, 83, 97, 125, 158, 162, 190(左上到右下,逐行)
Layer 20: Conv2d(256, 256)
滤波器 3, 34, 39, 55, 62, 105, 115, 181, 231(左上到右下,逐行)
Layer 30: Conv2d(512, 512)
滤波器 54, 62, 67, 92, 123, 141, 150, 172, 180, 213, 233, 266, 277, 293, 331, 350, 421, 427(左上到右下,逐行)
Layer 40: Conv2d(512, 512)—top of the network
滤波器 4, 9, 34, 35, 75, 123, 150, 15