Upgrade to Pro — share decks privately, control downloads, hide ads and more …

輪講資料 / Rethinking ImageNet Pre-training

C31b5afbe1ffb5588b2fe5a9e39b357b?s=47 Takumi Karasawa
December 12, 2019

輪講資料 / Rethinking ImageNet Pre-training

2019/12/12 社内 AIシステム部全体の輪講にて発表させていただいた資料です。
データセット周りの基礎事項を拾いつつ論文紹介させていただきました。

C31b5afbe1ffb5588b2fe5a9e39b357b?s=128

Takumi Karasawa

December 12, 2019
Tweet

Transcript

  1. AI 技術共有会資料 “Rethinking ImageNet Pre-training” Takumi Karasawa 2019/12/12

  2. 3 要約: 主に物体検出タスクを焦点に、近年デファクトスタンダードとして⽤いられる ImageNet pre-training の実際の効果について改めて詳細に実験を⾏い、考察を⾏った。 arXiv には 2018 年

    11 ⽉末に投稿。当時から有名(?)。 ICCV 2019, paper
  3. ICCV 2019 での様⼦ Poster 発表ではあるものの Ross Girshick さんが発表されていたこともあり⼤盛況。 全く近寄れず。 4

  4. Kaiming He, Ross Girshick(Facebook AI Research) - R-CNN [1](CVPR 2014)10756

    R. Girshick, J. Donahue, T. Darrell, J. Malik - Fast R-CNN [2](ICCV 2015)7643 R. Girshick - Faster R-CNN [3](NIPS 2015)14160 S. Ren, K. He, R. Girshick, J. Sun - ResNet [4](CVPR 2016, Best Paper)34635 K. He, X. Zhang, S. Ren, and J. Sun - Mask R-CNN [5](ICCV 2017, Best Paper) K. He, G. Gkioxari, P. Dollár, R. Girshick - Panoptic Segmentation [6](CVPR 2019) A. Kirillov, K. He, R. Girshick, C. Rother, P. Dollár - Rethinking ImageNet Pre-training(ICCV 2019) K. He, R. Girshick, P. Dollár 5 https://www.rossgirshick.info/ http://kaiminghe.com/
  5. Faster R-CNN [3]/ Mask R-CNN [5] 6 ICCV 2017 Tutorial

    より引⽤ Faster R-CNN [3] Mask R-CNN [5]
  6. ImageNet [7] • 画像枚数:14,197,122(1400 万)、発表当時は 320 万 • クラス数:21,841(2 万)、発表当時は

    5000 • WordNet という概念辞書に基づいたツリー構造のアノテーション 歴史 • 2006年:Fei-Fei Li のもとImageNet プロジェクト始動 • 2007年:WordNet の作成者と議論 • Amazon Mechanical Turk を使⽤しクラウドソーシング。 • 2009年: CVPR@フロリダ のポスターにて発表。 • 2010 ~ 2017年:ImageNet を使⽤した⼤規模コンペティション ImageNet Large Scale Visual Recognition Challenge(ILSVRC)[8] 7 ライセンス:商⽤不可。事前学習済みモデルはややグレーなケースも。
  7. ImageNet [7] 該当クラスを選択するのではなく、あるクラスに対して該当する画像を選択することで効率化 8 ImageNetの実際のアノテーション画⾯ [引⽤元]: “delta” を選択する画⾯

  8. ImageNet [7] ちなみに “delta” は … 9 ImageNetの実際のアノテーション画⾯ [引⽤元]: “delta”

    を選択する画⾯
  9. ImageNet pre-training ‒ ILSVRC [8] 「ImageNet の事前学習」は通常、ILSVRC のために抽出されたデータセットに対する学習を指す * 特にILSVRC

    2012。(2010からはじまり クラスが 2回変更され 2012 で固定された。) - クラス数:1000 ➤ クラス名リスト (キットギツネ、イングリッシュセター、オーストラリアン・テリア、…) - 画像枚数: - 学習⽤:120万枚 - 検証⽤データ:5万枚 - 評価⽤データ:10万枚 10 Wordnet 分類名 クラス数 animal 397 device 118 container 92 consumer_goods 59 equipment 37 other 297 合計 1000 参考:WordNet 第7階層によるクラス分類 最初から知らない単語が並ぶ…
  10. ⽬次 1. Methodology 2. Experimental Settings 3. Results and Analysis

    4. Discussion 11
  11. 1. Methodology 実験を通して ImageNet pre-training がどんな影響をもたらしているかをより良く理解する こと論⽂の⽬的であるため、典型的なアーキテクチャを使⽤し変更は最⼩限に。 基本的には公開されている Mask R-CNNを使⽤。変更は⼆点:

    • Model normalization • Training length 12
  12. Model normalization 画像分類、物体検出の学習において normalization は必須となってきている。 これを軽視するとスクラッチ学習のポテンシャルを⾒誤る事となることに⾔及し、変更が加え られている 画像分類でよく⽤いられる normalization は⼤別して2つ

    a. Normalized initialization b. Activation normalization layers 13
  13. Model normalization ‒ a. Normalized initialization ネットワークの重みがあまりに⼩さい/⼤きいと最終層に到達するまでに消失/肥⼤化し学習が 困難となるため初期値を正則化する • Xavier/

    Glorot Normalized Initialization [9]:tanh 活性化関数と通常⼀緒に⽤いられる • He Normalized Initialization [10]:ReLU 活性化関数と通常⼀緒に⽤いられる ➤ 論⽂中ではすべて He Normalized Initialization を使⽤ 14
  14. Model normalization ‒ b. Activation normalization layers 各バッチ⼊⼒に対して各層にて正規化を⾏うことで 学習を⾼速化、初期値への依存を⼩さくするする役割を持つ •

    Batch Normalization(ICML 2015)[11]:現在おそらく最も普及している • Layer Normalization(arXiv 2016)[12] • Instance Normalization(arXiv 2016)[13] • Group Normalization(ECCV 2018)[14] 15 [14]、CVPR2018 Tutorial より引⽤
  15. Model normalization ‒ b. Activation normalization layers 各バッチ⼊⼒に対して各層にて正規化を⾏うことで 学習を⾼速化、初期値への依存を⼩さくするする役割を持つ •

    Batch Normalization(ICML 2015)[11]:現在おそらく最も普及している • Layer Normalization(arXiv 2016)[12] • Instance Normalization(arXiv 2016)[13] • Group Normalization(ECCV 2018)[14] ➤ Yuxin Wu, He Kaiming 16 各 normalization ⼿法と、normalization対象領域の違いの可視化。 [14] より引⽤
  16. Small batch size problem of Batch Normalization おそらく現在最もよく使⽤されているのは Batch normalization(BN)だが、

    バッチサイズが⼩さい時、⼤きく精度が劣化することが知られている。 * 物体検出では⼊⼒が⾼解像度であるためバッチサイズが⼩さくなることが多い 通常の対処法: pre-training の状態でパラメータを固定し、物体検出タスクに対する学習の時は更新しない。 ➤ スクラッチ学習ではこの対処法が適⽤できない 17
  17. Small batch size problem of Batch Normalization おそらく現在最もよく使⽤されているのは Batch normalization(BN)だが、

    バッチサイズが⼩さい時、⼤きく精度が劣化することが知られている。 * 物体検出では⼊⼒が⾼解像度であるためバッチサイズが⼩さくなることが多い ➤ 変更点①:スクラッチ学習の実現のため以下の2つを BN の代わりに採⽤ • Group Normalization(GN) • Synchronized Batch Normalization(SyncBN): 複数の GPU に渡り batch 統計量を計算する実装⽅法で、small batch size ⾃体を回避 * 双⽅の実験を⾏っているが論⽂中の結果の⼤半は GN * 論⽂によるとこれによりスクラッチ学習が実現できたとのこと 18
  18. Training length ImageNet pre-training モデルとスクラッチ学習のモデルが同程度の早さで収束すると考える のは⾮現実的 • ImageNet pre-training ではセマンティックな情報だけでなく、エッジやテクスチャなどの

    低次な特徴量を学習しており、fine-tuning ではその点に関しては再学習する必要がない • 実際、 fine-tuning の際に最初の数層のフィルタはよくフリーズして⽤いられる ➤ 変更点②:学習時間をスクラッチ学習の⽅を3倍に 19
  19. Training length ‒ 参考:学習“サンプル”数の違い fine-tuning の際の 3倍のイテレーション数で学習しても、 学習画像数で⾔えば極めて少なく、ピクセル数で考えた時のみかろうじて近い値 * サンプル

    = 画像 or インスタンス or ピクセル、として捉えてみる * サンプル数はデータセットのサンプル数とエポック数をかけたもの 20 学習中にモデルに通す画像数、インスタンス数、ピクセル数の⽐較。 (COCOに対して fine-tune の際の 3倍の エポック数でスクラッチ学習をした場合。) 画像は論⽂中より引⽤
  20. 2. Experimental Settings 論⽂中のベースラインとハイパーパラメータはパブリックに利⽤可能な Detectron [15] 中の Mask R-CNN と同じものを使⽤。

    (Normalization と Iteration のみ変更) 21
  21. Facebook research の物体検出(とセグメンテーション)レポジトリ • 2018.1:Detectron(Caffe2 実装) ➤ 論⽂中ではこちらを使⽤ 2018.10:maskrcnn-benchmark(Pytorch 実装、dev

    版?) • 2019.10:Detectron 2(New!ICCV2019 にて発表) • Pytorch 実装 • ライブラリとして使⽤可能に • 学習の⾼速化(スループットが⼤きくなった) Detectron [15] 22 cf.) mmdetection: Multimedia Laboratory(The Chinese University of Hong Kong)の物体検出レポジトリ https://github.com/facebookresearch/Detectron https://detectron2.readthedocs.io/notes/benchmarks.html
  22. 2. Experimental Settings Architecture • Mask R-CNN [5] ResNet/ ResNeXt

    + Feature Pyramid Network (FPN) • Region Proposal Networks (RPN) と Mask R-CNN を同時に end-to-end で学習 • GN/SyncBN は 全ての frozen BN層と置換。 Hyper parameter • initial learning rate: 0.02 (with a linear warm-up) • weight decay: 0.0001 • momentum: 0.9 • 8 GPUs(synchronized SGD) • mini-batch size: 2 images per GPU • no data augmentation for testing • only horizontal flipping augmentation for training • image scale: 短辺が 800 pixels 23
  23. 2. Experimental Settings - Scheduling • Detectron 中の Mask R-CNN

    models は 90k/180k iterations で fine-tuningされる (90k 単位 を ʻ1× scheduleʼ 。90k = ʻ1× scheduleʼ、180k = ʻ2× scheduleʼ と表記) • LR scheduling は 2× schedule の⽅法を応⽤。 Iteration 数に依存せず、残り 60k で 0.1倍、残り20k で更に 0.1倍。 要するに、 • ⼩さい学習率での学習 iteration 数は全体の学習 iteration 数に依らず⼀定 • 学習率が⼤きいフェーズをそのまま⻑くする。 *最初の学習率の学習を⻑くすることで良い結果となり、 ⼩さい学習率で学習を⻑く⾏った時は過学習となってしまったとのこと。 24 学習率の変化のイメージ
  24. 2. Experimental Settings データセット • 学習:118k (118,287) の画像 ‒ COCO

    train2017 • 評価:5k の画像 ‒ COCO val2017 評価指標 • 物体検出の bounding box (bbox) Average Precision (AP) • インスタンスセグメンテーションの mask AP 25
  25. COCO データセット 物体検出タスクの中⼼的なデータセット。 「COOCデータセットに対する学習」は基本的に COCO 2017 を指す。 • クラス数:80 •

    2014年 データセット公開時 • 学習⽤:82783 • 検証⽤:40504 = 5000 + 35504(35k) ➤ val のうち 5000 を評価データとし、のこり35k を学習データに回す trainval35k という⽅法が主流となる。5000 の val は minival と呼ばれたり • 2017年 フィードバックを受けスプリットを変更。画像は変更なし。 • 学習⽤:118287(118k) • 検証⽤:5000(5k) • ほかタスク: • Captioning 2015 • Keypoints detection 2016 ~ 2019 • Stuff Segmentation 2017, 2018, 2019 = Semantic segmentation • Panoptic segmentation 2018, 2019 26 http://cocodataset.org/#home
  26. 3. Results and Analysis • よく⽤いられる 2× schedule は、pre-training モデルに対しては⼗分に収束するよう働いているが、

    スクラッチ学習のモデルに対しては⼗分と⾔えない。 • 収束するのに⼗分な 5×、6× schedule で学習することにより、 スクラッチで学習したモデルは fine-tuning で学習したモデルにそれぞれ追いついている。 27 ResNet-101 (R101) backbone & GN ResNet-50 (R50) backbone & GN R50 backbone & SyncBN 画像は論⽂中より引⽤
  27. 3. Results and Analysis • Table 2 では様々な評価指標にて同様に同程度の AP となっており、スクラッチ学習モデルが

    fine-tuning モデルに追いついたのは単⼀評価指標の偶然でないことが読み取れる。 • さらには閾値が⾼い AP75 の bbox では明らかな差を持って(1.0 or 0.8 AP)スクラッチ学習のほ うが良い。 28 ➤ ImageNet pre-training は学習の収束を速めることに役⽴ってはいるが、 accuracy の向上に寄与するとはいえない。 GNを⽤いた際の各スケジューリングでの定量評価 GNを⽤いた際の複数の指標での定量評価 (スケジューリングは random 2x、w/pre-train 6x) 画像は論⽂中より引⽤
  28. 3. Results and Analysis ‒ keypoints detection タスク スクラッチモデルは物体検出タスクに⽐べより早く fine-tuned

    モデルに追いついており、学習 iteration 数を増やさなくとも pre-training モデルと同程度の AP Keypoints detection は、空間的な位置に対してよりセンシティブなタスク ➤ 実験結果から、明⽰的な位置情報を持たない ImageNet pre-training は keypoints detection にはあまり役⽴たないといえる 29 画像は論⽂中より引⽤
  29. 3. Results and Analysis ‒ scratch with less data COCOの場合、基本的に学習データが⼗分にあるともいえ

    学習データがより少ない場合、ImageNet の効果があるのかについて検証。 • 118k ➤ 35k(1/3), 10k(1/10) 30 118kのパラメータをそのまま使⽤すると過学習。 Pre-training ⾃体に過学習を防ぐ効果はない(?)。 • 35k、10kの場合ともに精度はデータ量に応じて劣化 • 35k、10kの場合ともに pre-trainingありの精度と同程度 画像は論⽂中より引⽤
  30. 3. Results and Analysis ‒ scratch with less data COCOの場合、基本的に学習データが⼗分にあるともいえ

    学習データがより少ない場合、ImageNet の効果があるのかについて検証。 • 118k ➤ 3.5k(1/30), 1k(1/100) 31 • スクラッチモデルに対してハイパラチューニングを⾏うも pre-training ありモデルの精度に追いつけず • 10k ~ 3.5k のどこかに ImageNet の事前学習が意味を持つデータセットサイズが存在する データサイズ pre-training あり スクラッチ 3.5k 16 9.3 1k 9.9 5.4 データサイズと bbox AP
  31. PASCAL VOC データセット PASCAL = Pattern Analysis, Statistical Modeling and

    Computational Learning, VOC = Visual Object Classes 2005から2012まで毎年コンペティションのために作成されたデータセット *PASCAL VOC 2007、2012の trainval データを⽤いて学習し、 PASCAL VOC2007 の test データで評価するという⽅法が標準的(本論⽂ではやや異なる) • クラス数:20 • 画像数: • 学習:16551 • 評価:4952 32 PASCAL VOC 2007 trainval データ:5011 test データ:4952 PASCAL VOC 2012 trainval データ:11540 学習⽤データ数
  32. Year Statistics Note 2005 4クラス :bicycles, cars, motorbikes, people. Train/val/test:1578

    images, 2209 annotated objects. classificationタスク、detection タスク 2006 10 クラス :bicycle, bus, car, cat, cow, dog, horse, motorbike, person, sheep Train/val/test:2618 images, 4754 annotated objects. 2007 20 クラス Person: person Animal: bird, cat, cow, dog, horse, sheep Vehicle: aeroplane, bicycle, boat, bus, car, motorbike, train Indoor: bottle, chair, dining table, potted plant, sofa, tv/monitor Train/val/test :9,963 images, 24,640 annotated objects. Segmentation taster 追加 Person layout taster 追加 評価指標:ROC-AUC ➤ AP テストデータを public にした最後の年 Truncation flag追加 2008 Train/val :4,340 images, 10,363 annotated objects. Occlusion flag追加 2009 Train/val:7,054 images, 17,218 ROI annotated objects, 3,211 segmentations. この年からデータセットは昨年分に追加する形式に。 Segmentation が taster から通常タスクに。 2010 Train/val:10,103 images, 23,374 ROI annotated objects, 4,203 segmentations. Action Classification taster 追加 ILSVRCはじまった年。 2011 Train/val :11,530 images, 27,450 ROI annotated objects, 5,034 segmentations. Action Classification taster は10 クラス+ “other”へ拡張. 2012 Train/val:11,530 images, 27,450 ROI annotated objects, 6,929 segmentations. classification, detection, person layoutのデータセットは VOC2011から変化なし (segmentationは増加) 33 参考: PASCAL VOC データセットの変化(公式サイトより抜粋)。 *2007から20クラスとなり、2012は2008からのデータをすべて含むため 2007+2012で使⽤されることが多い
  33. 3. Results and Analysis ‒ scratch with PASCAL VOC COCO

    のデータ数を変化させる実験から考えると学習データ数は⼗分にあるといえそうで、 pre-trainingの効果はなさそう(?)。 ➤ 実際には pre-training ありモデルに追いつかない結果に。 原因として クラス数/インスタンス数が考えられる(?) • クラス数 • COCO:80 • VOC:20 • インスタンス数 • COCO:7 • VOC:2.3 34 82.7 77.6 PASCAL VOCに対する結果
  34. 4. Discussion 論⽂では最後に “ImageNet pre-training” を “rethink”する問答が記述されて締められている 38 画像は論⽂中より引⽤

  35. 4. Discussion 1. Is ImageNet pre-training necessary? (もし⼗分なデータが有るのであれば、)いいえ。 実験により ImageNet

    は収束を早めるのには役⽴つがターゲットデータセットが⼩ さくない限り精度改善とならないことをこの論⽂で⽰した。 39
  36. 4. Discussion 2. Is ImageNet helpful? はい。 ImageNet pre-training は、CV

    の発展において重要なものだったと⾔える。 ⼤規模なデータセットが利⽤可能となる前の VOC しかない時から⼤きな精度改善を 可能とし、normalization 等の⼿法が無い条件下で最適化問題を打破し、 研究のサイクルを早めた。 現在も pre-trained モデルは⾃由に使⽤できることが多く pre-training を繰り返す 必要もなくこれからも CV の研究に役⽴つことは疑う余地もない。 40
  37. 4. Discussion 3. Do we need big data? はい。 しかし

    ʻpre-training + fine-tuningʼ パラダイムはスケールしないため、 汎⽤的な分類データセット等を集めるのはコストを考えると理想的ではなく、 ターゲットドメインのデータを集めていくのが望ましい。 41
  38. 4. Discussion 4. Shall we pursuit universal representations? はい。 universal

    representations の獲得は称賛に値する到達地点だと信じている。今回 の検証はこの到達地点を逸脱したことを意味するわけではなく、pre-trained feature を評価するには⼗分に注意すべきと述べたものである。 42
  39. Reference 1. R. Girshick, J. Donahue, T. Darrell, and J.

    Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014 2. R. Girshick. Fast R-CNN. In ICCV, 2015 3. S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In NIPS, 2015 4. K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, 2016 5. K. He, G. Gkioxari, P . Dolla ́r, and R. Girshick. Mask R-CNN. In ICCV, 2017 6. A. Kirillov, K. He, R. Girshick, C. Rother, and P . Dolla ́r. Panoptic Segmentation. In CVPR, 2019 7. J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li and L. Fei-Fei. ImageNet: A Large-Scale Hierarchical Image Database. In CVPR, 2009 43
  40. Reference 8. O. Russakovsky, J. Deng, H. Su, J. Krause,

    S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, A. C. Berg, and L. Fei-Fei. ImageNet Large Scale Visual Recognition Challenge. IJCV, 2015 9. X. Glorot and Y. Bengio. Understanding the difficulty of training deep feedforward neural networks. In AISTATS, 2010 10. K. He, X. Zhang, S. Ren, and J. Sun. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In ICCV, 2015 11. S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In ICML, 2015 12. J. L. Ba, J. R. Kiros, and G. E. Hinton. Layer normalization. arXiv:1607.06450, 2016 13. D. Ulyanov, A. Vedaldi, and V. Lempitsky. Instance normalization: The missing ingredient for fast stylization. arXiv:1607.08022, 2016 14. Y. Wu and K. He. Group normalization. In ECCV, 2018 15. R. Girshick, I. Radosavovic, G. Gkioxari, P . Dolla ́r, and K. He. Detectron. https://github.com/facebookresearch/detectron, 2018 44