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
畳み込みニューラルネットワークによる画像分類について
Search
Masato MIWADA
October 19, 2024
Technology
0
11
畳み込みニューラルネットワークによる画像分類について
About image classification using convolutional neural networks
Masato MIWADA
October 19, 2024
Tweet
Share
More Decks by Masato MIWADA
See All by Masato MIWADA
画像による脳腫瘍の検出
masato_miwada
0
7
河川流計測における画像解析技術の実用化
masato_miwada
1
12
河川流計測における画像解析技術の実用化
masato_miwada
0
8
偏りのある時系列データの分類について
masato_miwada
0
11
慣性センサログの効果的な可視化と分類手法について
masato_miwada
0
6
t-SNE(t分布型確率的近傍埋め込み法)による高次元データの可視化について
masato_miwada
0
14
Other Decks in Technology
See All in Technology
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
1
110
SRE×AIOpsを始めよう!GuardDutyによるお手軽脅威検出
amixedcolor
0
130
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
160
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
190
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
120
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
9
1k
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
610
いざ、BSC討伐の旅
nikinusu
2
780
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
RailsConf 2023
tenderlove
29
900
The Cult of Friendly URLs
andyhume
78
6k
Typedesign – Prime Four
hannesfritz
40
2.4k
A designer walks into a library…
pauljervisheath
204
24k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
For a Future-Friendly Web
brad_frost
175
9.4k
Unsuck your backbone
ammeep
668
57k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Transcript
日本絵画に描かれた人物の 顔分類に機械学習で挑戦!! (ミワダ マサト) 三和田 将人
成果物について 学習期間:3日 試作品(精度が出るまで):10日 (13日) 現在の成績まで:10日(23日) 日本画に描かれた人物を複数クラスに分類する学習器(モデル)を深層学習で作成 正答率:Cross
Validation(CV) = 80.8%(Ensambled)、スコア:Leader Board (LB) = 0.8830 コンペの成績 順位 2位(34人中) 正答率(ACC): 77.5% コンペの成績:7 / 30クラス 順位 11位/34人 (上位4割以内)
成果物の作成について
データセットについて 画像データ:256x256, 24bit (学習データ:4,238枚、試験データ:1,060枚) • 画像の枚数が少ない(一般に分類一つあたり、最低、1,000枚は必要) • 全体的に男性の画像が多いなど、分類に偏りがある • 「女性×武士」は1枚しかない
• 見分けのつかない画像もある 出典:情報・システム研究機構 データサイエンス共同利用基盤施設 人文学オープン データ共同利用センター『顔コレデータセット』, DOI:10.20676/00000353.
データセットについて 画像データ:256x256, 24bit (学習データ:4,238枚、試験データ:1,060枚) • 画像の枚数が少ない(一般に分類一つあたり、最低、1,000枚は必要) • 全体的に男性の画像が多いなど、分類に偏りがある • 「女性×武士」は1枚しかない
• 男性×貴族と男性×武士の違いで見分けつかないものがある 出典:情報・システム研究機構 データサイエンス共同利用基盤施設 人文学オープン データ共同利用センター『顔コレデータセット』, DOI:10.20676/00000353. 男性×貴族 男性×武士
開発環境 ソフトウェア • Python 3.7.x • Tensorflow 2.x (-DirectML, -Metal)
• matplot lib 3.5.x • numpy 1.21.x • Pandas 2.0.x • Scikit-learn 1.4 アーキテクチャ:事前学習済みモデル(ImageNet) • mobile-net • DenseNet121 • VGG19 ハードウェア ⚫ Google Colab(無課金、T4GPU)× 3 (Linux) ⚫ Lenovo 「IdeaPad Flex 5 14ALC7 (2022年製)」 (Windows11 HOME) 演算装置:AMD Ryzen 7 5700U with Radeon Graphics 1.80 GHz • Frequency ( Base:1.8GHz, Max 4.3GHz ) • Cores : 8, Threads : 16, Cache : 4MB L2 / 8MB L3 ⚫ MacBook Air M1 2020 演算装置:Apple M1チップ • Frequency:3.2GHz • CPU Cores:8, GPU Cores:7
解析の流れ ⚫ 学習期間:3日 ⚫ 試作品(精度が出るまで):10日 (13日) ⚫ 現在の成績まで:10日(23日) 計算条件 ⚫
Epoch :50(Early Stopping) ⚫ ミニバッチサイズ : 50枚 ⚫ 最適化手法 : Adam(学習率 = 0.001) ⚫ データ拡張 : 水平反転、回転、拡縮 ⚫ 交差検証 : 9 回(層化K-分割交差検証)
畳み込みニューラルネットワーク(CNN)に ついて 東京大学 数理・情報教育研究センター, 二反田篤史, , 「3-4 深層学習の基礎と展望」, http://www.mi.u-tokyo.ac.jp/pdf/3-4_dl_basic_and_future.pdf, 2021
から
畳み込みニューラルネットワーク(CNN)に ついて 東京大学 数理・情報教育研究センター, 二反田篤史, , 「3-4 深層学習の基礎と展望」, http://www.mi.u-tokyo.ac.jp/pdf/3-4_dl_basic_and_future.pdf, 2021
から • ディープラーニングとは「深いニューラルネットワークでの最小二乗法」である (東京大学 松尾教授) • ディープラーニングとは「非線形問題における最適化」である。 • CNNとは、学習中に画像にフィルタリング処理に加え、特徴量を自動的に検出する ディープラーニングの一手法である。
心掛けたこと ⚫ 泥臭くても、「一歩、一歩」と確実に進めていく!! ⚫ 解答(過去の同じコンペの記事)をすぐに見ない!! ⚫ 理屈があっているなら、自分が選んだツールで結果を出す!! ⚫ 無課金で勝つ!!(与えられた環境を十分に活かす練習) 当初はラベルデータ(CSVファイル)からExcelでバッチファイルを作成し
て、学習用画像を各フォルダに振り分けデータセットを作成していた。 → 現在ではPythonでデータセットの作成可能。
苦労、実践したこと 開始時期 : CNNとはなんぞや? & なんでディープラーニングが良いのか? 実装時期 1. GPUメモリにデータが乗り切らず、精度がでない (クリア後、試作段階が完成)
→ ミニバッチでデータを分割し学習させる(TensorflowのimageDataGenerator型) 2. データ数が足りない。 → データ拡張(Data Augmentation:DA)を適用 3. 一回学習させた程度では、十分な精度を得られない。 → 交差検証(Cross Validation:CV)を導入 4. データに分布の偏りがある。 → CVの層化K-分割交差検証を用いる 5. 単体のモデルだけでは、どうしても6位までしかいけない → 複数のモデルを作成して、アンサンブル(多数決)をとる 正答率(ACC): 77.5%、LB:0.7764 コンペの成績:7 / 30クラス 順位 11位/34人 (上位4割以内)
苦労、実践したこと 開始時期 : CNNとはなんぞや? & なんでディープラーニングが良いのか? 実装時期 1. GPUメモリにデータが乗り切らず、精度がでない (クリア後、試作段階が完成)
→ ミニバッチでデータを分割し学習させる(TensorflowのimageDataGenerator型) 2. データ数が足りない。 → データ拡張(Data Augmentation:DA)を適用 3. 一回学習させた程度では、十分な精度を得られない。 → 交差検証(Cross Validation:CV)を導入 4. データに分布の偏りがある。 → CVの層化K-分割交差検証を用いる 5. 単体のモデルだけでは、どうしても6位までしかいけない → 複数のモデルを作成して、アンサンブル(多数決)をとる 正答率(CV): 80.8%、LB:0.8688 コンペの成績:4 / 30クラス 順位 6位/34人 (上位2割以内)
苦労、実践したこと 開始時期 : CNNとはなんぞや? & なんでディープラーニングが良いのか? 実装時期 1. GPUメモリにデータが乗り切らず、精度がでない (クリア後、試作段階が完成)
→ ミニバッチでデータを分割し学習させる(TensorflowのimageDataGenerator型) 2. データ数が足りない。 → データ拡張(Data Augmentation:DA)を適用 3. 一回学習させた程度では、十分な精度を得られない。 → 交差検証(Cross Validation:CV)を導入 4. データに分布の偏りがある。 → CVの層化K-分割交差検証を用いる 5. 単体のモデルだけでは、どうしても6位までしかいけない → 複数のモデルを作成して、アンサンブル(多数決)をとる 正答率(CV): 80.8%、LB:0.8830 コンペの成績:2 / 30クラス 順位 2位/34人 (上位1割以内)
モデル毎の損失関数の値と正答率の推移 Loss Accuracy mobile-net CV = 80.8% Time = 2hour
Loss Accuracy DenseNet121 CV =78.4% Time = 4.7hour Loss Accuracy VGG19 CV =76.0% Time = 10hour
今回の振返りと今後について ⚫ 結果を出したので過去のコンペ記事を解禁すると上位者は、「性別」と 「階級」で分けて学習器をそれぞれ複数作成し、2段階でアンサンブル をしていたようだった。 → 当時のLBは0.9000ポイント以降が上位をひしめき合っていたので、 自分の成績では3位以内に入れなかっただろう。 ⚫ 今回でDNNの一手法とツールの使い方がわかったので、他分野(信号
データなどの時系列分析やテキスト分析)にも広げたい。 ⚫ 一方で、これまで習得したテーブルデータと画像の機械学習について 複雑な課題に取り組みレベルを上げるとともに、直接的に企業へ売り 込める作品を製作していきたい。
売込みポイント ⚫ 新しい技術や概念を習得できる能力 大学院で培われた、技術開発の経験 ⚫ とにかく、早く、試作品を作成できる能力 公務員時代に培われた、手堅く進めて個々を積み上げる手法 (古い意味でのハック:Hack) ⚫ ざっくりと大枠を理解し、説明できる能力
学生時代からの心掛け ⚫ 仮説と検証を積み重ねる能力 これまでの人生で培ってきたもの
ご清聴ありがとうございました
参考にした情報源 公式情報 Tensorflow公式リファレンス(日、英) ・・・ https://www.tensorflow.org/ MicroSoft Learn(英) ・・・
https://learn.microsoft.com/en-us/windows/ai/directml/gpu-tensorflow-plugin Apple Developper(英) ・・・ https://developer.apple.com/metal/tensorflow-plugin/ ブログなど Qiita(日) ・・・ https://qiita.com/ teratail(日) ・・・ https://teratail.com/ Stack Overflow(日、英) ・・・ https://stackoverflow.com/ Kaggle(英) ・・・ https://www.kaggle.com/ Analytics Vidhya(英) ・・・ https://www.analyticsvidhya.com/blog/ Medium(英) ・・・ https://medium.com/ GitHub(日、英) ・・・ https://github.com