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
86
画像コンペティションで使える PyTorchとそのライブラリの紹介
CV勉強会第50回資料「画像コンペティションで使えるPyTorchとそのライブラリの紹介」
tereka114
March 15, 2022
Tweet
Share
More Decks by tereka114
See All by tereka114
トラブルがあったコンペに学ぶデータ分析
tereka114
2
800
Harnessing Large Language Models for Training-free Video Anomaly Detection
tereka114
1
1.4k
KDD2023学会参加報告
tereka114
2
490
Prompting Large Language Models with Answer Heuristics for Knowledge-based Visual Question Answering
tereka114
0
340
Mobile-Former: Bridging MobileNet and Transformer
tereka114
0
1k
DER: Dynamically Expandable Representation for Class Incremental Learning
tereka114
0
150
Jupyter Notebookを納品した話
tereka114
0
340
Multi Scale Recognition with DAG-CNNs
tereka114
0
100
How to use scikit-image for data augmentation
tereka114
0
190
Featured
See All Featured
Thoughts on Productivity
jonyablonski
67
4.3k
Being A Developer After 40
akosma
86
590k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Unsuck your backbone
ammeep
668
57k
What's new in Ruby 2.0
geeforr
343
31k
Six Lessons from altMBA
skipperchong
27
3.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Visualization
eitanlees
145
15k
The Language of Interfaces
destraynor
154
24k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
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