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
10
畳み込みニューラルネットワークによる画像分類について
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
5
河川流計測における画像解析技術の実用化
masato_miwada
1
8
河川流計測における画像解析技術の実用化
masato_miwada
0
6
偏りのある時系列データの分類について
masato_miwada
0
8
慣性センサログの効果的な可視化と分類手法について
masato_miwada
0
4
t-SNE(t分布型確率的近傍埋め込み法)による高次元データの可視化について
masato_miwada
0
10
Other Decks in Technology
See All in Technology
【若手エンジニア応援LT会】AWSで繋がり、共に成長! ~コミュニティ活動と新人教育への挑戦~
kazushi_ohata
0
180
Aurora_BlueGreenDeploymentsやってみた
tsukasa_ishimaru
1
120
Commitment vs Harrisonism - Keynote for Scrum Niseko 2024
miholovesq
6
1.1k
Amazon_CloudWatch_ログ異常検出_導入ガイド
tsujiba
4
1.6k
신뢰할 수 있는 AI 검색 엔진을 만들기 위한 Liner의 여정
huffon
0
340
日経電子版におけるリアルタイムレコメンドシステム開発の事例紹介/nikkei-realtime-recommender-system
yng87
1
500
AWSコンテナ本出版から3年経った今、もし改めて執筆し直すなら / If I revise our container book
iselegant
15
4k
Fargateを使った研修の話
takesection
0
120
「 SharePoint 難しい」ってよく聞くけど、そんなに言うなら8歳の息子に試してもらった
taichinakamura
1
620
visionOSでの空間表現実装とImmersive Video表示について / ai-immersive-visionos
cyberagentdevelopers
PRO
1
110
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.6k
マネジメント視点でのre:Invent参加 ~もしCEOがre:Inventに行ったら~
kojiasai
0
470
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
136
6.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
107
49k
For a Future-Friendly Web
brad_frost
175
9.4k
Faster Mobile Websites
deanohume
304
30k
Music & Morning Musume
bryan
46
6.1k
Rails Girls Zürich Keynote
gr2m
93
13k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Navigating Team Friction
lara
183
14k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
290
The Language of Interfaces
destraynor
154
24k
We Have a Design System, Now What?
morganepeng
50
7.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
46
2.1k
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