画像の認識タスクでResNet1をベースにした手法が高い性能を示しています。
Deep Learningといっても、それまで十何層というネットワークだったものが、ResNetの登場により100層を超えたネットワークを作っても学習できるようになり、性能が上がったとされています。なぜResNetが高い性能を示すのかということを研究した論文を読んだので、概要を紹介します。
まずおさらいとして、ResNetは下図のようなResidual netモジュールを繰り返して構成されます。
従来のDeep Learningのネットワーク(VGGなど)は下図のようなモジュールを繰り返して構成されます。
各図の右側の説明のように、weight layer(Convolution層)を通った後の出力の期待を、従来のネットワークでは望ましい値をダイレクトに求めるのに対して、ResNetでは入力値であるxとの差分として求めると設定して、ショートカットコネクションをつけています。
ResNetがどのように精度向上を果たしているかについて、紹介する論文"Residual Networks Behave Like Ensembles of Relatively Shallow Networks"2では、ResNetでも多くの層を通るとbackpropagationにおけるgradient powerが減衰して伝わらなくなることはあるが、下図の左に示すResidual netモジュールは下図の右に示すように複数の経路をとりうるネットワークと等価として描き直せるとしています。
f1->f2->f3からその上にあるそれぞれのresidual分岐をすべて通るパターンもあれば、一番上のルートのみ通るような入力がそのまま出力するパターンまで取りえます。
このように層数も異なる多くのネットワークパターンでの学習になることでアンサンブル学習の効果が得られているということです。
このことは下図に示すように推論時に層を削除したときのエラーレートの上昇が滑らかになることからも主張しています。
また下図では推論時に層を削除したときのエラー率についてVGGと比較しています。VGGではネットワークが一本の構造なので当然崩壊してしまいエラー率が90%を超えてくるが、ResNetではどの層を除去してもエラー率の上昇が非常に小さいことは驚きだと述べています。
(downsamplingする層を除去すると他の層よりも多少エラーが上がることが小さなピークとして示されています)
Attention Branch Networkについては、こちらのページに記事を書きました。