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