Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

【論文読み】Bag of Tricks for Image Classification with Convolutional Neural Networks

194 views

Published on

Bag of Tricks for Image Classification with Convolutional Neural Networksを読んだのでまとめました @AI 勉強会 in 京都 #2 

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

【論文読み】Bag of Tricks for Image Classification with Convolutional Neural Networks

  1. 1. tattaka
  2. 2. (自己紹介) tattaka Twitter:@tattaka_sun GitHub: https://github.com/tattaka 趣味:競プロ・Kaggle・料理・VTuber(見るだけ) 最近の興味: • Robot Vision • Semi/Weakly Supervised Semantic Segmentation (よく使うicon)
  3. 3. Agenda 1. Abstract 2. 論文の目的・貢献 3. ベースラインの設定 4. 効率的なトレーニング手順 5. ResNetモデル構造の調整 6. トレーニング方法の改良 7. 転移学習 8. まとめ
  4. 4. Abstract • 近年の画像分類の論文ではネットワーク構造の改良の他にData Augmentや最適化手法などのトレーニング手法の改良にも貢献して いるが,その多くは実装の詳細としてやソースコードのみで言及さ れている • この論文はそれらのテクニックをまとめてそれらを組み合わせるこ とで様々なCNNモデルの精度を改善する
  5. 5. Agenda 1. Abstract 2. 論文の目的・貢献 3. ベースラインの設定 4. 効率的なトレーニング手順 5. ResNetモデル構造の調整 6. トレーニング方法の改良 7. 転移学習 8. まとめ
  6. 6. 論文の目的・貢献 • これまで各々の実装の中でしか触れられていないようなテク ニックをサーベイ • これらのテクニックを用いることでSE-ResNext50などの他の 新しい手法よりも計算量的にわずかの変更で精度が改善される ことを示す(→CNN系Paper全体のベースラインの底上げを目 指す?)
  7. 7. Agenda 1. Abstract 2. 論文の目的・貢献 3. ベースラインの設定 4. 効率的なトレーニング手順 5. ResNetモデル構造の調整 6. トレーニング方法の改良 7. 転移学習 8. まとめ
  8. 8. ベースラインの設定(1/2) 前処理の手順として以下を行なった 1. 画像をランダムにサンプリングし,pixel値を[0, 255]にデコード (fp32) 2. 画像からアスペクト比[3/4, 4/3]、面積が[8%, 100%]の間でラ ンダムに切り抜いた領域を(224, 224)にリサイズ 3. 50%の確率で水平にFlip 4. [0.6, 1.4]の間の一様分布に基づいた係数で色相・明度・彩度を スケール 5. 正規分布N(0, 0.1)に基づいた係数でPCAノイズを追加 6. [123.68, 116.779, 103.939]を減算し[58.393, 57.12, 57.375]で除算して正規化
  9. 9. ベースラインの設定(2/2) • テスト時には画像の短辺をアスペクト比を維持したまま 256pixelにした後,中央(224, 224)を切り抜き • ネットワークの重みはXavierアルゴリズムで初期化 • OptimizerはSDG+Nesterov Accelerated Gradient • Nvidia V100 x 8で各GPUバッチサイズ32,120epoch訓練 • 初期 lr=0.1,30・60・90epochで1/10 結果(Inception-V3のinputは(299, 299)) →
  10. 10. Agenda 1. Abstract 2. 論文の目的・貢献 3. ベースラインの設定 4. 効率的なトレーニング手順 5. ResNetモデル構造の調整 6. トレーニング方法の改良 7. 転移学習 8. まとめ
  11. 11. 効率的なトレーニング手順(1/3) 近年,GPUの発達により数年前に比べて効率的なトレーニング手順は変 化している(低い数値精度(fp16)+大きなバッチサイズなど) 精度を落とさず効率化するには • 学習率の線形スケーリング • 学習率のウォームアップ • ResNetに置けるパラメータγの0初期化 • 重み減衰をバイアス項に適用しない • スカラーの乗算・更新用のパラメータのfp32コピー
  12. 12. 効率的なトレーニング手順(2/3) ResNetに置けるパラメータγの0初期化 学習可能なパラメータ𝛾を0で初期化することで 初期段階の訓練が容易になる input:𝑥 Output: 𝛾 𝑥 𝐴 + 𝑥 𝑏
  13. 13. 効率的なトレーニング手順(3/3) Baseline (BS=256 with fp32)とEfficient(BS=1024 with fp16)精度 と学習速度の結果 それぞれのテクニック別の効果内訳
  14. 14. Agenda 1. Abstract 2. 論文の目的・貢献 3. ベースラインの設定 4. 効率的なトレーニング手順 5. ResNetモデル構造の調整 6. トレーニング方法の改良 7. 転移学習 8. まとめ
  15. 15. ResNetモデル構造の調整(1/3) resnet-A resnet-B resnet-C resnet-D 標準的なresnet-Aから微調整されたresnet-B・C・Dについて検討する
  16. 16. ResNetモデル構造の調整(2/3) • resnet-B • ResNetのDown Sampling Blockを変更 • 2つ目のConv層でstrideを行うことで情報の損失を防ぐ • resnet-C • ResNetのinput stemを変更 • resnet-Aのinput stemでは7x7の畳み込みを用いているが計算コストが高い ため3x3の畳み込みに置き換える • resnet-D • ResNetのDown Sampling Blockを変更 • Path Bの1x1畳み込みで3/4の情報が失われるため事前に2x2のAverage Poolingを追加
  17. 17. ResNetモデル構造の調整(3/3) 結果として,計算時間を犠牲にせずに元のResNetから1%ほどの 精度向上!
  18. 18. Agenda 1. Abstract 2. 論文の目的・貢献 3. ベースラインの設定 4. 効率的なトレーニング手順 5. ResNetモデル構造の調整 6. トレーニング方法の改良 7. 転移学習 8. まとめ
  19. 19. トレーニング方法の改良(1/6) その他のモデル精度向上のためのテクニックについて • 学習率のcosine減衰 • ラベル平滑化 • 蒸留 • Mix Up
  20. 20. トレーニング方法の改良(2/6) 学習率のcosine減衰 下の図(a)のようにあるepochで学習率を除算するのではなく cosine関数にしたがって学習率を減衰させる (𝜂は初期学習率,𝑇, 𝑡は最大/現在の𝑒𝑝𝑜𝑐ℎ数)
  21. 21. トレーニング方法の改良(3/6) ラベル平滑化 通常,Image Classficationには正解ラベルをOne-Hot ベクトルとして表すが,正解ラベルの要素に小さい定数 𝜀を足し,それ以外に𝜀を引くことで理想的な出力が有限 に抑えられる(𝐾はベクトルの長さ)
  22. 22. トレーニング方法の改良(4/6) 蒸留 𝐿 = 𝐿1 + 𝐿2 𝐿1 = Loss p, softmax z 𝐿2 = 𝑇2 Loss softmax z 𝑇 , softmax r T (𝑇はsoftmaxの値をどれだけ滑らかにするかのHP)
  23. 23. トレーニング方法の改良(5/6) MixUp 学習時にバッチの中から 𝑥𝑖, 𝑦𝑖 , (𝑥𝑗, 𝑦𝑗)の2つの組をサンプリ ングして以下のように混ぜ合わせる(𝜆はベータ分布β(𝛼, 𝛼)から サンプリング) Saint Bernard [0.0, 1.0] Miniature Poodle [1.0, 0.0] [0.4, 0.6]
  24. 24. トレーニング方法の改良(6/6) 組み合わせることでTop-1・5ともに精度向上 別データセットでも有効!
  25. 25. Agenda 1. Abstract 2. 論文の目的・貢献 3. ベースラインの設定 4. 効率的なトレーニング手順 5. ResNetモデル構造の調整 6. トレーニング方法の改良 7. 転移学習 8. まとめ
  26. 26. 転移学習 物体検出やSemantic Segmentationでもこれまでのテクニック を使って学習したモデルが転移学習したら効果があるかどうか 検証した Faster-RCNN on Pascal VOC FCN on ADE20K
  27. 27. Agenda 1. Abstract 2. 論文の目的・貢献 3. ベースラインの設定 4. 効率的なトレーニング手順 5. ResNetモデル構造の調整 6. トレーニング方法の改良 7. 転移学習 8. まとめ
  28. 28. まとめ • 広く適用できるかつ簡易で計算量に関わらない変更で ResNet50・Inception-V3の精度を向上させることができた • それぞれのテクニック単体だけでなく組み合わせることで精度 が向上することも確認した • 転移学習においても良い結果を得ることができた

×