SlideShare uma empresa Scribd logo
1 de 56
Baixar para ler offline
コンピュータ先端ガイド2巻3章
他:SVM(Support Vector Machine)
B4M1勉強会
2017/05/11 B4 金子 真也
1
自己紹介
• 名前:金子 真也(かねこ まさや)
• Twitter:@syinari0123
• 出身:巣鴨高校
• 趣味:お散歩, 美味しいもの・美術館巡りなど
• やる気だけはなくさないように生きてます
2
目次
• パターン識別
• 線形から非線形への拡張
• カーネル関数
• SVM(Support Vector Machine)
– 線形SVM
– 非線形SVM
• SVMの多クラス分類
• SVMの応用
3
発表を始める前に
• 今回の発表は基本的にデータ解析アルゴリズム
の話なので数式がかなり多いです…
• できる限り抑えるようにしましたが, せっかくの
勉強会なので「ある程度の数式は仕方ない
ですかね…」としてスライドを作っています
• すみません…
4
目次
• パターン識別 ←
• 線形から非線形への拡張
• カーネル関数
• SVM(Support Vector Machine)
– 線形SVM
– 非線形SVM
• SVMの多クラス分類
• SVMの応用
5
パターン識別とは
与えられた入力データがどのクラスに属するか
を教師あり学習で識別する問題
→正解クラスを適切に出力できる𝑓𝑓 𝒙𝒙𝒊𝒊 を求める
特徴ベクトル
𝒙𝒙𝒊𝒊
識別関数
𝑓𝑓(𝒙𝒙𝒊𝒊)
正解クラス
𝑦𝑦𝒊𝒊
ネコである
(クラス1 𝜔𝜔1)
ネコじゃない
(クラス2 𝜔𝜔2)
𝑓𝑓(𝒙𝒙𝒊𝒊) ≥ 𝟎𝟎
𝑓𝑓 𝒙𝒙𝒊𝒊 ≤ 𝟎𝟎
入力画像
𝒙𝒙𝒊𝒊 =
𝑥𝑥𝑖𝑖1
⋮
𝑥𝑥𝑖𝑖 𝑑𝑑
6
線形パターン識別
識別関数𝑓𝑓 𝒙𝒙𝑖𝑖 として以下のように定める
𝑓𝑓 𝒙𝒙𝑖𝑖 = 𝒘𝒘𝑡𝑡 𝒙𝒙𝑖𝑖 + 𝑤𝑤0 �
≥ 0 (𝒙𝒙𝑖𝑖 ∈ 𝜔𝜔1)
≤ 0 (𝒙𝒙𝑖𝑖 ∈ 𝜔𝜔2)
→適切に𝒙𝒙𝑖𝑖を識別できるような𝒘𝒘, 𝑤𝑤0を求める
(空間を適切に分断する超平面を求める)
http://www.neuro.sfc.keio.ac.jp/~masato/study/SVM/SVM_1.htm
7
目次
• パターン識別
• 線形から非線形への拡張 ←
• カーネル関数
• SVM(Support Vector Machine)
– 線形SVM
– 非線形SVM
• SVMの多クラス分類
• SVMの応用
8
線形から非線形への拡張(1)
線形パターン識別には限界がある
線形分離可能な分布 線形分離不可能な分布
http://pika-shi.hatenablog.com/entries/2011/11/11
9
線形から非線形への拡張(2)
非線形関数Φによりデータの非線形変換
𝜙𝜙: 𝒙𝒙 = 𝑥𝑥1, . . , 𝑥𝑥𝑑𝑑
𝑡𝑡 → 𝜙𝜙1 𝒙𝒙 , … , 𝜙𝜙𝐷𝐷 𝒙𝒙
→線形分離可能な分布をするような空間に変換
𝑓𝑓 𝒙𝒙𝑖𝑖 = 𝒘𝒘𝑡𝑡 𝜙𝜙(𝒙𝒙𝑖𝑖) + 𝑤𝑤0 �
≥ 0 (𝒙𝒙𝑖𝑖 ∈ 𝜔𝜔1)
≤ 0 (𝒙𝒙𝑖𝑖 ∈ 𝜔𝜔2)
https://www1.doshisha.ac.jp/~mjin/R/31/31.html
10
線形から非線形への拡張(3)
非線形関数を利用するにあたって注意点あり
1. 高次元空間への変換で分離可能性は高くなるが
次元の呪いの発生(過学習)
2. 適切な非線形変換Φを決定する手段がない
→カーネル関数を使うといい感じに
(カーネル法)
11
目次
• パターン識別
• 線形から非線形への拡張
• カーネル関数 ←
• SVM(Support Vector Machine)
– 線形SVM
– 非線形SVM
• SVMの多クラス分類
• SVMの応用
12
カーネル関数(1)
ある関数𝜙𝜙 𝒙𝒙 (𝑹𝑹𝑑𝑑 → 𝑹𝑹𝐷𝐷)があり,
∀𝒙𝒙, 𝒚𝒚 ∈ 𝑹𝑹𝑑𝑑に対して,
𝑘𝑘 𝑥𝑥, 𝑦𝑦 = 𝜙𝜙 𝒙𝒙 𝑡𝑡 𝜙𝜙(𝒚𝒚)
が成立する関数Φが存在する時, 関数kを
カーネル関数という.
※カーネル関数が存在するための必要十分条件と
してはMercer’s theoremが存在(省略)
13
カーネル関数(2)
カーネル関数の例
• 線形カーネル 𝑘𝑘 𝒙𝒙, 𝒚𝒚 = 𝒙𝒙𝑡𝑡 𝒚𝒚
• 多項式カーネル 𝑘𝑘 𝒙𝒙, 𝒚𝒚 = 𝒙𝒙𝑡𝑡
𝒚𝒚 + 𝑐𝑐 𝑝𝑝
• ガウスカーネル
𝑘𝑘 𝒙𝒙, 𝒚𝒚 = exp(−
𝒙𝒙 − 𝒚𝒚
2𝜎𝜎2
)
• RBFカーネル
𝑘𝑘 𝒙𝒙, 𝒚𝒚 = exp(−𝛾𝛾 𝒙𝒙 − 𝒚𝒚 2)
14
カーネル関数(3)
カーネル関数を使うとメリットがある
1. D次元ベクトルの内積がd次元ベクトルの関数
で表される(𝐷𝐷 ≫ 𝑑𝑑の時,計算量の削減に)
→カーネルトリック
2. 具体的な𝜙𝜙 𝒙𝒙 の形を与える必要がない
カーネル法はSVMと相性がかなり良い
15
目次
• パターン識別
• 線形から非線形への拡張
• カーネル関数
• SVM(Support Vector Machine) ←
– 線形SVM
– 非線形SVM
• SVMの多クラス分類
• SVMの応用
16
目次
• パターン識別
• 線形から非線形への拡張
• カーネル関数
• SVM(Support Vector Machine)
– 線形SVM ←
– 非線形SVM
• SVMの多クラス分類
• SVMの応用
17
線形SVM
• 基本的な考えとしてはパターン識別と同じ
• クラスを分類する超平面の候補のうち, 以下の
図で点線間の距離を最大にする境界を求める
(マージン最大化)
最先端ガイド2 3章 図3.8右
18
マージン最大化(1)
分類境界から最も近くにある𝒙𝒙𝑖𝑖との距離の最大化
max
𝒘𝒘,𝑤𝑤0
min
𝑖𝑖
𝒘𝒘𝑡𝑡
𝒙𝒙𝑖𝑖 + 𝑤𝑤0
𝒘𝒘
制約条件として
𝑓𝑓 𝒙𝒙𝑖𝑖 = 𝒘𝒘𝑡𝑡
𝒙𝒙𝑖𝑖 + 𝑤𝑤0 ≥ 1 ⋯ (∗)
を入れることで上の式は以下に帰着できる
max
𝒘𝒘
1
𝒘𝒘
= min
𝒘𝒘
𝒘𝒘
19
マージン最大化(2)
マージン最大化の直感的解釈
min
𝒘𝒘,𝑤𝑤0
𝒘𝒘 = max
𝒘𝒘,𝑤𝑤0
2
𝒘𝒘
𝑠𝑠. 𝑡𝑡. 𝑓𝑓 𝒙𝒙𝑖𝑖 ≥ 1
2
𝑤𝑤 𝑓𝑓(𝒙𝒙𝑖𝑖)
𝑤𝑤
=
𝒘𝒘𝑡𝑡 𝒙𝒙 + 𝑤𝑤0
𝑤𝑤
𝑓𝑓 𝒙𝒙 = 𝒘𝒘𝑡𝑡 𝒙𝒙 + 𝑤𝑤0
𝑓𝑓 𝒙𝒙 = 1
𝑓𝑓 𝒙𝒙 = −1 𝑓𝑓 𝒙𝒙 = 0
𝒙𝒙𝑖𝑖|𝑓𝑓 𝒙𝒙 | ≥ 1
20
ハードマージン
制約式 ∗ は次のように書き換えられる
𝑓𝑓 𝒙𝒙𝑖𝑖 = 𝒘𝒘𝑡𝑡
𝒙𝒙𝑖𝑖 + 𝑤𝑤0 �
≥ 1 (𝒙𝒙𝑖𝑖 ∈ 𝜔𝜔1)
≤ −1 (𝒙𝒙𝑖𝑖 ∈ 𝜔𝜔2)
制約式 ∗ 条件下で以下を求める問題に帰着できる
min
𝒘𝒘,𝑤𝑤0
𝒘𝒘
→線形分離不可能な場合に解が存在しない
𝑓𝑓 𝒙𝒙 ≥ 1
𝑓𝑓 𝒙𝒙 ≤ −1 𝑓𝑓 𝒙𝒙 = 0
21
ソフトマージン
分離の誤りを少し許すために制約式 ∗ に
誤差項𝜉𝜉𝑖𝑖(≥ 0)を導入
𝑓𝑓 𝒙𝒙𝑖𝑖 = 𝒘𝒘𝑡𝑡 𝒙𝒙𝑖𝑖 + 𝑤𝑤0 �
≥ 1 − 𝜉𝜉𝑖𝑖 (𝒙𝒙𝑖𝑖 ∈ 𝜔𝜔1)
≤ −1 + 𝜉𝜉𝑖𝑖(𝒙𝒙𝑖𝑖 ∈ 𝜔𝜔2)
⋯ (∗∗)
𝜉𝜉𝑖𝑖
𝜉𝜉𝑖𝑖−1
𝜉𝜉𝑖𝑖+1
𝑓𝑓 𝒙𝒙 = 1
𝑓𝑓 𝒙𝒙 = −1
22
最適化問題への帰着(1)
𝒙𝒙𝑖𝑖の属するクラスの変数(正解クラス)を
以下のように定める
𝒚𝒚𝑖𝑖 = �
1 (𝒙𝒙𝑖𝑖 ∈ 𝜔𝜔1)
−1 (𝒙𝒙𝑖𝑖 ∈ 𝜔𝜔2)
𝒙𝒙𝑖𝑖のクラス属性も組み込んだ制約式 ∗∗ は次になる
𝒚𝒚𝑖𝑖 𝒘𝒘𝑡𝑡
𝒙𝒙𝑖𝑖 + 𝑤𝑤0 ≥ 1 − 𝜉𝜉𝑖𝑖
𝜉𝜉𝑖𝑖 ≥ 0
𝑦𝑦𝑖𝑖 = 1
𝑦𝑦𝑖𝑖 = −1
𝑓𝑓 𝒙𝒙 ≥ 1 − 𝜉𝜉𝑖𝑖
𝑓𝑓 𝒙𝒙 ≤ −1 + 𝜉𝜉𝑖𝑖
23
最適化問題への帰着(2)
最終的に線形SVM(ソフトマージン)の最適化は
以下のような最小化問題に帰着できる
• 第一項:マージン(2/ 𝒘𝒘 )の最大化
• 第二項:誤差項(𝜉𝜉𝑖𝑖)の最小化(𝐶𝐶は正則化係数)
min
𝒘𝒘,𝑤𝑤0,𝜉𝜉𝑖𝑖
1
2
𝒘𝒘 2
+ 𝐶𝐶 � 𝜉𝜉𝑖𝑖
𝑛𝑛
𝑖𝑖=0
𝑠𝑠. 𝑡𝑡. ∀𝑖𝑖 𝒚𝒚𝑖𝑖 𝒘𝒘𝑡𝑡 𝒙𝒙𝑖𝑖 + 𝑤𝑤0 ≥ 1 − 𝜉𝜉𝑖𝑖
∀𝑖𝑖 𝜉𝜉𝑖𝑖 ≥ 0
24
ソフトマージンの実例
パラメータCの調節により誤りの許容度を
変化させることができる
𝐶𝐶 = 100 の時 𝐶𝐶 = 0.1 の時
MLP サポートベクターマシン 第一章 図1.5
25
線形SVMの双対問題
ラグランジュ関数を用いることで最適化問題から
以下の双対問題を導ける (𝜶𝜶は双対変数)
• SVMの場合には強双対性が成立するために上式のように
書き換えられる(省略)
• カールシュ・クーン・タッカー条件(KKT条件)
max
𝜶𝜶
(−
1
2
� 𝛼𝛼𝑖𝑖 𝛼𝛼𝑗𝑗 𝑦𝑦𝑖𝑖 𝑦𝑦𝑗𝑗 𝒙𝒙𝑖𝑖
𝑡𝑡
𝒙𝒙𝑗𝑗
𝑖𝑖,𝑗𝑗
+ � 𝛼𝛼𝑖𝑖
𝑖𝑖
)
𝑠𝑠. 𝑡𝑡. � 𝛼𝛼𝑖𝑖 𝑦𝑦𝑖𝑖 = 0
𝑖𝑖
∀𝑖𝑖 0 ≤ 𝛼𝛼𝑖𝑖 ≤ 𝐶𝐶
26
双対問題の利点
• 非線形SVMへ拡張する際にはカーネルトリック
をそのまま適用できる
• 内積がわかっていればデータ𝒙𝒙𝑖𝑖そのものの保持
の必要がない(メモリの節約)
– データ行列 𝒙𝒙1, … , 𝒙𝒙𝑛𝑛
𝑡𝑡
の要素𝑛𝑛𝑛𝑛
– 内積計算に必要なデータ量𝑛𝑛 𝑛𝑛 − 1 /2
• 双対変数𝜶𝜶の一部が0要素を多く持つ場合があり,
計算時間の短縮化に
(マージン外領域にデータが多い場合)
27
目次
• パターン識別
• 線形から非線形への拡張
• カーネル関数
• SVM(Support Vector Machine)
– 線形SVM
– 非線形SVM ←
• SVMの多クラス分類
• SVMの応用
28
非線形SVM
• 線形な分離には限界がある
• 非線形関数Φを使ってデータを線形分離可能な
分布をするような空間に変換
• 双対問題に対して非線形変換を行うことで
カーネルトリックを利用できる
https://www1.doshisha.ac.jp/~mjin/R/31/31.html
29
非線形SVMの最適問題(1)
入力データを特徴空間へ写像する関数Φを用いて
𝑓𝑓 𝒙𝒙 = 𝒘𝒘𝑡𝑡
𝜙𝜙(𝒙𝒙) + 𝑤𝑤0
を識別関数とすればよい. 双対問題に代入すると,
max
𝜶𝜶
(−
1
2
� 𝛼𝛼𝑖𝑖 𝛼𝛼𝑗𝑗 𝑦𝑦𝑖𝑖 𝑦𝑦𝑗𝑗 𝜙𝜙 𝒙𝒙𝑖𝑖
𝑡𝑡
𝜙𝜙(𝒙𝒙𝑗𝑗)
𝑖𝑖,𝑗𝑗
+ � 𝛼𝛼𝑖𝑖
𝑖𝑖
)
𝑠𝑠. 𝑡𝑡. � 𝛼𝛼𝑖𝑖 𝑦𝑦𝑖𝑖 = 0
𝑖𝑖
∀𝑖𝑖 0 ≤ 𝛼𝛼𝑖𝑖 ≤ 𝐶𝐶
30
非線形SVMの最適問題(2)
前式をカーネル関数で書き直すと (KKT条件より)
𝑓𝑓 𝒙𝒙 = � 𝛼𝛼𝑖𝑖 𝑦𝑦𝑖𝑖 𝐾𝐾(𝒙𝒙𝑖𝑖, 𝒙𝒙)
𝑖𝑖
+ 𝑤𝑤0
双対問題は以下のようになる.
max
𝜶𝜶
(−
1
2
� 𝛼𝛼𝑖𝑖 𝛼𝛼𝑗𝑗 𝑦𝑦𝑖𝑖 𝑦𝑦𝑗𝑗 𝐾𝐾(𝒙𝒙𝑖𝑖, 𝒙𝒙𝑗𝑗)
𝑖𝑖,𝑗𝑗
+ � 𝛼𝛼𝑖𝑖
𝑖𝑖
)
𝑠𝑠. 𝑡𝑡. � 𝛼𝛼𝑖𝑖 𝑦𝑦𝑖𝑖 = 0
𝑖𝑖
∀𝑖𝑖 0 ≤ 𝛼𝛼𝑖𝑖 ≤ 𝐶𝐶
31
非線形SVMの実例(1)
ガウスカーネルを利用した場合
Cが小さい時 Cが大きい時
http://d.hatena.ne.jp/hase1031/20111218/1324194721
32
非線形SVMの実例(2)
ガウスカーネルを利用した場合
σが小さい時 σが大きい時
http://aidiary.hatenablog.com/entry/20100503/1272889097
33
目次
• パターン識別
• 線形から非線形への拡張
• カーネル関数
• SVM(Support Vector Machine)
– 線形SVM
– 非線形SVM
• SVMの多クラス分類 ←
• SVMの応用
34
SVMの多クラス分類(1)
SVMでは2クラス分類しかできない
→多クラス分類を行うためには工夫が必要
http://opencv.jp/sample/misc.html
35
SVMの多クラス分類(2)
工夫の方向性として次のようなものが考えられる
• 複数の2クラス分類器の組み合わせ
– 1対他方式
– 1対1方式
– 誤り訂正出力符号
• SVMの定式化の拡張
36
SVMの多クラス分類の目次
• 複数の2クラス分類器の組み合わせ ←
– 1対他方式
– 1対1方式
– 誤り訂正出力符号
• SVMの定式化の拡張
37
SVMの多クラス分類の目次
• 複数の2クラス分類器の組み合わせ
– 1対他方式 ←
– 1対1方式
– 誤り訂正出力符号
• SVMの定式化の拡張
38
1対他方式(1)
• 最も単純な方式
• 1クラスと残りのクラスに分類
• k番目のクラスの識別関数𝑓𝑓 𝑘𝑘
𝒙𝒙 の最大値を選ぶ
ことで属するクラスの決定
argmax
𝑘𝑘
𝑓𝑓 𝑘𝑘(𝒙𝒙)
クラス
1
クラス
2
クラス
3
http://qiita.com/pika_shi/items/5e59bcf69e85fdd9edb2
39
1対他方式(2)
特徴として以下のようなことが挙げられる
• 実装が容易
• 識別関数𝑓𝑓 𝑘𝑘 𝒙𝒙 の値を比較することが適切か不明
↑異なるSVMを利用しているから
40
SVMの多クラス分類の目次
• 複数の2クラス分類器の組み合わせ
– 1対他方式
– 1対1方式 ←
– 誤り訂正出力符号
• SVMの定式化の拡張
41
1対1方式(1)
• 全体から2つのクラスのペアを作り分類
– nクラスに対して 𝑛𝑛 𝐶𝐶2個のSVM
• 全ての組み合わせに対して多数決を行う
𝑓𝑓𝑖𝑖𝑖𝑖 𝒙𝒙 �
> 0 𝑖𝑖に投票
< 0 𝑗𝑗に投票
3クラス分類問題において, あるデータ𝒙𝒙が…
𝑓𝑓12
𝒙𝒙 > 0 クラス1に投票
𝑓𝑓23 𝒙𝒙 < 0 クラス3に投票
𝑓𝑓13
𝒙𝒙 > 0 クラス1に投票
→ データ𝒙𝒙はクラス1に分類(2票獲得)
42
1対1方式(2)
特徴として以下のようなことが挙げられる
• 訓練時には毎回対象の2クラス分のデータしか
用いないのでSVMの学習コストが小さい
• 使うSVMの個数が多い(𝑂𝑂(𝑛𝑛2))
• 単純な多数決以外にも…
– 非循環有効グラフによる方法
– ペアワイズカップリング法
43
非循環有効グラフによる方法
逐次的に2クラス分類を行っていくことで
分類回数を減らす
http://www.kri.sfc.keio.ac.jp/report/mori/2004/c-118/
44
ペアワイズカップリング法(1)
確率的な解釈で1対1分類結果𝑓𝑓𝑖𝑖𝑖𝑖 𝒙𝒙 から
多クラス分類確率𝑝𝑝𝑖𝑖 𝒙𝒙 の推定
1対1での分類確率 𝑝𝑝𝑖𝑖𝑖𝑖 𝒙𝒙
全体からの分類確率 𝑝𝑝𝑖𝑖 𝒙𝒙
識別関数 𝑓𝑓𝑖𝑖𝑖𝑖
𝒙𝒙
↓
𝑝𝑝 𝑌𝑌 = 𝑖𝑖 𝑌𝑌 ∈ 𝑖𝑖, 𝑗𝑗 , 𝑋𝑋 = 𝒙𝒙
↓
𝑝𝑝(𝑌𝑌 = 𝑖𝑖|𝑋𝑋 = 𝒙𝒙)
SVMでの識別境界
(1)モデル化
(2)推定
45
ペアワイズカップリング法(2)
1. 識別関数𝑓𝑓𝑖𝑖𝑖𝑖 𝒙𝒙 から分類確率𝑝𝑝̂𝑖𝑖𝑖𝑖 𝒙𝒙 のモデル化
𝑝𝑝̂𝑖𝑖𝑖𝑖 𝒙𝒙 =
1
1 + exp(−𝐴𝐴𝑓𝑓𝑖𝑖𝑖𝑖 𝒙𝒙 + 𝐵𝐵)
→最尤推定法によりA,Bを推定
2. モデル化した𝑝𝑝̂𝑖𝑖𝑖𝑖 𝒙𝒙 と実際の𝑝𝑝𝑖𝑖𝑖𝑖 𝒙𝒙 が近くなるよ
うに𝑝𝑝𝑖𝑖
𝒙𝒙 の推定
min
𝑝𝑝𝑖𝑖
𝑖𝑖∈[𝑐𝑐]
� 𝑛𝑛𝑖𝑖 + 𝑛𝑛𝑗𝑗 𝐾𝐾𝐾𝐾 𝑝𝑝̂𝑖𝑖𝑖𝑖 ∥ 𝑝𝑝𝑖𝑖𝑖𝑖
𝑖𝑖≠𝑗𝑗
→ 𝑝𝑝𝑖𝑖𝑖𝑖 = 𝑝𝑝𝑖𝑖/(𝑝𝑝𝑖𝑖 + 𝑝𝑝𝑗𝑗)より 𝑝𝑝𝑖𝑖
𝑖𝑖∈[𝑐𝑐]
に関して最小化
46
SVMの多クラス分類の目次
• 複数の2クラス分類器の組み合わせ
– 1対他方式
– 1対1方式
– 誤り訂正出力符号 ←
• SVMの定式化の拡張
47
誤り訂正出力符号(1)
各クラスをある特徴に基づいて1,-1を割り当てて
符号語を作成(以下は符号長 m=7)
MLP サポートベクターマシン 第二章 表2.2
48
誤り訂正出力符号(2)
• m個の符号の列それぞれで識別関数𝑓𝑓𝑗𝑗 𝒙𝒙 を学習
• それぞれの符号とのハミング距離を計算し, 最も
距離が近いクラスへと分類
識別関数
𝑓𝑓𝑗𝑗 𝒙𝒙𝑖𝑖
(𝑗𝑗 = 1 … 𝑚𝑚)
-1
1
1
-1
-1
1
-1
-1
1
1
-1
-1
1
-1
正解符号語
𝑦𝑦 = 2
距離0
特徴ベクトル
𝒙𝒙𝒊𝒊
入力画像
𝒙𝒙𝒊𝒊 =
𝑥𝑥𝑖𝑖1
⋮
𝑥𝑥𝑖𝑖 𝑑𝑑
符号語
49
SVMの多クラス分類の目次
• 複数の2クラス分類器の組み合わせ
– 1対他方式
– 1対1方式
– 誤り訂正出力符号
• SVMの定式化の拡張 ←
50
SVMの定式化の拡張(多クラス)
• SVMの識別関数を以下のように拡張
(𝒘𝒘𝑘𝑘
, 𝑤𝑤0
𝑘𝑘
は各クラス𝑘𝑘(∈ [𝑐𝑐])に対応するパラメータ)
𝑔𝑔 𝒙𝒙 = argmax
𝑘𝑘
𝒘𝒘𝑘𝑘 𝑡𝑡
𝜙𝜙 𝒙𝒙 + 𝑤𝑤0
𝑘𝑘
• あるデータ(𝒙𝒙𝑖𝑖, 𝑦𝑦𝑖𝑖)を分類するために必要な条件
𝒘𝒘𝑦𝑦𝑖𝑖 𝑡𝑡
𝜙𝜙 𝒙𝒙 + 𝑤𝑤0
𝑦𝑦𝑖𝑖
≥ 𝒘𝒘𝑘𝑘 𝑡𝑡
𝜙𝜙 𝒙𝒙 + 𝑤𝑤0
𝑘𝑘
+ 1 (𝑘𝑘 ≠ 𝑦𝑦𝑖𝑖)
クラス𝑦𝑦𝑖𝑖の時の
識別関数の値
クラス𝑦𝑦𝑖𝑖以外の時の
識別関数の値
+1(ハードマージン)
→ +1 − 𝜉𝜉𝑖𝑖
𝑘𝑘
(ソフトマージン)
51
多クラスSVMの最適化問題
2クラス分類SVMの時と同様に最適化問題に帰着
→SVMの時と同様に双対問題を考えられる
min
𝒘𝒘𝑘𝑘,𝑤𝑤0
𝑘𝑘,𝜉𝜉𝑖𝑖
𝑘𝑘
𝑘𝑘∈[𝑐𝑐]
1
2
� 𝒘𝒘𝑘𝑘 2
𝑘𝑘
+ 𝐶𝐶 � � 𝜉𝜉𝑖𝑖
𝑘𝑘
𝑘𝑘≠𝑦𝑦𝑖𝑖𝑖𝑖
𝑠𝑠. 𝑡𝑡. ∀𝑖𝑖 𝒘𝒘𝑦𝑦𝑖𝑖 𝑡𝑡 𝜙𝜙 𝒙𝒙 + 𝑤𝑤0
𝑦𝑦𝑖𝑖
≥ 𝒘𝒘𝑘𝑘 𝑡𝑡
𝜙𝜙 𝒙𝒙 + 𝑤𝑤0
𝑘𝑘
+ 1 − 𝜉𝜉𝑖𝑖
𝑘𝑘
(𝑘𝑘 ≠ 𝑦𝑦𝑖𝑖)
∀𝑖𝑖 𝜉𝜉𝑖𝑖
𝑘𝑘
≥ 0 (𝑘𝑘 ≠ 𝑦𝑦𝑖𝑖)
52
多クラスSVMの双対問題
同様にラグランジュ関数によって最適化問題から
以下の双対問題を導ける (𝛼𝛼𝑖𝑖 𝑖𝑖, 𝛼𝛼�𝑖𝑖 𝑖𝑖は双対変数)
識別関数も以下のようになる(KKT条件の利用)
𝒘𝒘𝑘𝑘 𝑡𝑡
𝜙𝜙 𝒙𝒙 + 𝑤𝑤0
𝑘𝑘
= � 𝛼𝛼�𝑖𝑖𝑖𝑖 𝐾𝐾 𝒙𝒙𝑖𝑖, 𝒙𝒙𝑗𝑗
𝑖𝑖
+ 𝑤𝑤0
𝑘𝑘
max
𝜶𝜶
−
1
2
� � 𝛼𝛼�𝑖𝑖𝑘𝑘 𝛼𝛼�𝑗𝑗𝑘𝑘 𝐾𝐾 𝒙𝒙𝑖𝑖, 𝒙𝒙𝑗𝑗
𝑘𝑘𝑖𝑖,𝑗𝑗
+ � � 𝛼𝛼𝑖𝑖𝑘𝑘
𝑘𝑘≠𝑦𝑦𝑖𝑖𝑖𝑖
𝑠𝑠. 𝑡𝑡. ∀𝑖𝑖 � 𝛼𝛼�𝑖𝑖𝑘𝑘
𝑖𝑖
= 0 (𝑘𝑘 ≠ 𝑦𝑦𝑖𝑖)
∀𝑖𝑖 0 ≤ 𝛼𝛼𝑖𝑖𝑘𝑘 ≤ 𝐶𝐶 (𝑘𝑘 ≠ 𝑦𝑦𝑖𝑖)
53
目次
• パターン識別
• 線形から非線形への拡張
• カーネル関数
• SVM(Support Vector Machine)
– 線形SVM
– 非線形SVM
• SVMの多クラス分類
• SVMの応用 ←
54
SVMの応用
今回は分類問題に絞って解説を試みたが他にも
– 回帰分析
– 教師なし学習(異常検知)
– 構造化問題(自然言語処理など)
– 半教師あり学習
にも利用可能!(すごそう)
55
参考文献
• 八木康史・斎藤英雄 編
「コンピュータビジョン最先端ガイド2」
• 竹内一郎・鳥山昌幸
「MLPシリーズ サポートベクターマシン」

Mais conteúdo relacionado

Mais procurados

はじパタ6章前半
はじパタ6章前半はじパタ6章前半
はじパタ6章前半
T T
 

Mais procurados (20)

クラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシンクラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシン
 
はじパタ6章前半
はじパタ6章前半はじパタ6章前半
はじパタ6章前半
 
動的輪郭モデル
動的輪郭モデル動的輪郭モデル
動的輪郭モデル
 
【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields
 
Fisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight MapsFisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight Maps
 
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
システム制御とディープラーニング
システム制御とディープラーニングシステム制御とディープラーニング
システム制御とディープラーニング
 
PRML 第4章
PRML 第4章PRML 第4章
PRML 第4章
 
変分ベイズ法の説明
変分ベイズ法の説明変分ベイズ法の説明
変分ベイズ法の説明
 
はじめてのパターン認識8章サポートベクトルマシン
はじめてのパターン認識8章サポートベクトルマシンはじめてのパターン認識8章サポートベクトルマシン
はじめてのパターン認識8章サポートベクトルマシン
 
PRML輪読#1
PRML輪読#1PRML輪読#1
PRML輪読#1
 
機械学習におけるオンライン確率的最適化の理論
機械学習におけるオンライン確率的最適化の理論機械学習におけるオンライン確率的最適化の理論
機械学習におけるオンライン確率的最適化の理論
 
線形?非線形?
線形?非線形?線形?非線形?
線形?非線形?
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
 
PRML輪読#2
PRML輪読#2PRML輪読#2
PRML輪読#2
 
制限ボルツマンマシン入門
制限ボルツマンマシン入門制限ボルツマンマシン入門
制限ボルツマンマシン入門
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
EMアルゴリズム
EMアルゴリズムEMアルゴリズム
EMアルゴリズム
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 

Semelhante a コンピュータ先端ガイド2巻3章勉強会(SVM)

PRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデルPRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデル
Shohei Okada
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズム
Miyoshi Yuya
 
Web本文抽出 using crf
Web本文抽出 using crfWeb本文抽出 using crf
Web本文抽出 using crf
Shuyo Nakatani
 
Datamining 5th knn
Datamining 5th knnDatamining 5th knn
Datamining 5th knn
sesejun
 

Semelhante a コンピュータ先端ガイド2巻3章勉強会(SVM) (20)

SVMってなに?
SVMってなに?SVMってなに?
SVMってなに?
 
PRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデルPRML勉強会@長岡 第4章線形識別モデル
PRML勉強会@長岡 第4章線形識別モデル
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズム
 
劣モジュラ最適化と機械学習 2.5節
劣モジュラ最適化と機械学習 2.5節劣モジュラ最適化と機械学習 2.5節
劣モジュラ最適化と機械学習 2.5節
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector Machine
 
Graph Clustering on Missing Data
Graph Clustering on Missing DataGraph Clustering on Missing Data
Graph Clustering on Missing Data
 
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)
 
Prml revenge7.1.1
Prml revenge7.1.1Prml revenge7.1.1
Prml revenge7.1.1
 
PRML輪読#7
PRML輪読#7PRML輪読#7
PRML輪読#7
 
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5
 
クラス分類問題の各関数・処理の意味
クラス分類問題の各関数・処理の意味クラス分類問題の各関数・処理の意味
クラス分類問題の各関数・処理の意味
 
Naivebayes
NaivebayesNaivebayes
Naivebayes
 
DeepLearningBook勉強会 6.2章
DeepLearningBook勉強会 6.2章DeepLearningBook勉強会 6.2章
DeepLearningBook勉強会 6.2章
 
詳解 ディープラーニング輪読&勉強会 3章後半ニューラルネットワーク
詳解 ディープラーニング輪読&勉強会 3章後半ニューラルネットワーク詳解 ディープラーニング輪読&勉強会 3章後半ニューラルネットワーク
詳解 ディープラーニング輪読&勉強会 3章後半ニューラルネットワーク
 
Web本文抽出 using crf
Web本文抽出 using crfWeb本文抽出 using crf
Web本文抽出 using crf
 
Coreset+SVM (論文紹介)
Coreset+SVM (論文紹介)Coreset+SVM (論文紹介)
Coreset+SVM (論文紹介)
 
Datamining 5th knn
Datamining 5th knnDatamining 5th knn
Datamining 5th knn
 
お披露目会05/2010
お披露目会05/2010お披露目会05/2010
お披露目会05/2010
 
PRML輪読#4
PRML輪読#4PRML輪読#4
PRML輪読#4
 
Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会
 

Mais de Masaya Kaneko

Mais de Masaya Kaneko (12)

Unsupervised Collaborative Learning of Keyframe Detection and Visual Odometry...
Unsupervised Collaborative Learning of Keyframe Detection and Visual Odometry...Unsupervised Collaborative Learning of Keyframe Detection and Visual Odometry...
Unsupervised Collaborative Learning of Keyframe Detection and Visual Odometry...
 
GN-Net: The Gauss-Newton Loss for Deep Direct SLAMの解説
GN-Net: The Gauss-Newton Loss for Deep Direct SLAMの解説GN-Net: The Gauss-Newton Loss for Deep Direct SLAMの解説
GN-Net: The Gauss-Newton Loss for Deep Direct SLAMの解説
 
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
 
論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])
論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])
論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])
 
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
 
論文読み会2018 (CodeSLAM)
論文読み会2018 (CodeSLAM)論文読み会2018 (CodeSLAM)
論文読み会2018 (CodeSLAM)
 
SLAMチュートリアル大会資料(ORB-SLAM)
SLAMチュートリアル大会資料(ORB-SLAM)SLAMチュートリアル大会資料(ORB-SLAM)
SLAMチュートリアル大会資料(ORB-SLAM)
 
Direct Sparse Odometryの解説
Direct Sparse Odometryの解説Direct Sparse Odometryの解説
Direct Sparse Odometryの解説
 
ORB-SLAMの手法解説
ORB-SLAMの手法解説ORB-SLAMの手法解説
ORB-SLAMの手法解説
 
Dynamic Routing Between Capsules
Dynamic Routing Between CapsulesDynamic Routing Between Capsules
Dynamic Routing Between Capsules
 
論文読み会(DeMoN;CVPR2017)
論文読み会(DeMoN;CVPR2017)論文読み会(DeMoN;CVPR2017)
論文読み会(DeMoN;CVPR2017)
 
SLAM勉強会(PTAM)
SLAM勉強会(PTAM)SLAM勉強会(PTAM)
SLAM勉強会(PTAM)
 

コンピュータ先端ガイド2巻3章勉強会(SVM)