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
CNNによる画像認識の基礎
Search
Masanori Suganuma
October 24, 2022
Research
3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CNNによる画像認識の基礎
Masanori Suganuma
October 24, 2022
More Decks by Masanori Suganuma
See All by Masanori Suganuma
Vision and Languageの現状と展望(GPT-4)
sgnm
4
3k
AutoML チュートリアル(HPOとNAS)
sgnm
9
12k
プレゼン資料作成で最低限気をつけるべきこと
sgnm
24
12k
Transformer / Vision and Languageの基礎
sgnm
3
2.2k
Other Decks in Research
See All in Research
Using our influence and power for patient safety
helenbevan
0
360
社内データ分析AIエージェントを できるだけ使いやすくする工夫
fufufukakaka
1
1.1k
Anthropic が提案する LLM の内部状態を自然言語で説明可能にした Natural Language Autoencoders / Natural Language Autoencoders Produce Unsupervised Explanations of LLM Activations
shunk031
0
130
typst の使い方:言語学を研究する学生のために
gitomochang
0
460
Language and AI
ayaniwa
0
120
Any-Optical-Model: A Universal Foundation Model for Optical Remote Sensing
satai
3
830
第66回コンピュータビジョン勉強会@関東 Epona: Autoregressive Diffusion World Model for Autonomous Driving
kentosasaki
0
630
LINEヤフー データサイエンス Meetup「三井物産コモディティ予測チャレンジ」の舞台裏-AlpacaTechパート
gamella
1
570
データセンター事業者を取り巻く近年の状況とその中での研究開発動向、テストベッドへの貢献の可能性
kikuzo
1
190
多様なデータを許容し学習し続ける模倣学習 / Advanced Imitation Learning for VLA
prinlab
0
220
Sequences of Logits Reveal the Low Rank Structure of Language Models
sansantech
PRO
1
260
Model Discovery and Graph Simulation: A Lightweight Gateway to Chaos Engineering
anatolykr
0
200
Featured
See All Featured
Paper Plane
katiecoart
PRO
1
51k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
390
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
590
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
580
Amusing Abliteration
ianozsvald
1
210
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
950
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
Transcript
CNNによる画像解析の基礎 2022.10.24 東北⼤学 菅沼 雅徳
• 2012年の画像認識タスクで深層学習が2位以下の従来⼿法に認識精度で圧勝 • その後も改良が続けられ,2016年時点で同タスク上では⼈間よりも⾼精度に 2 2012年:⼀般物体認識における激震 0 5 10 15
20 25 30 error rate 2010 2011 AlexNet 2012 2013 ZFNet VGG 2014 2015 GoogleNet 2016 SENet 2017 ResNet ImageNet Top 5 Error Rate year ImageNet Error Rate
3 深層学習以前に主流であった機械学習のアプローチ 事前知識に基づく 特徴量設計 ⼊⼒画像からの 特徴量抽出 抽出した特徴量を もとに識別 「りんご」を識別したい場合 •
りんごを表現する⼿がかり(特徴量)を設計する • 例えば,「⾊の⾚さ」,「物体の丸さ」など • 画像内のどこからその特徴量を抽出するのかを設計する • 抽出された特徴量をもとに「りんご」かどうかを識別 ⼀⾒すると容易そうにみえるが...
4 深層学習以前に主流であった機械学習のアプローチ 事前知識に基づく 特徴量設計 ⼊⼒画像からの 特徴量抽出 抽出した特徴量を もとに識別 クラス内の多様性 視点や照明条件の変化
遮蔽や背景領域の乱雑さ 様々な条件に対応しつつ,多種多様な⼀般物体に応⽤可能な 機械学習モデルの⼿動設計は⾮常に困難
5 深層学習の考え⽅ • 認識に有効な特徴量表現を⼤量のデータから直接獲得する • 認識の仕⽅・解き⽅ではなく,タスクの設計を⼈間がプログラムする ⼤量のデータ りんごの画像 りんごでない画像 学習
りんごとそれ以外 の果物を⾒分ける 規則性をみつける 識別
⼊⼒に対して適切な出⼒を出す関数 6 深層学習の基本概念 深層学習 深層学習 次の1⼿ 深層学習 画像 物体の名称(リンゴ) 盤⾯情報
⽂章 (A cat riding a skateboard)
7 深層学習とは多層ニューラルネットワークを⽤いた⽅法論 … 深層学習 物体の名称(リンゴ) 多層ニューラルネットワーク(以下の例では,画像→物体の確率に変換する関数)
8 よく⽤いられる多層ニューラルネットワーク例 … Fully-connected network Convolutional neural network (CNN) Transformer
Long-short term memory (LSTM)
畳み込みニューラルネットワーク(Convolutional Neural Network; CNN) • 畳み込み層,プーリング層,全結合層で主に構成 9 画像解析でよく⽤いられるのはCNN 畳み込み層 •
フィルタによって画像から特徴を抽出する操作 プーリング層 • 情報を集約する操作(結果として画像のサイズが⼩さくなることが多い)
10 What computers see 画素(pixel) RGBの3原⾊で1画素の⾊を表現する. • 例えば,RGB=(200,40,90)のように 1画素を表現する •
それぞれ⾚⾊,緑⾊,⻘⾊の強さを ⽰す 画像は画素(pixel)の集合で表現される • ⾊の濃淡値を表す数値(画素)が規則的に並んでいるだけ • iPhone8で撮影した画像は,36578304 = 4032×3024×3 個の数値が並んでいる
• 畳み込みは画像とフィルタ間で定義される積和計算 • 𝑢!,# = ∑ $%& '!() ∑ *%&
'"() 𝑥!+$,#+* ℎ$,* 11 畳み込み 9×9画素の⼊⼒画像 フィルタ 出⼒画像
• 畳み込みは画像とフィルタ間で定義される積和計算 • 𝑢&,& = ∑ $%& '!() ∑ *%&
'"() 𝑥&+$,&+* ℎ$,* = 𝑥&,& ∗ ℎ&,& + 𝑥&,) ∗ ℎ&,) + ⋯ + 𝑥.,. ∗ ℎ.,. = 21 ∗ −0.5 + 45 ∗ 0.3 + ⋯ + 15 ∗ (−1.3) 12 畳み込み 9×9画素の⼊⼒画像 フィルタ 出⼒画像
• 畳み込みは画像とフィルタ間で定義される積和計算 • 𝑢&,) = ∑ $%& '!() ∑ *%&
'"() 𝑥&+$,)+* ℎ$,* = 𝑥&,) ∗ ℎ&,& + 𝑥&,. ∗ ℎ&,) + ⋯ + 𝑥.,/ ∗ ℎ.,. = 45 ∗ −0.5 + 64 ∗ 0.3 + ⋯ + 56 ∗ (−1.3) 13 畳み込み 9×9画素の⼊⼒画像 フィルタ 出⼒画像
• 畳み込みは画像とフィルタ間で定義される積和計算 • 𝑢&,. = ∑ $%& '!() ∑ *%&
'"() 𝑥&+$,.+* ℎ$,* = 𝑥&,. ∗ ℎ&,& + 𝑥&,/ ∗ ℎ&,) + ⋯ + 𝑥.,0 ∗ ℎ.,. = 64 ∗ −0.5 + 45 ∗ 0.3 + ⋯ + 51 ∗ (−1.3) 14 畳み込み 9×9画素の⼊⼒画像 フィルタ 出⼒画像
• 畳み込みは画像とフィルタ間で定義される積和計算 • 𝑢1,1 = ∑ $%& '!() ∑ *%&
'"() 𝑥1+$,1+* ℎ$,* = 𝑥1,1 ∗ ℎ&,& + 𝑥1,2 ∗ ℎ&,) + ⋯ + 𝑥3,3 ∗ ℎ.,. = 4 ∗ −0.5 + 15 ∗ 0.3 + ⋯ + 63 ∗ (−1.3) 15 畳み込み 9×9画素の⼊⼒画像 フィルタ 出⼒画像
16 畳み込みの働き • フィルタがもつ濃淡パターンを画像から抽出する • さまざまなフィルタを適⽤することで,画像解析に有効な特徴を抽出可能 • 特定の形状や⾊を抽出することも可能 × ×
⽔平成分を抽出 垂直成分を抽出
• フィルタ適⽤後に画像サイズが変わらないようにするための措置 • ⼊⼒画像の上下左右端に「ふち」を⼈⼯的に付与してから,フィルタを適⽤ • ふちにはゼロを挿⼊するゼロパディングがよく使⽤される 17 パディング × =
• フィルタを適⽤する際に何画素ずつずらして適⽤するかの値 • ストライドの値𝑠によって,出⼒画像サイズが) 4 倍になる(⼩数点以下切り捨て) • 𝑠 = 2のとき,出⼒画像サイズは!
" になる 18 ストライド × =
• フィルタを適⽤する際に何画素ずつずらして適⽤するかの値 • ストライドの値𝑠によって,出⼒画像サイズが) 4 倍になる(⼩数点以下切り捨て) • 𝑠 = 2のとき,出⼒画像サイズは!
" になる 19 ストライド × =
• フィルタを適⽤する際に何画素ずつずらして適⽤するかの値 • ストライドの値𝑠によって,出⼒画像サイズが) 4 倍になる(⼩数点以下切り捨て) • 𝑠 = 2のとき,出⼒画像サイズは!
" になる 20 ストライド × =
複数のフィルタを並⾏して適⽤する • 下記は,RGBカラー画像に畳み込み層(𝑁種類のフィルタ有する)を適⽤する例 • 計3×𝑁枚のフィルタを適⽤し,𝑁枚の出⼒結果(特徴マップ)を得る 21 畳み込み層(Convolution layer) … …
× × × 𝐻 𝑊 3 𝑊! 𝐻! 𝑛 = 0 𝑛 = 1 𝑛 = 𝑁 𝑁 正規化 & 活性化関数 … … 𝑁 … … 3
各フィルタでは,各チャネルについて並⾏に畳み込みを実⾏し,演算結果を画素ごとに 全チャネルにわたって加算する • 結果として,各フィルタ群からは1枚の特徴マップ(出⼒結果)が得られる 22 畳み込み層(Convolution layer) … … …
… × × × 𝐻 𝑊 3 𝑊! 𝐻! 𝑛 = 0 𝑛 = 1 𝑛 = 𝑁 … 𝑁 正規化 & 活性化関数 … … … 𝑢!,#,9 = 5 :%& /() 5 $%& '!() 5 *%& '"() 𝑥!+$,#+*,: ℎ$,*,:,9 𝑥 𝑢!,#,$ ℎ%,&,',$ 𝐻 𝑊 3
⼀般化すると • ⼊⼒画像𝑀枚に対して,𝑁種類のフィルタを有する畳み込み層を適⽤すると,𝑀×𝑁枚の フィルタが適⽤され,𝑁枚の特徴マップが得られる • この𝑁のことをチャネル数と呼び,ユーザで設定する必要がある 23 畳み込み層(Convolution layer) …
… … … … … × × × 𝑀 𝐻 𝑊 𝑀 𝑊! 𝐻! 𝑛 = 0 𝑛 = 1 𝑛 = 𝑁 … 𝑁 正規化 & 活性化関数 … … … 𝑁
各フィルタでは,各チャネルについて並⾏に畳み込みを実⾏し,演算結果を画素ごとに 全チャネルにわたって加算する • 結果として,各フィルタ群からは1枚の特徴マップ(出⼒結果)が得られる 24 畳み込み層(Convolution layer) … … …
… … … × × × 𝑀 𝐻 𝑊 𝑀 𝑊! 𝐻! 𝑛 = 0 𝑛 = 1 𝑛 = 𝑁 … 𝑁 正規化 & 活性化関数 … … … 𝑢!,#,9 = 5 :%& >() 5 $%& '!() 5 *%& '"() 𝑥!+$,#+*,: ℎ$,*,:,9 𝑥 𝑢!,#,$ ℎ%,&,',$
• 現実データの多くが⾮線形性を有するため • ReLU関数が畳み込み処理後によく使⽤される • 𝑓 𝑥 = max(0, 𝑥)
• 画素ごとに適⽤ • 負の画素値をすべてゼロに変換 25 活性化関数(⾮線形性の導⼊) 0 𝑥 𝑓(𝑥) ReLU ※ 負の画素値は⿊⾊で表⽰,0以上の画素値は灰⾊〜⽩⾊で表⽰
• 画像内の局所領域の情報を集約する役⽬と解像度を下げる役⽬ • 特徴量の位置変化に対する不変性を確保 • max pooling, average poolingがよく使⽤される •
下記は2×2のフィルタをストライド2で適⽤した例 26 プーリング層 Max pooling Average pooling
畳み込みニューラルネットワーク(Convolutional Neural Network; CNN) • 複数の畳み込み層,プーリング層,全結合層で主に構成 27 CNNの構造 畳み込み層 •
フィルタ数を徐々に増やしていくことが多い(e.g. 32 → 64 → 128) プーリング層 • 画像サイズを1/2にしていくことが多い
階層的な特徴抽出が可能(エッジ→顔のパーツ→顔全体) 28 CNNの構造 引⽤ [H. Le+, Unsupervised Learning of Hierarchical
Representations with Convolutional Deep Belief Networks, 2011]
特徴マップを1次元ベクトルに変換する • よく使⽤される変換⽅法は下記の2通り • Flatten • (𝐻, 𝑊, 𝐶) →
(𝐻×𝑊×𝐶). 単純に各要素を⼀列に並べ替えるだけ. • Global average pooling • (𝐻, 𝑊, 𝐶) → (1,1, 𝐶) → (𝐶).空間情報全体の平均値をとることで圧縮. 29 全結合層 for 画像分類 Conv Pooling Conv Pooling Conv Fully connected リンゴである確率 ミカンである確率 バナナである確率 イチゴである確率
30 全結合層 for 画像分類 … • 各⼊⼒要素𝑥! と対応する重み𝑤! との積和計算 •
いわゆる標準的なニューラルネットワーク • 出⼒ノード数◦は分類したいクラス数と⼀致
Softmax関数で各クラスに属する確率表現に変換 • 各クラスらしさを0.0~1.0の数値で表現 31 出⼒は確率表現にする(画像分類の場合) 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑥!) = eC# ∑D eC$
… りんごである確率(=softmax(𝑥( )) みかんである確率(=softmax(𝑥) )) ばななである確率(=softmax(𝑥* )) いちごである確率(=softmax(𝑥+ )) 𝑥( 𝑥) 𝑥* 𝑥+ 最⼤値をもつノードのクラスを 最終的な予測結果とする
• 最終的な出⼒結果はフィルタと全結合層の重み𝒘𝒊 に依存する • 最初はランダムに重みの値を設定するため,でたらめな出⼒結果が得られる • そのため,正しい出⼒結果となるように,重み𝒘! の値を調整する • これをCNNの学習や最適化などと呼ぶ
32 CNNの学習 Conv Pooling Conv Pooling Conv Fully connected りんご 0.2 みかん 0.2 ばなな 0.1 いちご 0.5
• 正しい出⼒結果 = ⼈間が与えた正解ラベル • CNNの出⼒が正解ラベルと⼀致するように,重みを調整する • 具体的には,現在のNNの出⼒C 𝒚と正解ラベル𝒚との誤差を計算し,その誤差が ⼩さくなるように
𝒘𝒊 を調整する 33 CNNの学習 … F 𝑦( = 0.2 F 𝑦) = 0.2 F 𝑦* = 0.1 F 𝑦+ = 0.5 𝑥( 𝑥) 𝑥* 𝑥+ 𝑦( = 1.0 𝑦) = 0.0 𝑦* = 0.0 𝑦+ = 0.0 CNNの出⼒& 𝒚 正解ラベル𝒚 … この誤差を最⼩化したい
• 損失関数を⽤いて出⼒C 𝒚とラベル𝒚の誤差𝐿を定量的に算出する • 画像分類では,クロスエントロピー関数が使⽤される 34 損失関数(loss function) … F
𝑦( = 0.2 F 𝑦) = 0.2 F 𝑦* = 0.1 F 𝑦+ = 0.5 𝑥( 𝑥) 𝑥* 𝑥+ 𝑦( = 1.0 𝑦) = 0.0 𝑦* = 0.0 𝑦+ = 0.0 CNNの出⼒& 𝒚 正解ラベル𝒚 … 𝐿 = 𝑐𝑟𝑜𝑠𝑠 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 C 𝒚, 𝒚 = − 5 !%) N 𝑦OlogO 𝑦! 𝐿 = −(1.0 ∗ log 0.2 + 0.0 ∗ log 0.2 +0.0 ∗ log 0.1 + 0.0 ∗ log 0.5) = 0.69897
誤差𝐿に関する重み𝒘! の勾配情報をもとに更新 • 勾配: #$ #%! • 𝑤& を微増させたときに,誤差𝐿の値が増加する⽅向を⽰している =
𝑤& を勾配⽅向と逆に更新することで,誤差𝐿を減らせることが可能! = 𝑤& ← 𝑤& − #$ #%! 35 重みの調整⽅法(勾配降下法) 直感的な理解 • 誤差𝐿は,𝐿 = 𝑤)で表され,𝐿 = 0となる𝑤の値を 求めたいと仮定 • 誤差𝐿の𝑤に関する微分は,,- ,. = 2𝑤 となる • 右図のように,𝑤がどの位置にあろうと, 𝑤 ← 𝑤 − ,- ,. で更新すれば, 𝐿 → 0になることが わかる
各重みの勾配を計算する際に,⼊⼒に近い重みほど計算が⾯倒 • 深い⼊れ⼦構造になるため,微分の連鎖規則を何度も繰り返す必要がある • 7 𝒚 = 𝑓 𝑾'𝒛" =
𝑓 𝑾' 𝑓 𝑾"𝒛! = 𝑓 𝑾' 𝑓 𝑾"𝑓(𝑾!𝒛() 36 誤差逆伝播法(Back propagation) 7 𝒚 出⼒ 𝑾) 𝑾. 𝑾/ 𝒛( 𝒛) 𝒛$
3層⽬の𝑗番⽬の重み𝑊 / #!の損失𝐿に関する勾配 ^_ ^' % &# は, • #$
#)" #! = #$ # * +# < # * +# #)" #! = = 𝑦, − 𝑦, < # * +" # #)" # = = 𝑦, − 𝑦, < 𝑧" & 37 誤差逆伝播法(Back propagation) 7 𝒚 = 𝑾'𝒛" 出⼒ 𝑾) 𝑾. 𝑾/ 𝒛( 𝒛) 𝒛$ ※ F 𝑦# = 𝑊 * #!𝑧) ! 𝑧) ! 𝑊 * #! F 𝑦# 活性化関数の微分については省略
2層⽬の𝑗番⽬の重み𝑊 . #!の損失𝐿に関する勾配 ^_ ^' ' &# は, • #$
#)$ #! = #$ #-$ # < #-$ # #)$ #! = ∑. #$ # * +% < # * +% #-$ # < 𝑧! & = ∑. = 𝑦. − 𝑦. < 𝑓/(𝑧" ,) < 𝑊 ' ., < 𝑧! & 38 誤差逆伝播法(Back propagation) 7 𝒚 = 𝑾'𝒛" 出⼒ 𝑾) 𝑾. 𝑾/ 𝒛( 𝒛) 𝒛$ ※ 𝑧) # = 𝑊 ) #!𝑧( ! 𝑧( ! 𝑊 ) #! 𝑧) # F 𝑦/ = a # 𝑊 * /# 𝑧) #
𝑙層⽬の𝑗番⽬の重み𝑊 b #!の損失𝐿に関する勾配 ^_ ^' ( &# は, • #$
#) & #! = #$ #- & # < #-& # #) & #! = ∑. #$ #-&'( % < #-&'( % #- & # < 𝑧01! & 39 誤差逆伝播法(Back propagation) … 𝑾02! 𝒛0 𝒛01( 𝒛$ ※ 𝑧0 # = 𝑊 0 #!𝑧02( ! 𝑧0 ! 𝑊 0 #! 𝑧01( # …
40 誤差逆伝播法(Back propagation) … 𝑾02! 𝒛0 𝒛01( 𝒛$ 𝑧0 !
𝑊 0 #! 𝑧01( # ∆0 , ≡ #$ #- & # とおくと, … ここで #$ #- & # = ∑. #$ #-&'( % < #-&'( % #- & # に着⽬して, ∆0 ,= ∑. ∆02! . < #-&'( % #- & # つまり,上層の∆𝒍2𝟏 で∆𝒍 が求まる 同様に,∆02!, ∆02" …もそれらの上層から 求まり,最終的には出⼒層での #$ #- ) # が 陽に求まれば, 𝑙層での勾配 #$ #- & # が求まる 勾配計算必要な情報は出⼒層から⼊⼒層の⽅向に 伝搬される(順伝搬とは逆⽅向=誤差逆伝播法) 𝜕𝐿 𝜕𝑧 - # = 𝑧- # − 𝑦# ※ クロスエントロピーの場合
まとめると, 𝑙層⽬の𝑗番⽬の重み𝑊 b #!の損失𝐿に関する勾配 ^_ ^' ( &# は下記で求まる ^_
^' ( &# = ^_ ^d ( & T ^d ( & ^' ( &# = ∆b # T 𝑧b() ! 41 誤差逆伝播法(Back propagation) … 𝑾02! 𝒛0 𝒛01( 𝒛$ ※ 𝑧0 # = 𝑊 0 #!𝑧02( ! 𝑧0 ! 𝑊 0 #! 𝑧01( # … • ∆0 # は上層からの計算結果を利⽤ • ∆0 #を下層に伝搬させていくことで, 効率良く各層での勾配が計算可能
深層学習モデルの学習 = ⼤量の学習データ 𝐷 = { 𝒙) , 𝑦) ,
… , 𝒙f , 𝑦f } で 計算される損失関数の値を,ネットワークのパラメータ𝒘! について最⼩化 • 𝑤& ← 𝑤& − 𝛾 #$ #%! • 並列計算資源の有効活⽤と局所解リスク低減のために,少数サンプル(ミニバッチ)で 構成されるサンプル集合 𝐷5 = 𝒙!, 𝑦! , … , 𝒙5, 𝑦5 , (𝑀 ≪ 𝑁) を⽤いて,最適化する • 𝐿 = ! 5 ∑6∈8* 𝐿6 42 確率的勾配降下法(SGD) • ミニバッチを順番に𝐷!, 𝐷", … , となめていき,元の学習データすべてを⼀巡したら, 再度最初から順番になめていく,ということを繰り返す • 学習データを⼀巡することをエポック(epoch)と呼び,通常数⼗〜数百epochの学習を実施する
• 畳み込み処理後の特徴マップに対して正規化を⾏うことで,学習安定化 • バッチ正則化(Batch normalization)がよく使われる • ミニバッチ内のサンプルで算出した平均𝜇9 ,分散𝜎9 を⽤いて,下記のように正規化する •
̂ 𝑧!#g : = d#&) * (h) i) '+j + 𝛽g 43 学習の安定化のために:正規化 ※ 𝜇3 = ( 456 ∑!,#,' 𝑧!#3 ' 分散も同様に算出 𝑀: ミニバッチサイズ 𝐻, 𝑊: 画像の縦横サイズ
• 多層のCNNを学習させるためにはほぼ必須 • ⼊⼒と畳み込み結果の残差を学習対象にする • 残差学習を利⽤したモデルをResNet[1]と呼ぶ 44 学習の安定化のために:残差学習 conv layer
conv layer + Res-block conv layer Res-block, /2 Res-block Res-block, /2 image GAP+softmax [1] He+, Deep Residual Learning for Image Recognition, CVPR, 2016
画像 → カテゴリ • 画像分類 • 異常検知(画像単位) など 45 CNNの応⽤例
画像 → カテゴリ+𝜶 • 物体検出 • パーツ検出 など 画像 → 画像 • セグメンテーション • 深度推定 • 画像⽣成 など 粒度 Apple 物体検出 semantic segmentation 画像分類
• CNNを⽤いた⼯業製品などの画素単位での異常検知 • 実際の現場では,⼤量の異常画像が集まらないため,正常画像のみを⽤いて 「正常らしさ」をCNNでモデル化するアプローチが主流 46 CNNによる異常検知への応⽤ 異常度 異常サンプル 正常サンプル
CNN 異常画像 正常画像 出⼒結果 MVTec AD [Bergmann+, CVPRʼ19]より引⽤
強⼒な「正常らしさ」のモデル化⽅法[2] • ⼤規模⾃然画像データセット(ImageNet)で画像分類を解くCNNを通常通り学習 • 異常検知には学習済みのCNNの中間特徴マップを利⽤ • 各画素が「正常らしさ」を表現していると仮定 • 異常画像の各画素値と正常画像の画素値の距離を測り,しきい値以上なら異常と判定 •
⾮常にシンプルだが強⼒ 47 CNNによる異常検知 異常度 異常サンプル 正常サンプル CNN Pretrained CNN 学習 通常の画像分類 異常検知フェーズ [2] Reiss+, PANDA: Adapting Pretrained Features for Anomaly Detection and Segmentation, CVPR, 2021
48 異常検知結果例 ⼊⼒画像 モデルの出⼒ 異常画像 モデルの出⼒ 正常画像 [2] Reiss+, PANDA:
Adapting Pretrained Features for Anomaly Detection and Segmentation, CVPR, 2021
• 画像内に映っている物体を検出するタスク • 物体のカテゴリに加えて,物体が位置している場所もCNNで予測 • 画像分類+物体位置の推定 • 各物体のカテゴリと位置情報をラベルとして与える 49 CNNによる物体検出
50 CNNによる物体検出例
51 CNNによる物体検出例
画像内の各画素のカテゴリを推定 • 画素ごとの画像分類とみなせる • ラベリングコスト,計算コストが⾮常に⾼い 52 CNNによるセマンティックセグメンテーション https://ai.googleblog.com/2018/10/fluid-annotation-exploratory-machine.html CNNはencoder-decoder構造がよく使⽤される •
徐々に縮⼩→徐々に拡⼤していく Long+, Fully Convolutional Networks for Semantic Segmentation, CVPR, 2015
53 CNNによるセマンティックセグメンテーション例 ⼊⼒ 正解ラベル CNNの出⼒ L.-C. Chen+, Deeplab: Semantic Image
Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs. TPAMI, 2017
Transposed Convolution (Deconvolutionと呼ぶ論⽂もある) • 畳み込み層による画像の拡⼤ • 学習可能な画像の拡⼤ • 代替⽅法としては,バイリニア補間などが挙げられる(学習不要) 54
畳み込み層による画像の拡⼤ https://github.com/vdumoulin/conv_arithmetic#transposed-convolution-animations
clean画像とdistorted画像のペアによる教師あり学習 • distorted画像は⼈⼯的に作ることが多い • Ground truthを取得するのが難しいため 55 CNNによる画像修復 error minimization
clean output distorted synthesize CNN
56 CNNによる画像修復例 Blurry Ours Sharp DeBlurGAN Table 2: Results for
motion blur removal. Distorted DeblurGAN [CVPR, 2018] Clean Distorted AttentiveGAN [CVPR, 2018] DuRN [Liu+, CVPR, 2019] Clean Table 6: Results for raindrop removal. Pix2Pix (CVPR’17) AttGAN (CVPR’18) ble 6: Results for raindrop removal. Pix2Pix (CVPR’17) AttGAN (CVPR’18) Ours able 6: Results for raindrop removal. Pix2Pix (CVPR’17) AttGAN (CVPR’18) Ours Ours Motion blur removal Raindrop removal DuRN [Liu+, CVPR, 2019]
57 解決すべき課題 学習コスト 学習には⼤量のデータとラベルのペアが基本的には必要 • ラベル付けは想像以上に⼤変な作業(数万〜数百万データ) • そもそもデータ⾃体が⼿に⼊りづらいタスクも多数存在 • ラベル付きデータが無くてもできることはあるが,あるに越したことはない
学習にはGPU搭載の計算機を必要とする • 数⼗万〜数千万円 • ある程度の資⾦がないと試⾏錯誤できない • 公開済みのモデルも多々あるので,⾃前で学習する必要がないこともある https://blogs.nvidia.co.jp/2019/11/26/record-gpu-accelerated-supercomputers-top500/ https://ai.googleblog.com/2018/10/fluid-annotation-exploratory-machine.html
Adversarial example [Goodfellow+, ICLRʼ15] • 少しのノイズを加えただけで,パンダをテナガザルと誤認識する • こういったノイズを⽣成することは簡単 58 解決すべき課題
深層学習は万能ではない DNNの予測: パンダ DNNの予測: テナガザル もとの画像 ノイズ ノイズ加算後の画像
Adversarial example for automated cars • ⾃動運転⾞のライン制御に悪影響を与えることも可能 59 解決すべき課題 深層学習は万能ではない
https://sites.google.com/view/cav-sec/drp-attack Sato+, Dirty Road Can Attack: Security of Deep Learning based Automated Lane Centering under Physical-World Attack, USENIX Security Symposium, 2021
⼈間にとっては同じカテゴリでも,深層学習モデルに とっては違うカテゴリと認識する例 60 解決すべき課題 ⼈間の知能との間には⼤きなギャップ https://arxiv.org/abs/2004.07780 深層学習モデルにとっては 同じカテゴリに認識する例
CNNによる画像解析の基礎 • 畳み込みによる特徴抽出,プーリングによる情報集約 • 誤差逆伝播法+確率的勾配降下法による効率的な学習 • 学習安定化のためのテクニック(バッチ正規化,残差学習) CNNによる画像解析例 • 画像分類,物体検出,異常検知
• 学習データがしっかり集まる場合は⾮常に有⽤ 深層学習の課題 • 学習コストが⾼い • ⼈間の認知能⼒とのギャップ 61 まとめ