「2019年前半に読むべきディープラーニング論文 19選」 Deep Residual Learning for Image Recognition
こんにちは。スキルアップAI編集部です。
本記事は2019年に執筆されたものですが、2021年の現在となっても非常に有意義な記事となっております。是非ご一読ください。
はじめに
前回は2019年前半に読むべきディープラーニングの論文一覧をご紹介いたしましたが、今回はその中からDL講座の復習も兼ねて、モダンなCNNの主要技術であるResNetの原論文を紹介します。
論文タイトル:Deep Residual Learning for Image Recognition
著者:Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun
公開: https://arxiv.org/abs/1512.03385
論文の概要
本論文の概要は以下の通りです。
●従来のCNNでは、深くしていくと勾配消失(Gradient vanishing, degradation)により学習がうまく進まなかった
・ニューラルネットワークでは出力層で計算した誤差を誤差逆伝播法で入力層まで戻していき学習する
・層が深すぎる(例:20層~)と逆伝播の際、誤差が入力層まで伝わらなかった
●Residual blockと呼ばれるSkip connectionを提案、勾配消失を回避
・学習したい関数との”差”(residual)を学習させることで勾配消失を回避している
●実質的に無限に層を増やしていくことが可能になった
・モダンなCNNアーキテクチャの元祖になった重要論文
・ただし、層を増やすと過学習の問題が発生する
●ILSVRC’15で優勝
・主要なCNNアーキテクチャの層数
○ILSVRC’12: AlexNet8層
○ILSVRC’14: VGG19層
○ILSVRC’14: GoogLeNet22層
○ILSVRC’15: ResNet152層
Residual blockについて
Residual blockのコンセプト(何故残差にするといいのか?)は以下だと読み取れます。
●単純な学習レイヤ(Weighted layer; 畳み込みなど)だけのPlain blockに対し、恒等写像でバイパスした値を足すという操作を加えたもの
●学習レイヤの出力を𝐹(𝑥)とするとResidulal blockは𝑥 + 𝐹(𝑥)
・𝑯(𝒙)そのものではなく入力𝒙との残差𝑭(𝒙)を学習
●学習したい対応𝐻(𝑥)が𝑥に近いならば𝐹は零写像になる
・Fが学習していなくても恒等写像の性能は持つため、層を深くした際に、訓練誤差が大きくなるということは起きなくなるはず
●このバイパスコネクションをSkip-connectionまたはResidual connectionという
●計算グラフが分岐するだけなので誤差逆伝播の計算も可能
Residual blockのケーススタディ
論文内ではケーススタディとして、Residual connectionの方法を変えた場合や、構成を変えた場合の検討がされています。
Residual connectionの実現方法
●Convolutionの結果、特徴マップの次元数が変わることがある
・特徴マップの大きさが変わる(Stride, kernel sizeの問題)
・チャネルが変わる(Conv kernelの数の問題)
●Zero paddingをする場合や、アフィン変換する場合が検討されている。
・精度にあまり違いはなく、どれでもよいという結果
Bottleneck block
●Residual blockの最もプレーンな構成は3x3のCNNを2段重ねたもの (VGG like)
・広さ方向より深さ方向に拡張したほうが性能はいいはず!
●学習コスト(パラメータ数)はあまり変わらない
・Plain Residual block (バイアス除く) (64 × 3 × 3 × 64) + (64 × 3 × 3 × 64) = 73728 [個]
・Bottleneck block (256 × 12 × 64) + 64 × 32 × 64 + 64 × 12 × 256 = 69632[個]
●実験的に性能はBottleneckのほうが上
Residual blockの効果
●Residual connectionを持たないモデル(Plain)とImageNetの性能を比較
・ResNetが有意に上回る
・層が深くなると性能差が顕著=> 勾配消失を回避できている
●ILSVRCのSotAモデルとの性能比較でもResNet-152layerが Top-1, Top-5 スコアの全てで勝利
・Residual moduleの有効性をアピール
●CIFAR-10で層数に関する検証
・Plainでは20layer > 56 layer
・ResNetにすると110layerでも うまく学習可能になる
●CIFAR-10を1202層のResNetで学習してもなんの問題もなく学習可能
・ただし汎化性能は110層より低い
・train error ≃ 0になっているので過学習と見られる
おわりに
ResNetの発表により、それまでの深さ(20層程度)とは比較にならない層の学習が可能になりました。
スキルアップAIでは、現在「【E資格対策】ディープラーニング最新論文対策講座」を開講中です。この講座では、2015年以降に発表されたディープラーニングに関する注目論文を潮流に沿って紹介し、注目ポイントを解説しています。
☆☆☆
スキルアップAIのメールマガジンでは会社のお知らせや講座に関するお得な情報を配信しています。
配信を希望される方はこちら
また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
Twitterはこちら
Facebookはこちら
LinkedInはこちら
この記事が気に入ったらサポートをしてみませんか?