假如你训练了一个卷积神经网络,是一个 Alexnet,轻量级网络,你希望将看到不同层之间隐藏单元的计算结果。
从第一层的隐藏单元开始,假设你遍历了训练集,然后找到那些使得单元激活最大化的一些图片,或者是图片块。换句话说,将你的训练集经过神经网络,然后弄明白哪一张图片最大限度地激活特定的单元。注意在第一层的隐藏单元,只能看到小部分卷积神经,如果要画出来哪些激活了激活单元,只有一小块图片块是有意义的,因为这就是特定单元所能看到的全部。你选择一个隐藏单元,发现有 9 个图片最大化了单元激活,你可能找到这样的 9 个图片块:
似乎是图片浅层区域显示了隐藏单元所看到的,找到了像这样的边缘或者线:
然后你可以选一个另一个第一层的隐藏单元,重复刚才的步骤,这是另一个隐藏单元:
看来这个隐藏单元在输入区域,寻找这样的线条:
对其他隐藏单元也进行处理,会发现其他隐藏单元趋向于激活类似于这样的图片:
以此类推,这是 9 个不同的代表性神经元,每一个不同的图片块都最大化地激活了。你可以这样理解,第一层的隐藏单元通常会找一些简单的特征,比如说边缘或者颜色阴影。
在深层部分,一个隐藏单元会看到一张图片更大的部分,在极端的情况下,可以假设每一个像素都会影响到神经网络更深层的输出,靠后的隐藏单元可以看到更大的图片块:
由此可以看到,第一层的边缘,第二层的质地,一直到深层的复杂物体。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:4-6 什么是深度卷积网络 ? - Python技术站