机器学习工程师 - Udacity 可视化 CNN

我们看一个 CNN 示例,了解具体运行过程。

我们要查看的 CNN 在 ImageNet 上进行了训练(请参阅这篇来自 Zeiler 和 Fergus 的论文)。在下面的图片中(摘自上述同一论文),我们将看到该网络中的每个层级会检测到什么,并查看每个层级如何检测到越来越复杂的规律。

导致网络的第一层级被激活的示例规律,从简单的对角线(从左上角开始)到绿色块(底部中间部分)。

上述图片来自 Matthew Zeiler 和 Rob Fergus 的深度可视化工具箱(YOUTUBE链接,国内网络可能打不开),使我们能够可视化 CNN 中的每个层级侧重的是什么。

上述网格中的每个图片代表的是第一层级的神经元被激活的规律,换句话说,它们是第一层级能够识别的规律。左上角的图片显示的是 -45 度线条,顶部中间的图片显示的是 +45 度的线条。下面的这些方框再次供参考。

正如此处图表所显示的,该 CNN 的第一层级可以识别 -45 度的线条。

该 CNN 的第一层级还能够识别 +45 度的线条,例如上方的图片。

我们查看一些导致此类激活的示例图片。下面的图片网格均激活了 -45 度的线条。注意它们均被选中了,但是具有不同的颜色、渐变和规律。

激活第一层级的 -45 度线条检测器的示例图片。

因此,该 CNN 的第一层级清晰地选出了非常简单的形状和规律,例如线条和色块。

 

第 2 层级

该 CNN 的第二层级的可视化图表。注意我们选出了更加复杂的规律(例如圆圈和条纹)。左侧的灰色网格表示该 CNN 的这一层级如何根据右侧网格中的图片被激活(即所看到的内容)。

该 CNN 的第二层级发现了复杂的规律。

正如在上述图片中所看到的,该 CNN 的第二层级识别出圆圈(第二行第二列)、长条(第一行第二列)以及长方形(右下角)。

CNN 自己学会发现这些规律。没有任何特殊说明指导该 CNN 侧重于更深层级中的更复杂对象。当你向 CNN 提供训练数据时,它通常都会这么做。

 

第 3 层级

该 CNN 中第三层级的可视化图表。左侧的灰色网格表示该 CNN 的这一层级如何根据右侧网格中的相应图片被激活(即所看到的内容)。

第 3 层级从第 2 层级中选出复杂的特征组合。包括网格和蜂窝(左上角)、轮子(第二行第二列),甚至面孔(第三行第三列)。

我们将跳过第 4 层级(继续这一模式),并直接跳到第 5 层级,即该 CNN 的最后一个层级。

 

第 5 层级

该 CNN 的第 5 层级(即最后一个层级)的可视化图表。左侧的灰色网格表示该 CNN 的这一层级如何根据右侧网格中的相应图片被激活(即所看到的内容)。

最后一个层级选出我们关心的最高级分类规律,例如狗的脸部、鸟类脸部和自行车。

posted on 2018-12-03 19:58  paulonetwo  阅读(163)  评论(0编辑  收藏  举报

导航