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
『画像認識』第5章「分類」輪読会資料 / Image Recognition Chapter 5
Search
Shotaro Ishihara
November 17, 2017
Technology
0
620
『画像認識』第5章「分類」輪読会資料 / Image Recognition Chapter 5
「画像認識」(講談社、機械学習プロフェッショナルシリーズ)の勉強会発表資料_第5章
Shotaro Ishihara
November 17, 2017
Tweet
Share
More Decks by Shotaro Ishihara
See All by Shotaro Ishihara
マルチモーダル AI 実装の課題と解決策 / Developer X Summit
upura
0
24
ニュースメディアにおける事前学習済みモデルの可能性と課題 / IBIS2024
upura
3
510
「巨人の肩の上」で自作ライブラリを作る技術 / pyconjp2024
upura
3
810
Quantifying Memorization and Detecting Training Data of Pre-trained Language Models using Japanese Newspaper
upura
0
43
第 2 部 11 章「大規模言語モデルの研究開発から実運用に向けて」に向けて / MLOps Book Chapter 11
upura
0
390
第19回YANSシンポジウムスポンサー資料 / yans2024-nikkei
upura
0
32
Quantifying Memorization of Domain-Specific Pre-trained Language Models using Japanese Newspaper and Paywalls
upura
0
50
「極意本」サンプルコードをクラウド上で動かそう
upura
1
2.4k
論文紹介: Generating News-Centric Crossword Puzzles As A Constraint Satisfaction and Optimization Problem
upura
0
310
Other Decks in Technology
See All in Technology
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
170
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.7k
OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理 | FlutterKaigi 2024
ronnnnn
0
200
複雑なState管理からの脱却
sansantech
PRO
1
150
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
310
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
950
Zennのパフォーマンスモニタリングでやっていること
ryosukeigarashi
0
150
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
13k
心が動くエンジニアリング ── 私が夢中になる理由
16bitidol
0
100
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
180
The Rise of LLMOps
asei
7
1.7k
Featured
See All Featured
Thoughts on Productivity
jonyablonski
67
4.3k
Faster Mobile Websites
deanohume
305
30k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Designing the Hi-DPI Web
ddemaree
280
34k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Docker and Python
trallard
40
3.1k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
KATA
mclloyd
29
14k
Practical Orchestrator
shlominoach
186
10k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
A Philosophy of Restraint
colly
203
16k
Transcript
画像認識勉強会 第5章 分類 2017年9⽉5⽇
2 本⽇伝えたいこと • 「分類」を体系的に知る • 適当に使うだけなら、ライブラリを⽤いて数⾏で実装できてしまう • どんな種類があり、どんな特徴があるのか、全体像を把握する
本⽇の内容 • 分類とは(5.1節+@) • ベイズ決定則(5.2節) • 識別関数(5.3, 5.4, 5.5, 5.6,
5.9節) • 識別的アプローチ(5.8節) • ⽣成的アプローチ(5.7節) • 分類結果の評価(5.10節) • まとめ 3
タスク • ⼊⼒画像から⽣成された特徴ベクトルにクラスを付与 4 ⼊ ⼒ 画 像 サ ン
プ リ ン グ と 記 述 統 計 的 特 徴 抽 出 コ デ ィ ン グ プ リ ン グ 分 類 器 ク ラ ス
5 より具体的なタスク • 特徴空間の適切な領域分割+領域へのクラス付与 ಛۭؒ ಛϕΫτϧ 原⽥達也: 画像認識 (機械学習プロフェッショナルシリーズ), 講談社,
p. 126 ,2017.
6 分類問題への3つのアプローチ 訓練データ $ クラス割り当て 推論 C.M.ビショップ: パターン認識と機械学習 上, 丸善出版,
pp. 37-45 ,2017. ($ ) $ 決定 + →決定理論を⽤いたアプローチ →そうでないアプローチ(識別関数を⽤いる)
本⽇の内容 • 分類とは(5.1節+@) • ベイズ決定則(5.2節) • 識別関数(5.3, 5.4, 5.5, 5.6,
5.9節) • 識別的アプローチ(5.8節) • ⽣成的アプローチ(5.7節) • 分類結果の評価(5.10節) • まとめ 7
8 ベイズ決定則 • (古典的な)統計的決定理論を⽤いた分類⽅法 • 「推論」と「決定」の2段階に分ける⼿法 • 事後確率を求め、その上で意思決定を⾏う • 事後確率が分かっていると、閾値の設定など⾼度な意思決定に活⽤できる
• 「損失」の期待値を最⼩化する分類器の設計を⽬指す • 損失:誤った分類で被る影響
9 損失 • 損失 $ | = ∑ $ ,
- - | ./ -01 • 損失関数 $ , - • クラス- をクラス$ と判断した時の損失の⼤きさ • 事後確率 - | • ⼊⼒に対してクラス- と判断する確率
10 損失の期待値 • にクラスを付与する関数を とする • 損失 | = ∑
, - - | ./ -01 • 損失の期待値 = Ε5 |
11 例:0-1損失 • ⾮常に単純な損失関数 (とはいえ汎⽤性が⾼い) • 以下、この損失関数を⽤いて 分類問題を考える • $
, - = 1 − $- • $- はクロネッカーのデルタ • $ = - : • 0 • $ ≠ - : • 1
12 例:0-1損失 • $ | = ∑ 1 − $-
- ./ -01 = ∑ - -<$ = 1 − $ • この損失の期待値 Ε5 1 − $ を最⼩にする ⟹ 事後確率 $ を最⼤にする(最⼤事後確率則) • に対する事後確率が最⼤となるクラスに分類する
13 事後確率 $ の求め⽅ 訓練データ $ クラス割り当て ⽣成的アプローチ 識別的アプローチ ($
) $ →そうでないアプローチ(識別関数を⽤いる)
本⽇の内容 • 分類とは(5.1節+@) • ベイズ決定則(5.2節) • 識別関数(5.3, 5.4, 5.5, 5.6,
5.9節) • 識別的アプローチ(5.8節) • ⽣成的アプローチ(5.7節) • 分類結果の評価(5.10節) • まとめ 14
15 識別関数(5.3節) • 「各クラスであるかどうか」を判定する何かしらの関数 • 最⼤の出⼒を得たクラスに⼊⼒を分類する • if $ ≥
- for ∀-<$ ⇒ ∈ $ 訓練データ クラス割り当て 識別関数を⽤いるアプローチ
16 識別関数の教師付き学習(5.4節) • 訓練データ(⼊⼒ベクトル G ,対となる情報 G )から、 損失を最⼩化するようなパラメータを推定する •
実際には「過学習」を防ぐため、以下のような式を最⼩化する のが⼀般的 • = 1 . ∑ G ; , G . G01 + 損失 ペナルティ : 損失とペナルティのどちらに 重きを置くかの度合い
17 識別関数の最適化⼿法(5.5節) • 1次の微分情報を⽤いた⼿法 • 勾配降下法、確率的勾配降下法 • 2次の微分情報を⽤いた⼿法 • ニュートン法
18 勾配降下法 • ⽬的関数 の1次微分を求めて、 勾配の逆⽅向にパラメータを 逐次的に更新していく⼿法 • PQ1 ←
P − U P 勾配⽅向
19 バッチ学習とオンライン学習 • バッチ学習 • ステップごとに全ての訓練データを⽤いてパラメータ更新 • 正確だが、計算量の問題あり • オンライン学習
• ⼀つのデータが与えられるたびにパラメータ更新 • 例:確率的勾配降下法
20 ニュートン法 • ⽬的関数の2次のテイラー展開を最⼩化するようにパラメータの 修正量を各ステップで決定する学習⼿法 • PQ1 = P +
= P + U W P + 1 2 WU P U = U Z ヘッセ⾏列(Hessian matrix) テイラー展開 (∗)
21 ニュートン法 • (∗)をで微分して停留点を求めると、修正量は以下になる • = −U [1 P U
P • 更新則 • PQ1 ← P − U [1 P U P
22 ニュートン法 • ⼀般に、ニュートン法は勾配降下法よりも良い結果を与える • 問題点: • ヘッセ⾏列の逆⾏列を計算するため、ヘッセ⾏列が⾮正則のとき適⽤ できない •
計算コストが⾼い
23 具体的な識別関数(5.6節) • 線形識別関数 • パーセプトロン • Adaline • サポートベクトルマシン(SVM)
24 線形識別関数 • 2クラス分類の場合: • = W + • ≥
0 → クラス1 • < 0 → クラス2 • a = argmax f ⇒ ∈ f
25 線形識別関数 • 多クラス分類の場合(one-vs-one): • $,- = W + •
$,- ≥ 0 → クラス • $,- < 0 → クラス • aは最も多くの票を集めたクラス(総数f f[1 Z 票)
26 線形識別関数 • 多クラス分類の場合(one-vs-rest): • $ = W + •
$ ≥ 0 → ∈ $ • $ < 0 → ∉ $ • a = argmax f ⇒ ∈ f
27 パーセプトロン • ⼊⼒ベクトルと重みベクトルの内積の正負で判別する • 学習データが線形分離可能な場合に 正しく分離できる平⾯を⾒つける
28 内積の意味 重みベクトル • ⋅ = cos • − s
Z < < s Z のとき正、 s Z < < ts Z のとき負になる
29 学習アルゴリズム 1. 重みベクトルを要素0で初期化 2. 訓練データからランダムにサンプルを選択 3. 分類が間違っていたら重みベクトルを更新 • 間違えたデータを正しく分類できるよう修正する
4. すべての訓練データを正しく分類できるまで2以降を繰り返す
30 重みベクトルの更新
31 パーセプトロンの特徴 線形分離不可能な場合に収束しない 線形分離可能な場合は収束する
32 Adaline • 線形分離不可能な場合でも解を求める⼿法 • 重みベクトルの更新に際して、1個ずつでなく全体をまとめて 扱う(コスト関数を⽤いる)ことで、落とし所を⾒つける • コスト関数として2乗損失を⽤いた場合: •
= 1 Z − W Z
33 Adalineでの更新式 • 勾配降下法を⽤いる(実⽤的には確率的勾配降下法) • ← − − − W
• 問題点: • 2乗損失では、決定境界から離れた訓練データの影響が⼤きくなる
34 サポートベクトルマシン • ヒンジ損失を⽤いる • max (0, 1 − W)
• 正しく分類できていても、決定境界に近い場合には損失を与える • = max 0, 1 − W + | |Z -1 1 W 1 0 ヒンジ損失 0-1損失
35 サポートベクトルマシンでの更新式 • 勾配降下法を⽤いる(実⽤的には確率的勾配降下法) • ← − 2 if 0
> 1 − W • ← − 2 − otherwise
36 サポートベクトルマシン • マージンの最⼤化に相当 原⽥達也: 画像認識 (機械学習プロフェッショナルシリーズ), 講談社, p. 138
,2017.
37 集団学習(5.9節) • 単純な分類器を複数組み合わせ、⾮線形な分類器を構築 • 複雑な決定境界の設定が可能 • 組み合わせる予測器は単純で⾼速計算が可能なため、リアルタイム性が求め られる画像認識システムでよく利⽤される •
代表的な⼿法 • バギング • ランダムフォレスト • ブースティング
38 バギング • 訓練データからサブセットを複数回抽出し、各結果で多数決 • 不安定な学習アルゴリズムに有効 訓練データ サブセット2 サブセット1 サブセットM
… ブートストラップ法 分類器1 分類器2 分類器M 多数決 …
39 決定⽊/不安定な学習アルゴリズム • ⼊⼒データに対して次々と「質問」していく 原⽥達也: 画像認識 (機械学習プロフェッショナルシリーズ), 講談社, p. 149
,2017.
40 ランダムフォレスト • バギングにおける弱学習器として決定⽊を採⽤した⼿法
41 ブースティング • 逐次的に予測器を学習し、多数決または重み付け和で予測する • 後段の学習器では、前段の学習器が苦⼿な訓練データを積極的に分類 できるように修正していく 訓練データ 分類器1 分類器2
分類器M 重み付き多数決 … 信頼度1 信頼度Z 信頼度y
本⽇の内容 • 分類とは(5.1節+@) • ベイズ決定則(5.2節) • 識別関数(5.3, 5.4, 5.5, 5.6,
5.9節) • 識別的アプローチ(5.8節) • ⽣成的アプローチ(5.7節) • 分類結果の評価(5.10節) • まとめ 42
43 識別的アプローチ • 確率分布を推定せず、 $ を直接的に求める • ⽣成的アプローチより⼀般に分類精度が⾼い
44 識別関数と識別的アプローチ • 識別関数の出⼒は−∞から∞ • クラスの事後確率(0-1)として捉えるのは難しい • 識別的アプローチ(確率的識別関数)では、識別関数を拡張して $ を予測する
45 ロジスティック回帰 • = 1 1Q{|} ([U~5) = W •
定義域が−∞から∞、値域が0から1 • 1 = W • Z = 1 − W 0.5 1.0 W
46 ロジスティック回帰での更新式 • = −ln • 尤度 = ∏ 1
| ƒ„ Z | 1[ƒ„ (G ∈ 0,1 ) . G01 • 勾配降下法やニュートン法を⽤いる • PQ1 ← P − U P • PQ1 ← P − U [1 P U P
47 ソフトマックス回帰 • ロジスティック回帰の⼀般化(多クラス分類に対応) • - = {|} U …
~5 ∑ {|} U † ~5 ‡/ †ˆ‰
48 ソフトマックス回帰での更新式 • = −ln • 尤度 = ∏ ∏
- G Š ƒ„0- ./ G01 . G01 • 指⽰関数 ⋅ : true = 1, false = 0 • 勾配降下法やニュートン法を⽤いる • PQ1 ← P − U P • PQ1 ← P − U [1 P U P
本⽇の内容 • 分類とは(5.1節+@) • ベイズ決定則(5.2節) • 識別関数(5.3, 5.4, 5.5, 5.6,
5.9節) • 識別的アプローチ(5.8節) • ⽣成的アプローチ(5.7節) • 分類結果の評価(5.10節) • まとめ 49
50 ⽣成的アプローチ • 訓練データから、⼊⼒を⽣成する規則(確率分布)を推定 • ベイズの定理を使⽤ $ = • $
• Ž† • 5 ∝ $ $ • 事前確率 $ : 訓練データ内の割合で近似することが多い • 条件付き確率 $ : 訓練データからベイズ推定法などで計算することが多 い • 確率分布の推定は⼀般に困難で、分類精度は⾼くない • 近年、画像⽣成の分野で発展が著しい(VAE, GANなど)
51 密度推定/⽣成的アプローチ • = ∫ ℛ (を含む⼩さい領域ℛに割り当てられた確率) • ≃ (全体の総数をとした場合のℛ内の個数)
• ≃ ( が⼀定と近似できるほど体積が⼩さい時) • ∴ = ˜ ™ = š .™ • を固定しを推定(K近傍密度推定) • を固定しを推定(カーネル密度推定)
52 K近傍法密度推定 • 超球の体積 = s › œ•œ ž ›
œ Q1 • : 訓練データが個含まれる超球の半径 • Γ: ガンマ関数 Γ = ∫ |¢[1[5| ¤ ¥ • $ = f¦† .¦† ™ で推定 • $ ∝ $ $ = f¦† .¦† ™ ⋅ .¦† . ∝ Ž† $ の⼤きさは$ に属する 訓練データの数に⽐例する
53 K近傍法密度推定による分類 原⽥達也: 画像認識 (機械学習プロフェッショナルシリーズ), 講談社, p. 143 ,2017.
54 カーネル密度推定 • 超⽴⽅体の体積 = ℎ¨(ℎ: バンド幅) • に⼊る標本数 =
∑ 5[5† © $:ª†0ª • $ = 1 .¦† ™ ∑ 5[5† © $:ª†0ª で推定 • カーネル関数 , $ には、ガウスカーネルがよく⽤いられる • $ ∝ $ $ = 1 .¦† ™ ∑ 5[5† © $:ª†0ª ⋅ .¦† . ∝ ∑ 5[5† © $:ª†0ª
55 カーネル密度推定による分類
本⽇の内容 • 分類とは(5.1節+@) • ベイズ決定則(5.2節) • 識別関数(5.3, 5.4, 5.5, 5.6,
5.9節) • 識別的アプローチ(5.8節) • ⽣成的アプローチ(5.7節) • 分類結果の評価(5.10節) • まとめ 56
57 正解率 • 正解率= 分類が当たった数 全データ数 • 問題点 • クラス1が1%、クラス2が99%のデータ群(ガンの判定など)
• 「全部クラス2と分類する分類器」→正解率99% • 「クラス1にも分類しようとする分類器」→正解率99%より低いことも…
58 評価指標 • 精度(precision)= • 再現率(recall)= • F値= Z×}-{®¯°¯±²×-{®³´´ }-{®¯°¯±²Q-{®³´´
検索結果の「再現率」と「適合率」, http://d.hatena.ne.jp/Zellij/20120214/p1
59 AUC(Area Under the Curve) precision 1 - recall ←理想的な曲線
←実際の曲線 AUC • ⼤きいほど良い分類器
60 交差検証法 • 分類器は未知のデータに対して性能評価しなければならない • 訓練データが少ない場合に⽤いられる検証⼿法 第21回(最終回)機械学習 はじめよう, http://gihyo.jp/dev/serial/01/machine-learning/0021
本⽇の内容 • 分類とは(5.1節+@) • ベイズ決定則(5.2節) • 識別関数(5.3, 5.4, 5.5, 5.6,
5.9節) • 識別的アプローチ(5.8節) • ⽣成的アプローチ(5.7節) • 分類結果の評価(5.10節) • まとめ 61
62 まとめ • 分類の具体的なタスクを説明し、3つのアプローチを紹介した • 識別関数 • 識別的アプローチ • ⽣成的アプローチ
• 分類結果の評価⽅法を紹介した
Appendix
64 テイラー展開 • = ¥ + µ ¥ − ¥
+ 1 Z! µµ ¥ − ¥ Z + ⋯ • = ¥ + ℎと置くと、以下のように表現できる • ¥ + ℎ = ¥ + µ ¥ ℎ + 1 Z! µµ ¥ ℎZ + ⋯
65 ⾏列のテイラー展開 • P + = P + U P
⋅ + 1 Z! U Z P ⋅ Z = P + U W P + 1 Z U P Z = P + U W P + 1 Z U P W = P + U W P + 1 2 WU P (∗) U P = U W P
66 (∗)をで微分したものを0と置く • U W P + 1 Z ⋅
2U P = 0 • = −U [1 P U P
67 ⽣成的アプローチの発展 • 推定した(潜在的な)確率分布から、新たに画像を⽣成 訓練データ $ 新規データ ⽣成的アプローチ ($ )
$
68 Variational Autoencoder (VAE) • “input”から確率分布を推定し、 “output”として新しい画像を出⼒ • 普通のAutoencoderとは、”hidden” の部分を変数ではなく確率分布にし
ているところが異なる http://blog.fastforwardlabs.com/2016/08/22/unde r-the-hood-of-the-variational-autoencoder-in.html
69 Generative Adversarial Networks (GAN)* * Generative Adversarial Nets. Ian
J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio. arXiv:1406.2661. In NIPS 2014. [Figure] https://www.slideshare.net/xavigiro/deep-learning-for- computer-vision-generative-models-and-adversarial-training-upc- 2016 • 近年注⽬を集める(画像の) ⽣成的アプローチ • ⽣成器(⽣成的アプローチ) と識別器(識別関数を⽤いた アプローチ)を戦わせて、 ⽣成精度を向上させる