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
15
畳み込みニューラルネットワークによる画像分類について
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
9
河川流計測における画像解析技術の実用化
masato_miwada
1
15
河川流計測における画像解析技術の実用化
masato_miwada
0
8
偏りのある時系列データの分類について
masato_miwada
0
13
慣性センサログの効果的な可視化と分類手法について
masato_miwada
0
8
t-SNE(t分布型確率的近傍埋め込み法)による高次元データの可視化について
masato_miwada
0
26
Other Decks in Technology
See All in Technology
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
350
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
200
C++26 エラー性動作
faithandbrave
2
770
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
160
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
600
kargoの魅力について伝える
magisystem0408
0
210
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
270
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
290
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
170
生成AIのガバナンスの全体像と現実解
fnifni
1
190
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
3
310
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
We Have a Design System, Now What?
morganepeng
51
7.3k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Automating Front-end Workflow
addyosmani
1366
200k
Statistics for Hackers
jakevdp
796
220k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
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