Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
画像コンペティションで使えるPyTorchとそのライブラリの紹介
Search
tereka114
March 15, 2022
0
93
画像コンペティションで使える PyTorchとそのライブラリの紹介
CV勉強会第50回資料「画像コンペティションで使えるPyTorchとそのライブラリの紹介」
tereka114
March 15, 2022
Tweet
Share
More Decks by tereka114
See All by tereka114
トラブルがあったコンペに学ぶデータ分析
tereka114
2
1.1k
Harnessing Large Language Models for Training-free Video Anomaly Detection
tereka114
1
1.5k
KDD2023学会参加報告
tereka114
2
520
Prompting Large Language Models with Answer Heuristics for Knowledge-based Visual Question Answering
tereka114
0
350
Mobile-Former: Bridging MobileNet and Transformer
tereka114
0
1k
DER: Dynamically Expandable Representation for Class Incremental Learning
tereka114
0
170
Jupyter Notebookを納品した話
tereka114
0
360
Multi Scale Recognition with DAG-CNNs
tereka114
0
110
How to use scikit-image for data augmentation
tereka114
0
200
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
9.1k
Building Applications with DynamoDB
mza
91
6.1k
Six Lessons from altMBA
skipperchong
27
3.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.2k
The Language of Interfaces
destraynor
154
24k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
The Cult of Friendly URLs
andyhume
78
6.1k
Fireside Chat
paigeccino
34
3.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Building Your Own Lightsaber
phodgson
103
6.1k
BBQ
matthewcrist
85
9.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
87
Transcript
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 1
画像コンペティションで使える PyTorchとそのライブラリの紹介 Acroquest Technology株式会社 @tereka114
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)
Acroquest Technologyについて • Acro (先端を) + quest (探求する) テクノロジストチームとして ビジネス価値を⽣み出す
• 『Interface 12⽉号』好評発売中︕ - 当社社員がラズパイとDeepLearning を使った記事を書きました。 • 「働きがいのある会社(GPTW)」 ランキング1位を3回受賞 (従業員25〜99⼈部⾨) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 3
0. ⽬次 1. 画像コンペティションについて 2. PyTorchについて 3. PyTorchの便利ライブラリ 4. まとめ
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 4
0. なぜ、こんなことを話そうかと思ったか 1. 今年を振り返るとKaggleしかやっていなかった気がする。 2. そういえば、CV勉強会で画像コンペティション話した&話さ れたことがない(気がする)。 3. ということで今回はそんな話を中⼼にします。 Copyright
© Acroquest Technology Co., Ltd. All rights reserved. 5
画像コンペティションについて Copyright © Acroquest Technology Co., Ltd. All rights reserved.
6
1. 画像のコンペティション 1. Kaggleなどのデータサイエンスプラットフォームで数々のコ ンペティションが開催されている。 2. 画像に関連する内容では、Classification/Object Detection/Semantic Segmentationなどのコンペティショ ンが開催されている。
3. 精度を競うコンペティションが多い。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 7
1. なぜ、参加しているのか︖ 1. ⼀つの趣味 2. 他の⼈が参加するので楽しい。 3. 試⾏錯誤するのでタスクの解き⽅や精度が向上の仕⽅がわかる。 4. 実験する際のコツみたいなものがわかる。
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 8
1. コンペ例︓ IEEE's Signal Processing Society - Camera Model Identification(Classification)
1. 携帯電話(カメラ)で撮影して得られた画像の機種を当てるコ ンペティション 2. 撮影された写真かどうかが正しいのかの判断の⽀援に⽤いるこ とができる。 3. 複数モデルを⽤いたアンサンブルなどが多かった。 4. ⼤きい(4000x3000) のため画像処理の時間 を短縮するのが必須 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 9 ※アンサンブル:複数のモデルを 良い感じに組み合わせて単一のモデルより 精度の高い結果を出せる。
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
1. 画像のコンペティションに必要なこと 1. 単⼀モデルの精度を出すこと。 ① 複数モデルをアンサンブルするケースであっても、単⼀モ デルの精度が必要 2. 可能な限り、⾼速であること ①
⼤量のモデルを準備するケースが多いため、⾼速であるこ とが重要 3. 最新の⼿法を早く試せること。 ① ⼿詰まりになると実装が終わらず、眠れないことがある。 (GPUを寝かせる暇はない。) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 11
1. 画像コンペティションのDLライブラリに必要な要素 1. 実装・拡張が柔軟にできること ① 実装する上で複数誤差やネットワークのパスを簡単に変更 できる。 2. 学習済モデルを複数パタン選べて、使えること。 3.
最新⼿法、もしくは便利な実装が多いこと。 ① リポジトリで検索すると⼤体引っかかる。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 12
PyTorchについて Copyright © Acroquest Technology Co., Ltd. All rights reserved.
13
2. PyTorchとは 1. PyTorchはFacebookが開発したDeep Learningのフレームワ ーク ① 元はChainerからForkされている(らしい) 。 2.
⾮常に柔軟な構成が可能であり、書きやすい。 3. 研究者の多くが利⽤している。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 14
2. PyTorchのモデル例(MLP) Copyright © Acroquest Technology Co., Ltd. All rights
reserved. 15 レイヤーの 宣⾔ 計算の定義
2. PyTorchの性能 Copyright © Acroquest Technology Co., Ltd. All rights
reserved. 16 https://github.com/u39kun/deep-learning-benchmark 最も⾼速 最も⾼速
2. なぜ、PyTorchを使うのか 1. 最新の論⽂の実装を試しやすい。 ① 研究者の多くが使っており、最新の実装が存在することが多い。 ② 最新=精度・性能が向上された研究である可能性が⾼い。 1. 学習済モデルが多く提供され、他の⼿法と組み合わせたカスタ
マイズしやすい。 ① 学習済モデルをチューニングした⽅が精度が⾼い。 2. 便利なライブラリがある。(以降、紹介) Copyright © Acroquest Technology Co., Ltd. All rights reserved. 17
PyTorchの便利ライブラリ Copyright © Acroquest Technology Co., Ltd. All rights reserved.
18
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を⾼速で実現できるラ イブラリ ⼀回の実験で必要な時間に⼤きく関わる。
3-1. pretrained-models.pytorch 1. ImageNetの学習済モデルが提供されている。 • ⼀般的に既存モデルの重みから学習したほうが精度が⾼い。 2. 多種多様なモデルが準備されている。 3. ImageNet
+ αの実装を⾏うことが多い。 • 最終層のみの構造を変える。 • UnetのEncoderをpre-trainedの⼀部を使う。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 20
3-1. 準備されているニューラルネットワーク • PNASNet • NASNet • SE-ResNeXt • SE-ResNet
DenseNet • ResNeXt • ResNet • DualPathNet • MobileNet • VGG • AlexNet Copyright © Acroquest Technology Co., Ltd. All rights reserved. 21
3-1. pretrained-models.pytorchの使い⽅ 1. モデルを読み込んで使う。 • 学習済を学習済のまま利⽤する。出⼒が固定されるため、画像コンペテ ィションでは利⽤されない。 2. モデルの最終層を修正して使う。 •
最終層を新しいタスクの出⼒数に合わせて修正する。 • 学習済のモデルを初期値し、再学習を⾏う。 (いわゆる、Fine-Turning) 3. 途中の層までの出⼒を⽤いてネットワークを構築する。 • タスクが異なる場合や様々な事情でネットワーク構造を変更したい場合 に使う。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 22
3-1. モデルを読み込んで使う。 Copyright © Acroquest Technology Co., Ltd. All rights
reserved. 23 imagenetのモデルを 利⽤する。
3-1. モデルの最終層を修正して使う。 Copyright © Acroquest Technology Co., Ltd. All rights
reserved. 24 出⼒の⼀つ前の 全結合層を置き換える。
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
3-2. Albumentation Copyright © Acroquest Technology Co., Ltd. All rights
reserved. 26 1秒間で処理できる画像の枚数(高ければ高いほど良い)
3-2. Albumentation Copyright © Acroquest Technology Co., Ltd. All rights
reserved. 27 Import ⽂ Augmentationの実⾏
3-2. もう少し凝ったAlbumentation 1. Augmentationは⼀種類ではなく、複数かけることがある。 • ⽔平フリップ->回転->シフトなど 2. Albumentationでは複数のAugmentationを利⽤する際に便 利なクラスがある。 •
Compose︓複数のAugmentationをシーケンシャルに実⾏する。 • OneOf:複数種類のうち、どれかのみを実⾏する。 Copyright © Acroquest Technology Co., Ltd. All rights reserved. 28
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
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
まとめ Copyright © Acroquest Technology Co., Ltd. All rights reserved.
31
4. まとめ 1. PyTorchは画像コンペティションでおすすめのライブラリ • 最新の⼿法がリポジトリで公開されている。 • 柔軟性のある実装が可能。 • 多種多様な学習済モデルが公開されている。
2. おすすめライブラリが2つ • 学習済モデルがあるpretrained-models.pytorch • ⾼速なAugmentationを⾏うAlbumentation 3. Let’s PyTorch︕ Copyright © Acroquest Technology Co., Ltd. All rights reserved. 32
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 33
ぜひ、使ってみてください。 Infrastructures Evolution