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
第2回ディープラーニング勉強会~画像処理編~
Search
EngineerCafe
February 05, 2022
Technology
0
73
第2回ディープラーニング勉強会~画像処理編~
EngineerCafe
February 05, 2022
Tweet
Share
More Decks by EngineerCafe
See All by EngineerCafe
git勉強会 (基本的なコマンドを覚えよう)
engineercafe
0
21
エンジニアのための論文ゆる輪読会 #1【 #ゆるりん 】
engineercafe
0
45
git勉強会(トラブルシューティングについて考えよう)
engineercafe
0
170
Unityの環境構築
engineercafe
0
22
git勉強会(ブランチを操作しよう)
engineercafe
0
200
GoogleツールでLINEBotを作ってみよう~GAS基礎編~
engineercafe
0
92
GoogleツールでLINEBotを作ってみよう~実践編~
engineercafe
0
120
アート×エンジニアMeeting(仮)#4 AI絵本 チーム1の絵本
engineercafe
0
43
アート×エンジニアMeeting(仮)#4 AI絵本 チーム2の絵本
engineercafe
0
41
Other Decks in Technology
See All in Technology
Efficient zero-copy networking using io_uring
ennael
PRO
0
330
AWS Lambdaで実現するスケーラブルで低コストなWebサービス構築/YAPC::Hakodate2024
fujiwara3
7
3k
【shownet.conf_】クロージングセッション
shownet
PRO
0
290
tenntennはなんでnewmoにnew社したの? - YAPC::Hakodate 2024
tenntenn
PRO
0
150
LINEヤフー新卒採用 コーディングテスト解説 アルゴリズム問題編
lycorp_recruit_jp
0
13k
AWSの初級者向けAI・ML資格『AWS Certified AI Practitioner』の傾向と対策/So You Want To Pass AWS Certified AI Practitioner
quiver
0
100
AWSへのNIST SP800-171管理策 導入に向けての整備/20240930 Mitsutoshi Matsuo
shift_evolve
0
200
エムスリーマネジメントチーム紹介資料 / Introduction of M3 Management Team
m3_engineering
0
270
スモールスタート、不都合な真実 〜 耳当たりの良い言葉に現場が振り回されないために/20240930-ssmjp-small-start
opelab
13
1.8k
O'Reilly Superstream: Building a RAG App to Chat with Your Data
pamelafox
0
120
HashHub会社案内「なぜ今、パブリックブロックチェーンに賭けるのか」
hashhub
3
75k
【shownet.conf_】ネットワークテストの最適化と利便性の追求
shownet
PRO
0
320
Featured
See All Featured
Design by the Numbers
sachag
278
19k
Fireside Chat
paigeccino
32
3k
Making the Leap to Tech Lead
cromwellryan
130
8.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
We Have a Design System, Now What?
morganepeng
49
7.1k
Facilitating Awesome Meetings
lara
49
6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
7
570
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
41
9.2k
YesSQL, Process and Tooling at Scale
rocio
167
14k
VelocityConf: Rendering Performance Case Studies
addyosmani
324
23k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
110
6.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Transcript
第2回ディープラーニング 勉強会 ~画像処理編~
⽬次 ▪ ⾃⼰紹介 ▪ 本の紹介 ▪ ResNetとは ▪ VGGとは ▪
画像分類のディープラーニングにおい て ▪ Loss関数とOptimizer ▪ VGGの実装 ▪ 汎化性能 ▪ 学習⽤データと評価⽤データ ▪ オンライン学習 ▪ 混同⾏列 ▪ バッチ学習の利⽤ ▪ 過学習 ▪ 最後にやってみて
⾃⼰紹介 ▪ 岩永拓也 ▪ 九州⼯業⼤学 情報⼯学部 4年 ▪ 藤原研究室 アルゴリズム
▪ 趣味︓ゲーム、読書、ボードゲーム ▪ エディタ︓Atom
本の紹介 ▪ 即戦⼒になるための ディープラーニング開発実践ハンズオン ▪ [著]井上⼤樹、佐藤峻 ▪ 価格︓3280円(税抜) ▪ リンク︓
https://gihyo.jp/book/2021/978-4-297-11942-3
ResNetとは ▪ 2015年のLISVRC(ImageNet Large Scale Visual Recognition Challenge)で1位に なったモデル。以前の優勝したモデルの層の数が約20なのに対し、ResNetは 152層
▪ ⼀般的に層が多くなるほど複雑になっていき、勾配消失問題などが出てくるた め学習が進まない。 →その解決法として残差ブロックを置くこと
ResNetとは ▪ 残差ブロック →図1のように2ルートにして、最適な出⼒と⼊⼒との残差のみで学習する。 https://melheaven.hatenadiary.jp/entry/deeplearning4を参照 Skip Connection
VGGとは ▪ 2014年のILSVRCでローカリゼーション(画像の中の物体の検出)の分野にて1位、 画像分類の分野で2位になったアルゴリズム。 ▪ 前年のILSVRCの画像分野で1位だったZFNetが8層に対し、VGGは最⼤で19層。
画像分類のディープラーニングにお いて ▪ メリット →⼯場での製品の検査などにおいて従来は前からのものに限定していたのに対し、 ディープラーニングを取り⼊れることで横からや斜めに撮影した映像や写真といっ た場合でも特徴を抽出し、検出が可能 ▪ デメリット →実装には莫⼤なコストがかかる。
例︓データの質と量の確保、学習にかかる時間
画像分類のディープラーニングにお いて ▪ アルゴリズムの選定⽅法 →ディープラーニングのアルゴリズムは毎年数多く発表されている。⾼い制度を持 つからといって、実際の事業などで有⽤とは限らない。 ⾼い処理速度を要するものにとっては、コンピュータのメモリが⼗分に搭載されて いなかったり、ハードウェアを容易に拡張できない場合があるため慎重に選ぶ必要 がある。
Loss関数とOptimizer 今まで受け取った画像を処理する⼿順のみ定義してた →学習を進めるためLoss関数(損失関数)とOptimizer(最適化関数)が必要になる ▪ Loss関数 →理想とする結果から現在の処理結果がどれだけの誤差があるか表現した関数 主に平均⼆乗誤差かクロスエントロピーに使⽤。
Loss関数とOptimizer ▪ 平均⼆乗誤差 →それぞれの出⼒の差を⼆乗し、平均を取ったもの。誤差を⼆乗して正にすること で相殺を防ぎ、学習を進められる https://atmarkit.itmedia.co.jp/ait/articles/2105/24/news019.htmlを参照
Loss関数とOptimizer ▪ クロスエントロピー →分類タスクで⽤いられ、分類時の確率が100%になるような出⼒になり、正解ク ラスの確率が1に近いほど良いことからLogを⽤いてその誤差を表現する。 ※今回はクロスエントロピーを⽤いる →「categorical_crossentropy」を使⽤
Loss関数とOptimizer ▪ Optimizer →Loss関数によって求めた誤差をどのような⽅針で修正するか表現する関数。 ディープラーニングでは⼤量の変数を取り扱うので、ただ求めた結果の通り修正し ているだけでは誤差が⼩さくなりません。 →⽅法としてLearningRate(学習率)で修正する量を⼩さくする。
Loss関数とOptimizer ▪ SGD(Stochastic Gradient Descent : 確率的勾配降下法) →Loss関数で求めた修正量に学習率をかけて修正するOptimizer。 学習率は1e-3~1e-5あたりの数が⽤いられる。 ▪
他にもMomentumSGD、AdamGrad、RMSprop、Adam、Eveなど数多くのOptimizerが 存在する。 ※参考リンク︓https://qiita.com/omiita/items/1735c1d048fe5f611f80 今回はMomentumSGDを使⽤。学習率は1e-2に学習率減衰は5e-4にモーメンタムは0.9
VGGの実装 参考論⽂︓ https://arxiv.org/abs/1409.1556 表1 モデル構造
VGGの実装 チャンネル カーネル 活性化関数 パディング ⼊⼒ Maxpooling 図 プログラムの説明
VGGの実装 出⼒ ドロップアウト率
汎化性能 ▪ 汎化性能 →1つのモデルがどれだけ幅広いデータに適応できるかを⽰すもの。⾼いほど学習 してないデータに対して適応できる可能性が⾼い。精度とはトレードオフの関係に あることが多く、どちらかを⾼くするかはプロジェクトの要件によって異なる。
学習⽤データと評価⽤データ ▪ ディープラーニングは⽤意したデータ全てをモデルに学習させるわけではなく、 その⼀部を使って学習したモデルの性能を学習の際に与えなかった残りのデー タで評価する。これにより、実際にそのモデルを使⽤する状況に近い状態で精 度評価を⾏える。この時学習⽤データと評価⽤データは7:3の⽐率でランダムに 分割することが多い。
オンライン学習 ▪ 本に載ってる検証環境 スペックが⾼すぎるので⽤意できません︕ ※Google Colaboratoryでできるようにプログラムを変更しました。
オンライン学習 ▪ Lossの状況
オンライン学習
混同⾏列 ▪ 評価を⾏う際表2が使⽤されます。これを混同⾏列(混合⾏列)という。 ▪ 混合⾏列はデータを分類したときに、その正解・不正解の数を整理しておくた めの表です。 Positive Negative Positive 89(True
Positive) 16(False Negative) Negative 4(False Positive) 91(True Negative) ⼊⼒ 出⼒ 表2 混同⾏列
混同⾏列 ▪ True Positive(真陽性,TP) →Positiveと予想し、実際Positive ⭕ ▪ False Positive(偽陽性,FP) →Positiveと予想し、実際Negative
❌ ▪ False Negative (偽陰性,FN) →Negativeと予想し、実際Positive ❌ ▪ True Negative(真陰性,TN) → Negativeと予想し、実際Negative ⭕ https://vector-ium.com/ds-confusion/を参照
混同⾏列 ▪ 正解率(Accuracy) →出⼒全体に対し、正しく判断できたものの割合 式︓ !"#!$ !"#!$#%"#%$ ▪ 再現率(Recall) →Positiveな⼊⼒に対し、出⼒もPositiveな割合
式︓ !" !"#%$
混同⾏列 ▪ 適合率(Precision) →Positiveな出⼒に対して⼊⼒もPositiveな割合 式︓ !" !"#%" ▪ F値 →再現率と適合率の調和平均
式︓ &×()*+,,×"-)*./.01 ()*+,,#"-)*./.01
バッチ学習の利⽤ ▪ バッチサイズ 64 ▪ エポック 30の場合(約40分かかる) ▪ Lossとval_loss
バッチ学習の利⽤ ▪ Accuracyとval_accuracy
過学習
過学習 検証⽤の誤差が上がってる
改善点 ▪ しっかりしたデータを使⽤ ▪ バッチサイズ、エポックの変更 ▪ SDGの変更 ▪ 画像処理の追加や削減 など…
最後にやってみて ▪ 今回は猫と⼈の識別を⾏いましたが、他にも⽝のデータが存在しますのでそれ も⽤いての識別 ▪ 先程のプログラムを改良して精度を上げる⼯夫 ▪ VGG以外のモデルの調査