Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 1 画像コンペティションで使える PyTorchとそのライブラリの紹介 Acroquest Technology株式会社 @tereka114
Slide 2
Slide 2 text
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 2 ⾃⼰紹介 1. ⼭本 ⼤輝(Hiroki Yamamoto) 2. Acroquest Technology 株式会社 3. Twitter:@tereka114 4. 画像処理・⾃然⾔語処理など 5. Kaggle Master ① Home Credit Default Risk 2nd ② IEEE’s Signal Processing 10th 6. Interface ① Interface 3⽉号 ラズパイにON!Google⼈⼯知能 (2016) ② Interface 12⽉号 ⼈⼯知能ウルトラ⼤百科(2017) ③ Interface 12⽉号 My⼈⼯知能の育てかた(2018)
Slide 3
Slide 3 text
Acroquest Technologyについて • Acro (先端を) + quest (探求する) テクノロジストチームとして ビジネス価値を⽣み出す • 『Interface 12⽉号』好評発売中︕ - 当社社員がラズパイとDeepLearning を使った記事を書きました。 • 「働きがいのある会社(GPTW)」 ランキング1位を3回受賞 (従業員25〜99⼈部⾨) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 3
Slide 4
Slide 4 text
0. ⽬次 1. 画像コンペティションについて 2. PyTorchについて 3. PyTorchの便利ライブラリ 4. まとめ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 4
Slide 5
Slide 5 text
0. なぜ、こんなことを話そうかと思ったか 1. 今年を振り返るとKaggleしかやっていなかった気がする。 2. そういえば、CV勉強会で画像コンペティション話した&話さ れたことがない(気がする)。 3. ということで今回はそんな話を中⼼にします。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 5
Slide 6
Slide 6 text
画像コンペティションについて Copyright © Acroquest Technology Co., Ltd. All rights reserved. 6
Slide 7
Slide 7 text
1. 画像のコンペティション 1. Kaggleなどのデータサイエンスプラットフォームで数々のコ ンペティションが開催されている。 2. 画像に関連する内容では、Classification/Object Detection/Semantic Segmentationなどのコンペティショ ンが開催されている。 3. 精度を競うコンペティションが多い。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 7
Slide 8
Slide 8 text
1. なぜ、参加しているのか︖ 1. ⼀つの趣味 2. 他の⼈が参加するので楽しい。 3. 試⾏錯誤するのでタスクの解き⽅や精度が向上の仕⽅がわかる。 4. 実験する際のコツみたいなものがわかる。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 8
Slide 9
Slide 9 text
1. コンペ例︓ IEEE's Signal Processing Society - Camera Model Identification(Classification) 1. 携帯電話(カメラ)で撮影して得られた画像の機種を当てるコ ンペティション 2. 撮影された写真かどうかが正しいのかの判断の⽀援に⽤いるこ とができる。 3. 複数モデルを⽤いたアンサンブルなどが多かった。 4. ⼤きい(4000x3000) のため画像処理の時間 を短縮するのが必須 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 9 ※アンサンブル:複数のモデルを 良い感じに組み合わせて単一のモデルより 精度の高い結果を出せる。
Slide 10
Slide 10 text
1. コンペ例︓ TGS Salt Identification Challenge(Segmentation) 1. 地層の表⾯画像から塩を発⾒するコンペティション 2. これも精度の⾼い複数のモデルが組み合わさり、最新研究を含 め数々の実装を⽤いられていた。 ① 例︓SCSE Block「Concurrent Spatial and Channel ‘Squeeze & Excitation’ in Fully Convolutional Networks」 3. 学習済のモデルを使う 参加者が多い。 4. アンサンブルも多い。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 10
Slide 11
Slide 11 text
1. 画像のコンペティションに必要なこと 1. 単⼀モデルの精度を出すこと。 ① 複数モデルをアンサンブルするケースであっても、単⼀モ デルの精度が必要 2. 可能な限り、⾼速であること ① ⼤量のモデルを準備するケースが多いため、⾼速であるこ とが重要 3. 最新の⼿法を早く試せること。 ① ⼿詰まりになると実装が終わらず、眠れないことがある。 (GPUを寝かせる暇はない。) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 11
Slide 12
Slide 12 text
1. 画像コンペティションのDLライブラリに必要な要素 1. 実装・拡張が柔軟にできること ① 実装する上で複数誤差やネットワークのパスを簡単に変更 できる。 2. 学習済モデルを複数パタン選べて、使えること。 3. 最新⼿法、もしくは便利な実装が多いこと。 ① リポジトリで検索すると⼤体引っかかる。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 12
Slide 13
Slide 13 text
PyTorchについて Copyright © Acroquest Technology Co., Ltd. All rights reserved. 13
Slide 14
Slide 14 text
2. PyTorchとは 1. PyTorchはFacebookが開発したDeep Learningのフレームワ ーク ① 元はChainerからForkされている(らしい) 。 2. ⾮常に柔軟な構成が可能であり、書きやすい。 3. 研究者の多くが利⽤している。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 14
Slide 15
Slide 15 text
2. PyTorchのモデル例(MLP) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 15 レイヤーの 宣⾔ 計算の定義
Slide 16
Slide 16 text
2. PyTorchの性能 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 16 https://github.com/u39kun/deep-learning-benchmark 最も⾼速 最も⾼速
Slide 17
Slide 17 text
2. なぜ、PyTorchを使うのか 1. 最新の論⽂の実装を試しやすい。 ① 研究者の多くが使っており、最新の実装が存在することが多い。 ② 最新=精度・性能が向上された研究である可能性が⾼い。 1. 学習済モデルが多く提供され、他の⼿法と組み合わせたカスタ マイズしやすい。 ① 学習済モデルをチューニングした⽅が精度が⾼い。 2. 便利なライブラリがある。(以降、紹介) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 17
Slide 18
Slide 18 text
PyTorchの便利ライブラリ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 18
Slide 19
Slide 19 text
3. PyTorchの便利なライブラリ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 19 No. ライブラリ名 URL 説明 1 pretrained- models.pytorch https://github. com/Cadene/pr etrained- models.pytorch 学習済モデルが豊富なリポジトリ 学習されていない良いモデルよりも学習済モ デルによる少し前のモデルの初期値の⽅が精 度が⾼い。 2 Albumentation https://github. com/albu/albu mentations 画像のAugmentationを⾼速で実現できるラ イブラリ ⼀回の実験で必要な時間に⼤きく関わる。
Slide 20
Slide 20 text
3-1. pretrained-models.pytorch 1. ImageNetの学習済モデルが提供されている。 • ⼀般的に既存モデルの重みから学習したほうが精度が⾼い。 2. 多種多様なモデルが準備されている。 3. ImageNet + αの実装を⾏うことが多い。 • 最終層のみの構造を変える。 • UnetのEncoderをpre-trainedの⼀部を使う。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 20
Slide 21
Slide 21 text
3-1. 準備されているニューラルネットワーク • PNASNet • NASNet • SE-ResNeXt • SE-ResNet DenseNet • ResNeXt • ResNet • DualPathNet • MobileNet • VGG • AlexNet Copyright © Acroquest Technology Co., Ltd. All rights reserved. 21
Slide 22
Slide 22 text
3-1. pretrained-models.pytorchの使い⽅ 1. モデルを読み込んで使う。 • 学習済を学習済のまま利⽤する。出⼒が固定されるため、画像コンペテ ィションでは利⽤されない。 2. モデルの最終層を修正して使う。 • 最終層を新しいタスクの出⼒数に合わせて修正する。 • 学習済のモデルを初期値し、再学習を⾏う。 (いわゆる、Fine-Turning) 3. 途中の層までの出⼒を⽤いてネットワークを構築する。 • タスクが異なる場合や様々な事情でネットワーク構造を変更したい場合 に使う。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 22
Slide 23
Slide 23 text
3-1. モデルを読み込んで使う。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 23 imagenetのモデルを 利⽤する。
Slide 24
Slide 24 text
3-1. モデルの最終層を修正して使う。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 24 出⼒の⼀つ前の 全結合層を置き換える。
Slide 25
Slide 25 text
3-2. Albumentation 1. ⾼速なデータ拡張(Augmentation)ライブラリ • OpenCVを最適に使った⽤いたライブラリ 2. Augmentationは画像処理で⼀般的に利⽤されるテクニック。 • 学習時にReal Timeに適⽤する⽅法 • 評価時に複数枚Augmentationしたのも含め1枚として、評価する。 (=Test Time Data Augmentation) 3. Augmentationは分類だけではなく、 Object DetectionやSegmentationにも対応している。 4. PyTorchだけでなく、他のライブラリ(TF/Chainer)などに も組み込める。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 25
Slide 26
Slide 26 text
3-2. Albumentation Copyright © Acroquest Technology Co., Ltd. All rights reserved. 26 1秒間で処理できる画像の枚数(高ければ高いほど良い)
Slide 27
Slide 27 text
3-2. Albumentation Copyright © Acroquest Technology Co., Ltd. All rights reserved. 27 Import ⽂ Augmentationの実⾏
Slide 28
Slide 28 text
3-2. もう少し凝ったAlbumentation 1. Augmentationは⼀種類ではなく、複数かけることがある。 • ⽔平フリップ->回転->シフトなど 2. Albumentationでは複数のAugmentationを利⽤する際に便 利なクラスがある。 • Compose︓複数のAugmentationをシーケンシャルに実⾏する。 • OneOf:複数種類のうち、どれかのみを実⾏する。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 28
Slide 29
Slide 29 text
3-2. もう少し凝ったAlbumentation Copyright © Acroquest Technology Co., Ltd. All rights reserved. 29 Import ⽂ Composeで複数の Augmentationを実⾏する。 OneOfを使って複数種類のブラ ーのうち⼀つを使う。 ※結果は毎回変わります C A 2-39 9 3 . 9 - 9 - 3 . 9, . 9 - - -, C A A
Slide 30
Slide 30 text
3-2. もう少し凝ったAlbumentation(テキスト説明) 1. Composeを0.5の確率で適⽤する(以下が内容) 2. ⽔平フリップを0.5の確率で適⽤する。 3. OneOfでメディアン、モーションブラー、ブラーのうちどれか を0.2の確率で適⽤する。 ① ただし、モーションブラーは0.2、また、メディアンブラーとブラーは 0.1の確率で実⾏する。 4. スケール、画像シフト、回転を0.2の確率で適⽤する。 5. OneOfで、コントラストや輝度の変化のどちらかを0.3の確率 で適⽤する。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 30
Slide 31
Slide 31 text
まとめ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 31
Slide 32
Slide 32 text
4. まとめ 1. PyTorchは画像コンペティションでおすすめのライブラリ • 最新の⼿法がリポジトリで公開されている。 • 柔軟性のある実装が可能。 • 多種多様な学習済モデルが公開されている。 2. おすすめライブラリが2つ • 学習済モデルがあるpretrained-models.pytorch • ⾼速なAugmentationを⾏うAlbumentation 3. Let’s PyTorch︕ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 32
Slide 33
Slide 33 text
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 33 ぜひ、使ってみてください。 Infrastructures Evolution