ZFNet(2013)と始め可視化

ブログ:blog.shinelee.me | ブログパーク | CSDN

EDITORIAL

ZFNet紙から「可視化および畳み込みネットワークの理解」 20190911などという名前の2本の著者の名前の最初の文字、引用4207の量は明らかにZFNet、著者マシューD. ZeilerとロブFergus--。ZFNetが一般的に考えられているILSVRC 2013チャンピオン方法が、実際にZFNetが第3位にランク、トップ2はClarifaiとNUSですが、ClarifaiとZFNetが見る、マシューD. Zeilerの手から来るILSVRC2013結果を

性能上のAlexNet(2012)に基づいてZFNet(2013)再び、以下に示すように、画像からcs231n_2019_lecture09

ImageNet受賞

最大の貢献は、2本の論文があります。

  • 提案ZFNet、AlexNetネットワークアーキテクチャよりも優れた性能
  • これは、提示特性、視覚的な方法を、ネットワークを分析し、理解するためにそれらを使用しています

この記事では、上記2つの点に焦点を当てたネットワークアーキテクチャを導入し、さらに導入視覚化する方法を特徴とします。

ネットワークアーキテクチャとモチベーション

ZFNetネットワークアーキテクチャ次のように

ZFNetアーキテクチャ

ネットワークアーキテクチャはAlexNetベースから変更されZFNet、AlexNetと比べて、大幅に異なりません。

  • (特徴マップを倍加をもたらすであろう)第一の畳み込み層、カーネルサイズは、7~11から減少されるストライドを4から2に低減されます
  • 为了让后续feature map的尺寸保持一致,第2个卷积层的stride从1变为2

仅这2项修改,就获得了几个点的性能提升。所以,重要的是为什么这样修改?这样修改的动机是什么?文中这样叙述:

ZFNetアーキテクチャの選択

通过对AlexNet的特征进行可视化,文章作者发现第2层出现了aliasing。在数字信号处理中,aliasing是指在采样频率过低时出现的不同信号混淆的现象,作者认为这是第1个卷积层stride过大引起的,为了解决这个问题,可以提高采样频率,所以将stride从4调整为2,与之相应的将kernel size也缩小(可以认为stride变小了,kernel没有必要看那么大范围了),这样修改前后,特征的变化情况如下图所示,第1层呈现了更多更具区分力的特征,第二2层的特征也更加清晰,没有aliasing现象。更多关于aliasing的内容,可以参见Nyquist–Shannon sampling theoremAliasing

11×11対ストライド2対4、カーネルサイズの7x7の

这就引出了另外一个问题,如何将特征可视化?正如论文标题Visualizing and Understanding Convolutional Networks所显示的那样,与提出一个性能更好的网络结构相比,这篇论文更大的贡献在于提出一种将卷积神经网络深层特征可视化的方法

特征可视化

在博文《卷积神经万络之卷积计算、作用与思想》 博客园 | CSDN | blog.shinelee.me 中,我们讲到卷积神经网络通过逐层卷积将原始像素空间逐层映射到特征空间,深层feature map上每个位置的值都代表与某种模式的相似程度,但因为其位于特征空间,不利于人眼直接观察对应的模式,为了便于观察理解,需要将其映射回像素空间,“从群众中来,到群众中去”,论文《 Visualizing and Understanding Convolutional Networks》就重点介绍了如何“到群众中去”。

可视化操作,针对的是已经训练好的网络,或者训练过程中的网络快照,可视化操作不会改变网络的权重,只是用于分析和理解在给定输入图像时网络观察到了什么样的特征,以及训练过程中特征发生了什么变化。

下面这张图截自论文同款talk

逆投影

给定1张输入图像,先前向传播,得到每一层的feature map,如果想可视化第\(i\)层学到的特征,保留该层feature map的最大值,将其他位置和其他feature map置0,将其反向映射回原始输入所在的像素空间。对于一般的卷积神经网络,前向传播时不断经历 input image→conv → rectification → pooling →……,可视化时,则从某一层的feature map开始,依次反向经历 unpooling → rectification → deconv → …… → input space,如下图所示,上方对应更深层,下方对应更浅层,前向传播过程在右半侧从下至上,特征可视化过程在左半侧从上至下:

deconvnet

可视化时每一层的操作如下:

  • Unpooling:在前向传播时,记录相应max pooling层每个最大值来自的位置,在unpooling时,根据来自上层的map直接填在相应位置上,如上图所示,Max Locations “Switches”是一个与pooling层输入等大小的二值map,标记了每个局部极值的位置。
  • Rectification:因为使用的ReLU激活函数,前向传播时只将正值原封不动输出,负值置0,“反激活”过程与激活过程没什么分别,直接将来自上层的map通过ReLU。
  • Deconvolution:可能称为transposed convolution更合适,卷积操作output map的尺寸一般小于等于input map的尺寸,transposed convolution可以将尺寸恢复到与输入相同,相当于上采样过程,该操作的做法是,与convolution共享同样的卷积核,但需要将其左右上下翻转(即中心对称),然后作用在来自上层的feature map进行卷积,结果继续向下传递。关于Deconvolution的更细致介绍,可以参见博文《一文搞懂 deconvolution、transposed convolution、sub-­pixel or fractional convolution》 博客园 | CSDN | blog.shinelee.me

不断经历上述过程,将特征映射回输入所在的像素空间,就可以呈现出人眼可以理解的特征。给定不同的输入图像,看看每一层关注到最显著的特征是什么,如下图所示:

完全に訓練されたモデルの機能の可視化

其他

除了网络架构和可视化方法,论文中还有其他一些值得留意的点,限于篇幅就不展开了,这里仅做记录,详细内容可以读一读论文:

  • Occlusion Sensitivity 实验:使用一个灰色的小块,遮挡输入图像的不同区域,观察对正类输出概率的影响,以此来分析哪个区域对分类结果的影响最大,即对当前输入图像,网络最关注哪个区域。结果发现,feature map最强响应可视化后对应的区域影响最大。
  • 汎化は、フィーチャーは:ImageNet、固定重量に事前に訓練を受け、その後、他のライブラリ(カリフォルニア工科大学-101、カリフォルニア工科大学-256への移行 )、 再訓練の最後のソフトマックス分類器を、わずか数は、高速コンバージェンス、および良好なパフォーマンスをサンプリングすることができるようになります。
  • 分析機能:単体、それぞれの層がベース前記訓練されたネットワークのためのトレーニングやソフトマックスSVM分類器、機能の異なる層を区別するための能力を評価するために、深い機能を区別するための強力な能力を見つけます。

上記。

参照

おすすめ

転載: www.cnblogs.com/shine-lee/p/11563237.html