ResNetは様々な長さのパスをもつネットワークのアンサンブルとみなせる

ResNetの初出の論文を読んだが、 なぜ深層の学習がうまく行ったのか不明瞭だった。
本論文ではその「なぜ?」の部分に対する解釈を与えている。
この解釈は興味深く感じる。

概要

  • ResNetの新たな解釈を提案
    • ResNetは様々な長さの多くのパスの集合体
    • 深層の学習を短いパスだけを使って行っている。
  • ResNet内の様々なパスを明示的に展開した上で実験
    • アンサンブル学習の振る舞いを観測
    • 長いパスの部分は学習に寄与しない
    • 短いパスが重要
      • 勾配消失問題を避けている。

パスの展開

ResNetは、畳み込みとskip connectionの2通りのパスをもつ各モジュールが積み重なっている。
このパスを明示的に以下のように展開することができる。

f:id:yusuke_ujitoko:20170615211121p:plain

展開図からも分かるように、
深さに応じて指数関数的にパスが増えることになる。
この多数のパスに関して、以下のような疑問に応える形で実験を行っている。

  • この展開されたパス同士に依存性はあるか?冗長性があるか?
  • 依存性がない場合、アンサンブル学習と同じ振る舞いを見せるか?
  • パスの長さによって結果へのインパクトは異なるか?

4.1 テスト時に一つのResNetモジュールを取り除く

テスト時に1つのResNetモジュールを取り除いて(skip connectionだけ残す)、結果への影響を見る。
VGGではモジュールを取り除くことで結果が悪くなったが、ResNetではあまり変わらなかった。
この結果によりResNetでは個々のパスには依存性がないことがわかった。

f:id:yusuke_ujitoko:20170615212317p:plain

この結果から、ResNetは 各パスからなるネットワークのアンサンブルとみなせるはず。

4.2 テスト時に多くのモジュールを取り除く

アンサンブルな振る舞いがあるとすると、
取り除くモジュールの数に応じて、スムーズに結果が変化すると期待できる。
結果として、valid pathsの数に応じて、errorがスムーズに増えた。

f:id:yusuke_ujitoko:20170615212308p:plain:w400

勾配消失

展開されたResNetでは、パスごとにskip connectionをどれだけ通るかが異なるため、畳み込み処理が行われる回数も異なる。 これをパスの長さと言っている。
このパスの長さにより勾配消失が起こりやすいかを調べている。

真ん中の(b)が、パスの長さごとの入力層の勾配の大きさを示している。 これを見ると、パスが小さくなるにつれて入力層での勾配は大きくなっていることがわかる。

f:id:yusuke_ujitoko:20170615213513p:plain

また、(c)は各パスにおける勾配の合計値を示しており、これを見るとある程度短いパスの方が、訓練時に勾配情報が伝わっていることがわかる。