Skip to main content
ResNet(Residual Network)
残差ネットワーク
1
はじめに
• 本スライドの読者層として、畳み込みニューラルネットワーク
をある程度理解している方を想定しております。
• 本スライドはモデルの大まかな理解を目的としており、数式に
よる説明を控え目にしております。加えてソースコードの記載
など実装の部分にも触れていない事をご了承ください。
2
ResNetとは?
• 分類としてはニューラルネットワークの一種。
⇒特にCNN(畳み込みニューラルネットワーク)を発展させたもの。
• 画像認識精度を競うImageNet 2015年度の優勝アルゴリズム。
モデルとしては非常に新しく、なおかつ画像認識においては
トップクラスの能力を持つ!
では具体的にどのようなモデルなのか?⇒
3
ネットワークモデル
1
2
3
4
5
6
7
8 152
151
150
149
(
省
略
)
4
ResNetの特徴
• 従来のモデルと比較したときに、2つの斬新な特徴を持つ。
• そのうちまず1つは前ページの図で簡単に確認できるように、
層が非常に深いということ。
• 2012年度、2013年度の ImageNet 優勝アルゴリズムが8層、
2014年度の優勝アルゴリズムが22層で形成されていたのに対し、
ResNetは152層と桁違いの深さ。
• もう1つの特徴は shortcut connection の導入ですが、その前
に1つ目の「層が非常に深い」という点について多少の補足を
加えておきます。
5
深いほど良いのか?
• 層が深いモデルの表現力は高くなるのは確かで、実際に「適度
な深さの」多層パーセプトロンは単純パーセプトロンよりも優
れた精度の学習が行えます。
• ここで「適度な深さの」と記述しましたが、これは層が深すぎ
ると学習が難しくなり、実際には予測精度が向上しないため。
• この「深すぎると上手くいかない」問題の正体は、勾配消失と
いう多層ネットワーク特有の現象。
6
勾配消失とは何か?⇒
勾配消失問題とは? (1)
計算を簡単にするため、右下図のような各層に1つしかノードを持たない4層の
ニューラルネットワークを例にします。
このネットワークにおける各ノードの勾配は、
ノード4:
𝜕𝐶
𝜕𝑏4
=𝜎′(𝑧4) ×
𝜕𝐶
𝜕𝑎4
ノード3:
𝜕𝐶
𝜕𝑏3
=𝜎′(𝑧3) × 𝑤4 × 𝜎′(𝑧4) ×
𝜕𝐶
𝜕𝑎4
ノード2:
𝜕𝐶
𝜕𝑏2
=𝜎′(𝑧2) × 𝑤3 × 𝜎′(𝑧3) × 𝑤4 × 𝜎′(𝑧4) ×
𝜕𝐶
𝜕𝑎4
ノード1:
𝜕𝐶
𝜕𝑏1
=𝜎′(𝑧1) × 𝑤2 × 𝜎′(𝑧2) × 𝑤3 × 𝜎′(𝑧3) × 𝑤4 × 𝜎′(𝑧4) ×
𝜕𝐶
𝜕𝑎4
となります。(次ページへ)
変数・関数の定義
𝐶:誤差関数
σ(𝑥) :活性化関数
また、 j番目のノードにおいて
𝑏𝑗: バイアス
𝑤𝑗:重み
𝑧𝑗: 活性化関数に通す前の出力
(= 𝑤𝑗 𝑎𝑗−1 + 𝑏𝑗)
𝑎𝑗: 出力 (= 𝜎 𝑧𝑗 )
7
𝜎(𝑥)
𝑤1
𝜎(𝑥)
𝑏1
𝑤2
𝜎(𝑥)
𝑏2
𝑤3
𝜎(𝑥)
𝑏3
𝑤4
𝑏4
ノード1 ノード2 ノード3 ノード4
勾配消失問題とは? (2)
前ページの勾配のうちノード1に着目します。
ノード1:
𝜕𝐶
𝜕𝑏1
=𝜎′(𝑧1) × 𝑤2 × 𝜎′(𝑧2) × 𝑤3 × 𝜎′(𝑧3) × 𝑤4 × 𝜎′(𝑧4) ×
𝜕𝐶
𝜕𝑎4
特に注目すべきは赤字部です。これは活性化関数を微分したものですが、活性化
関数の微分は値が常に1以下であることが知られています。
とりわけ活性化関数としてよく用いられるシグモイド関数の導関数に関しては、
値が常に0.25以下であることも知られています。
すなわち𝜎′
𝑧 ≦ 1、特にシグモイド関数においては𝜎′
𝑧 ≦ 0.25といえます。
上式では4層のパーセプトロンであるため活性化関数の微分値が4回掛け合わされ
ますが、100層のパーセプトロンであれば100回掛け合わされる事になります。
その結果、極端に長いニューラルネットワークの入力層に近いノードでは、勾配
が非常に小さい値に収束する事となります。これが勾配消失です。
複雑なモデルにおいても同様の事が起こります。 8
勾配消失問題まとめ
以上のように極端に長いニューラルネットワークにおいては勾配が消失し
てしまう事が分かりました。
ニューラルネットワークにおいて重みの更新は勾配に基づいて行われるの
で、勾配の消失は学習の停止・速度の著しい低下を招きます。
これを防ぐ案も幾つか(バッチ正規化やdropout)提案されていましたが、非
常に長いネットワークにおいては未だ解決できない問題でした。
そんな中出現した画期的な案というのが、先ほど紹介したResNet2番目の
特徴、すなわちshortcut connection の導入です。
9
ResNetの考え方
右図青線:deep pathが従来のルート。
shortcut connectionは右図赤線のルート。このルー
トを新たに加えます。
入力値を x 、従来のCNNにおける☆部での値をH(x)
とすると、
ResNetではshortcut connectionで x 、deep pathで
F(x)=H(x)-xを出力し、☆部でこれらを加算します。
重みの更新もdeep pathでF(x)を出力するように学習
されます。
残差(residue)を出力するNetworkであることから
ResNet(Deep Residual Network)と呼ぶようです。
10
xF(x)
Deeppath
なぜ勾配問題が解決できたのか?
既存のモデルでは勾配を計算する際deep pathを通していたため
に勾配が小さくなっていたのが、ResNetにおいてはdeep pathで
はなくshortcut connectionを通しているために勾配の減衰を防
げているようです。
詳しくは𝐻 𝑥 = 𝐹 𝑥 + 𝑥という関数を通すが、この関数の微分
が1に非常に近く、勾配計算時に他のノードをほぼ素通りできる
から。
11
なぜ性能が高いのか?
Andreas(2016)らの論文ではResNetの予測精度および汎用性の高さの根拠を「並
列パスのアンサンブル学習とみなせるから」と解釈しています。
詳しくはResnetが下のような並列のパスに書き換え可能で、各々のパスが別々の
学習器として扱えるアンサンブル学習として振る舞っているという事です。
論文内では実験として「deep pathを1箇所取り除きshortcut connectionのみ残し
たところ、精度にはほとんど影響がなかった(パス同士に依存性がない)」「取り除
くdeep pathを増やしたところ、取り除いたdeep pathの数に応じて徐々に精度が
低下した」様子が示されており、各々のパスが確かにアンサンブル学習的振る舞
いを見せていることが分かります。
12
=
ResNetの弱点
非常に層が深く精度の高いモデルが構築できるResNetですが、
層が深いゆえに「学習時間が極端に長い」という弱点もあります。
最初のResNetの論文では8枚のGPUを稼働させながら学習に数
週間を要したとあります(152層のモデル)。
これを踏まえるに、豊富な時間と整った環境はResNetを用いる
ための最低条件だと言えるかもしれません。
13
ResNetまとめ
まだまだ新しいモデルであるResNetですが、特に画像認識の分野において
は強力な手法であると言えます。
翌年行われたImageNet2016においてもResNetを改良させた手法が多く見
られており、ResNetは現在最も研究が盛んなモデルの1つだと言えます。
非常に層が深いため学習時間が膨大になるのが欠点です。加えて学習環境
もある程度整っている必要があります。
⇒しかしながら学習時間を短縮させた案も幾つかあり、そちらを検討する
価値は大いにあると思われます。
終わりにResNetの派生研究の紹介を行います。 14
派生研究 (1)
• 100層を超えるResNetは学習に数週間を要する。改善できない
か?
⇒深い層ではdeep pathが0に近い値を出力することが知られている。
Gao(2016)らの論文ではそれを利用し、深い層において一定確率で
deep pathを無視し、shortcut connectionを素通りするようなモデ
ルを作成。精度を下げることなく25%程度の時間短縮に成功(Deep
Networks with Stochastic Depth)。
• 層を深くするのでなく、畳み込み時のフィルタの数を増やして
ネットワークを広くする事で性能を上げられないか?
⇒Sergeyらの論文によると、ネットワークを広げる事によって僅か
16層程度のモデルでも既存のResNetの性能を出す事が可能に。
層数も少なくできるので学習時間の削減にも成功(Wide ResNet)。
15
派生研究 (2)
• Deep path内のバッチ正規化や畳み込み層の順序の考察。
⇒右図の青枠が従来のモデルだが、Kaimingらの論文に
よると赤枠で描かれているモデルの方が性能が高い。
合流後のReLUは不要。一般にResidual
Networksというと現在はこれを指します。
• その他、構造を改造する案が多数あるようです。
16
参考論文等
• He, Kaiming, et al. "Deep Residual Learning for Image Recognition." arXiv preprint
arXiv:1512.03385 (2015)
• Veit, Andreas, et al. “Residual Networks Behave Like Ensembles of Relatively Shallow
Networks.” arXiv preprint arXiv:1605.006431 (2016)
• Huang, Gao, et al. "Deep networks with stochastic depth." arXiv preprint
arXiv:1603.09382 (2016)
• Zagoruyko & Komodakis “Wide Residual Networks.” arXiv preprint arXiv:1605.07146
(2016)
• He, Kaiming, et al. "Identity mappings in deep residual networks." arXiv preprint
arXiv:1603.05027 (2016)
17