LoginSignup
19
15

More than 3 years have passed since last update.

ResNetはなぜ良い性能を示すのか

Last updated at Posted at 2019-10-25

画像の認識タスクでResNet1をベースにした手法が高い性能を示しています。
Deep Learningといっても、それまで十何層というネットワークだったものが、ResNetの登場により100層を超えたネットワークを作っても学習できるようになり、性能が上がったとされています。なぜResNetが高い性能を示すのかということを研究した論文を読んだので、概要を紹介します。

まずおさらいとして、ResNetは下図のようなResidual netモジュールを繰り返して構成されます。
ResNet_Explain1.png ResNet_Explain3.png

従来のDeep Learningのネットワーク(VGGなど)は下図のようなモジュールを繰り返して構成されます。
ResNet_Explain2.png ResNet_Explain4.png

各図の右側の説明のように、weight layer(Convolution層)を通った後の出力の期待を、従来のネットワークでは望ましい値をダイレクトに求めるのに対して、ResNetでは入力値であるxとの差分として求めると設定して、ショートカットコネクションをつけています。

ResNetがどのように精度向上を果たしているかについて、紹介する論文"Residual Networks Behave Like Ensembles of Relatively Shallow Networks"2では、ResNetでも多くの層を通るとbackpropagationにおけるgradient powerが減衰して伝わらなくなることはあるが、下図の左に示すResidual netモジュールは下図の右に示すように複数の経路をとりうるネットワークと等価として描き直せるとしています。
ResNet_Explain5.png

f1->f2->f3からその上にあるそれぞれのresidual分岐をすべて通るパターンもあれば、一番上のルートのみ通るような入力がそのまま出力するパターンまで取りえます。
このように層数も異なる多くのネットワークパターンでの学習になることでアンサンブル学習の効果が得られているということです。
このことは下図に示すように推論時に層を削除したときのエラーレートの上昇が滑らかになることからも主張しています。
ResNet_Explain6.png

また下図では推論時に層を削除したときのエラー率についてVGGと比較しています。VGGではネットワークが一本の構造なので当然崩壊してしまいエラー率が90%を超えてくるが、ResNetではどの層を除去してもエラー率の上昇が非常に小さいことは驚きだと述べています。
(downsamplingする層を除去すると他の層よりも多少エラーが上がることが小さなピークとして示されています)
ResNet_Explain7.png

Attention Branch Networkについては、こちらのページに記事を書きました。

19
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
15