Deep Residual Learning for
Image Recognition
2018/11/12
1
[1] He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition.
In Proceedings of the IEEE conference on computer vision and pattern recognition
(pp. 770-778).
ResNet の成果
ResNet の発表前と比べて,非常に深いネットワークを実現
2
[2] http://image-net.org/challenges/talks/ilsvrc2015_deep_residual_learning_kaiminghe.pdf
22層 ⇒ 152層
図1. ImageNet の分類タスクの発展[2]
背景
深層学習(CNN)は
ImageNet のような画像分類タスクで多大な効果を発揮
自然に低レベルから高レベルの特徴を接続可能
3
[3] LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the
IEEE, 86(11), 2278-2324.
[4] http://scs.ryerson.ca/~aharley/vis/conv/flat.html
高レベルな特徴
図2. LeNet の構造(下)[3]と LeNet の特徴マップ(上)[3]
層の増加で精度は上がるか
層を増やすことで,より高いレベルの特徴量を使用可能
⇒ しかし同時に,勾配消失と勾配爆発の可能性が増大
4
20層 > 56層で,層を深くすると性能が劣化(≠過学習)
目的
2014年における“深い”ネットワーク ⇒ 20層前後
2015年における“深い”ネットワーク ⇒ 100層以上?!
5
劣化せず,より“深い”ネットワーク構造の実現
図3. plain network (左) と residual learning (右) [1]
式変形
shortcut
関連研究
勾配消失や残差を扱った研究をいくつか紹介
勾配消失に対する対策
➢一般的な画像以外にも使用可能な手法
➢Shortcut を利用した手法
残差を利用した手法
特徴量の抽出による精度の向上
6
残差や shortcut を用いることで,精度が向上可能?
勾配消失問題
一般的な勾配消失/発散問題に対する対策として
Normalized initialization
隠れ層の数から分散を決定した分布を初期値に使用[4]
Batch Normalization
バッチ内での正規化
Construction
浅い層で学習した初期値をより深い層の初期値に使用
7
[4] He, K., Zhang, X., Ren, S., & Sun, J. (2015). Delving deep into rectifiers: Surpassing human-level performance on
imagenet classification. In Proceedings of the IEEE international conference on computer vision (pp. 1026-1034).
Deeper
Shallower
network
Input
Output
Shallower
Input
Output
New layer重みを転用
⇐ copied
⇐ added
Shortcut Ⅰ
GoogLeNet [6]では
Shortcut Connections を使用
中間層から出力層へ
直接接続
Inception 内の
1 × 1 CNNによる
次元削減
8
[6] Szegedy, C., Liu, W., Jia, Y., Sermanet, P., Reed, S., Anguelov, D., ... & Rabinovich, A. (2015). Going deeper
with convolutions. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 1-9).
図4. GoogleNetのモデル図[6]
出力層
計3つの shortcut
を用いることで,
勾配消失を回避
inception
Shortcut Ⅱ
Highway network[7]
LSTM のように,gating function を用いて学習
𝒚 = 𝐻 𝐱, 𝐖 𝐇 ∙ 𝐺 𝐱, 𝐖 𝐆 + 𝐱 ∙ 1 − 𝐺 𝐱, 𝐖 𝐆
𝒚:出力層,𝐱:入力層
𝐖 𝐇:隠れ層の重み,𝐖 𝐆:ゲート層の重み
𝐻 𝐱, 𝐖 :非線形関数, 𝐺 𝐱, 𝐖 :ゲート関数
gating function の問題点として
ゲートが閉じているとき,𝐺 𝐱, 𝐖 𝐆 = 0 となり,残差なし
100層以上ではモデルが劣化
9
[7] Srivastava, R. K., Greff, K., & Schmidhuber, J. (2015). Highway networks. arXiv preprint arXiv:1505.00387.
残差表現Ⅰ
Bag of Visual Words (BoVW) による情報抽出/次元削減
10
画像から特徴を抽出
(ex. 色,エッジなど)
各特徴点をクラスタリング
(クラスタ数に確証なし)
各クラスタをベクトルの要素とし
各画像をベクトルで表現
[8] Yang, J., Jiang, Y. G., Hauptmann, A. G., & Ngo, C. W. (2007, September). Evaluating bag-of-visual-words representations in scene
classification. In Proceedings of the international workshop on Workshop on multimedia information retrieval(pp. 197-206). ACM.
図5. BoVW の流れ[8]
残差表現Ⅱ
フィルター間の差により,画像から特徴量を抽出(SIFT)
11
[9] Lowe, D. G. (2004). Distinctive image features from scale-invariant
keypoints. International journal of computer vision, 60(2), 91-110.
元画像
DoG フィルタを
画像に使用
局所的極値を
探索
特徴量を抽出
※図6. 元画像,Difference of Gausiann (DoG)の適用,
各スケール間の比較,特徴量抽出結果(左から)[9]
差分が最大となる点
残差表現Ⅲ(おまけ)
BoVW における問題点
kmeans 法では,平均・分散が未考慮
次元数がクラスタ数(visual word の数)で少数になりがち
混合ガウス分布を用いた kmeans 法の近似式を考える
𝑝 𝐱 = σ 𝑘=1
𝐾
𝜋 𝑘 𝒩(𝐱|𝝁 𝑘, 𝚺 𝑘)
𝜋 𝑘:クラスタに属する確率
𝒩(𝐱|𝝁 𝑘, 𝚺 𝑘):平均 𝝁 𝑘 分散 𝚺 𝑘 のガウス分布
12
残差表現Ⅳ (おまけ)
先ほどの近似式を取り入れた BoVW の改良として
平均,分散を考慮した Fisher Vector
⇒ 次元数は[クラスタ数] × [平均と分散の次元数]
平均のみを考慮した VLAD
⇒ 次元数は[クラスタ数] × [平均の次元数]
13
図7. クラスタ数16,次元数16の VLAD の特徴量[10]
[10] Jegou, H., Perronnin, F., Douze, M., Sánchez, J., Perez, P., & Schmid, C. (2012). Aggregating local image descriptors
into compact codes. IEEE transactions on pattern analysis and machine intelligence, 34(9), 1704-1716.
本研究の概要
残差を考慮した residual learning
Shortcut による Identity Mapping
残差と shortcut を用いて,“深い”ネットワーク構造を実現
14
図3. plain network (左) と residual learning (右) [1]
式変形
shortcut
Residual Learning
多重非線形関数が漸近的に複雑な関数を近似できる時
ℱ x ∶= ℋ x − x (1)
ℱ x : residual function, x: ブロックへの入力層
ℋ x : 2層以上の非線形関数,元々の関数
ℋ x について解くと,
ℋ x = ℱ x + x (2)
(2)について学習しても,パラメータは変わらず計算も容易
15
Residual Learning では ℋ x = ℱ x + x について学習
Residual Learning の解釈
Residual Learning は元々の学習関数が学ぶべき関数に
近似可能だが,学習のしやすさが異なるかもしれない
Construction において,深いモデルがなぜ劣化するのか
⇒ 新たに加えられた層が恒等写像するのは難しい?
16
Deeper
Shallower
network
Input
Output
Shallower
Input
Output
New layer重みを転用
Shallower の出力
が最適解なら
Shortcut 可能?
恒等写像(identity mapping)できれば,深いモデルは性能劣化しない
Residual Learning の一般化
ℱ x と x が同次元の時
𝒚 = ℱ 𝐱, {𝑊𝑖} + 𝐱 (res. 1)
同次元でないとき
𝒚 = ℱ 𝐱, {𝑊𝑖} + 𝑊𝑠 𝐱 (res. 2)
𝐱: 入力層 𝐲: 出力層 ℱ 𝐱, {𝑊𝑖} : residual mapping
𝑊𝑖: 𝑖番目の重み 𝑊𝑠: 形状を合わせるための変換
Ex. ℱ 𝐱, {𝑊𝑖} = 𝑊2 𝑟𝑒𝑙𝑢(𝑊1 𝐱), 𝑊𝑠 = 1 × 1 の CNN
ℱ 𝐱, {𝑊𝑖} が1層の時は,通常のネットワークとほぼ同じ
17
18
ネットワーク
構造Ⅰ
 VGG-19 を参考に
plain/residual nets
を構築[11]
 画像サイズを縮小
するために
ダウンサンプリング
[11] Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image
recognition. arXiv preprint arXiv:1409.1556.
ダウン
サンプリング
(𝑟𝑒𝑠. 2)
(𝑟𝑒𝑠. 1)
CNN 内で
ダウン
サンプリング
19
ネットワーク
構造Ⅱ
 3 × 3 の CNN を
極力使用
 プーリング層と
全結合層を削減
 フィルターの総数
が少ないため
計算量も削減
計算量 19.6 3.6 3.6(𝑏𝑖𝑙𝑙𝑖𝑜𝑛 𝐹𝑙𝑜𝑝𝑠)
全結合層
プーリング層
ネットワークの種類
ImageNet 用に 18, 34, 50, 101, 152層のネットワークを提案
34層とそれ以降では,計算量の削減のため異なるブロック
20
34層 50層
VGG より少ない
計算量
実験対象
Object Classification
➢ImageNet
画像数: 1400万以上,synsets 数: 2万以上,pixcel 数: 256 × 256
※実験に用いた ImageNet-2012 では
画像数: 128万,synsets 数: 1000
➢Cifar-10
画像数: 6万,synsets 数: 10,pixcel 数: 32 × 32
Object Detection
Microsoft COCO データセット
画像数: 6万,カテゴリ数: 80
21
図8. COCOデータセット[12]
[12] Lin, T. Y., Maire, M., Belongie, S., Hays, J., Perona, P., Ramanan, D., ... & Zitnick, C. L. (2014, September). Microsoft
coco: Common objects in context. In European conference on computer vision (pp. 740-755). Springer, Cham.
ImageNet の例
花の中でも,非常に細かな分類(4000以上)
22[13] http://image-net.org/explore
図9. ImageNet の synset 例[13]
Cifar-10 の例
ImageNet と比べると,非常に大まかな分類
23[14] https://www.cs.toronto.edu/~kriz/cifar.html
図10. Cifar-10 のカテゴリ[14]
実験
前処理として
画像に対して,標準的な data augmentation
➢スケールの拡大・縮小
➢端の切り落とし
➢横方向反転 … 𝑒𝑡𝑐
モデル内部
➢CNN 毎に,Batch Normalization
➢SGD を使用(learning rate は学習が停滞する度,0.1倍)
➢Mini batch size は256
24
ImageNet の結果Ⅰ
ResNet では,性能劣化が起きず,精度が向上
Plain net では,層を深くした事で,性能が劣化
25
※太い線が validation error (50k images), 細い線が training error
Batch Normalization は分散を必ず持ち,identity mapping は困難
ImageNet の結果Ⅱ
予測した上位1件,5件とのエラー率を比較
ResNet-152 が最も高精度
(test, validation 共に)
Plain net と比較しても
精度の向上を確認
ショートカットの方法も評価
C > B > A であるが,今後は
計算量の少ない B を使用
➢A:次元数が増えたとき
zero-padding
➢B:次元数が増えたとき
1 × 1 の CNN
➢C:次元数に関係なく
1 × 1 の CNN
26
model top-1 err
(validation)
top-5 err
(validation)
VGG-16 28.07 9.33
GoogLeNet - 9.15
Plain-34 28.54 7.38
ResNet-34 A 25.03 7.76
ResNet-34 B 24.52 7.46
ResNet-34 C 24.19 7.40
ResNet-50 22.85 6.71
ResNet-101 21.75 6.05
ResNet-152 21.43 5.71
Cifar-10 の結果Ⅰ
より深いモデルにおける ResNet の挙動を調査
Cifar-10 の pixcel 数(32 × 32)に合わせて,モデルを変化
CNN はすべて 3 × 3 を使用
次元の増加は 𝑛 で管理,すなわち 2𝑛 回ごとに次元が増加
最後の層はクラス数に合わせて出力が10次元の全結合層
Ex. ResNet-20 の場合,𝑛 は 3
27
Output size 32 × 32 16 × 16 8 × 8 1 × 𝟏𝟎
#layers 1 + 2𝑛 2𝑛 2𝑛 1
#filters 16 32 64 -
Cifar-10 の結果Ⅱ
予測した上位1件とのエラー率を比較
ResNet-110 が最も高精度
ResNet-1202 も Highway Networdk より高精度
28
model #layers #params error(%)
Highway 19 2.3M 7.54
Highway 32 1.25M 8.80
ResNet-20 20 0.27M 7.51
ResNet-32 32 0.46M 7.51
ResNet-56 56 0.85M 7.17
ResNet-110 110 1.7M 6.43(6.61±0.16)
ResNet-1202 1202 1.94M 7.93
Cifar-10 の結果Ⅲ
ImageNet との時と同様に
ResNet では,性能劣化が起きず,精度が向上
Plain net では,層を深くした事で,性能が劣化
右図から,深いモデルは勾配消失ではなく,過学習?
29
Cifar-10 の結果Ⅳ
層ごとの出力の標準偏差をソートした結果
ResNet は Plain Net より小さい標準偏差
深いモデルほど標準偏差が小さい傾向
30
COCO の結果
Faster R-CNN に VGG-16 と ResNet-101 を組み込んで学習
VGG に比べて高精度
31
図11. faster R-CNN[2]
物体の候補を
検出
VGG-16
or
ResNet-101
metric mAP@5 mAP@[.5, .95]
VGG-16 41.5 21.2
ResNet-101 48.4 27.2
※mAP(平均適合率)
まとめ
Residual Learning によって,深い層での学習に成功
152層のモデルを構築し,他手法よりも高い精度を達成
Object Classification だけてなく
Object Detection でも効果を示し
他のタスクでの有効性も確認
32
劣化せず,より“深い”ネットワーク構造の実現
図12. COCO に対する結果[2]
沢山あるから,注意深く見てね!!だそう
その他の参考資料
ResNet
https://qiita.com/ikeyasu/items/ea9ced2b8e0fcb3da2be
BoVW
特に,fisher vector は難しく,助かった・・・
https://www.slideshare.net/nlab_utokyo/20150930-53741757
http://www.isi.imi.i.u-
tokyo.ac.jp/~harada/pdf/LargeScaleGenericImageRecognition_ImageRe
presentation_prmu20110217_harada.pdf
画像処理の変遷
https://qiita.com/yu4u/items/7e93c454c9410c4b5427
Batch Normalization
https://qiita.com/t-tkd3a/items/14950dbf55f7a3095600
33

Deep residual learning for image recognition