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
supportvectormachine
Search
yuki
January 24, 2021
0
2k
supportvectormachine
yuki
January 24, 2021
Tweet
Share
More Decks by yuki
See All by yuki
240315_発表資料_清水.pdf
yuyumoyuyu
2
560
230315_symposium
yuyumoyuyu
1
410
220305_kenkyukai
yuyumoyuyu
2
63
221124_kenkyukai
yuyumoyuyu
0
300
voltageequation5
yuyumoyuyu
0
8.2k
210910_kenkyukai
yuyumoyuyu
0
210
210826_bumontaikai
yuyumoyuyu
0
84
voltageequation4
yuyumoyuyu
9
10k
210518_iemdc
yuyumoyuyu
0
78
Featured
See All Featured
Speed Design
sergeychernyshev
24
610
Music & Morning Musume
bryan
46
6.2k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Designing for humans not robots
tammielis
250
25k
Navigating Team Friction
lara
183
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
100
Transcript
サポートベクターマシン Support Vector Machine SVM 大阪府立大学 工学研究科 清水 悠生
2 2クラス分類問題 ✓ 入力データから2つのクラスのどちらに属するかを 判断する問題を2クラス分類問題という ✓ 例えば,出力電流・電圧から回路の正常/異常を判断するetc ✓ 入力データとクラスのデータの組を訓練データとして 複数与え,事前に学習させる
Class A Class B x 1 x 2
3 線形2クラス分類問題の定義 ✓ n個の訓練データが与えられたときに それらを最もよく分類できる分類境界 f(x)=0 を学習 Class A Class
B x 1 x 2 > 0 ⇔ ラベル y = 1 分類境界: = T + = 0 < 0 ⇔ ラベル y = -1 i番目のデータ (x(i), y(i))とする = 1 1 + ⋯ + + = T + 1 , … , :入力変数 1 , … , :重み係数 :次元数 :バイアス 2次元の例
4 分類境界のマージンを考える ✓ 分類境界を挟んで2つのクラスがどのくらい 離れているかをマージンと呼ぶ ✓ 最も大きいマージンをもつ分類境界を求める手法 ⇒サポートベクターマシン(SVM) x 1
x 2 = 0 マージン マージン:大 x 1 x 2 = 0 マージン マージン:小 マージンが大きいほうがより優れた分類境界であると判断!
5 マージン評価のための点と直線の距離の公式 ✓ 2次元平面上の点と直線の距離は次式で表され m次元空間上でも同様の形式で表現できる 直線: 1 1 + 2
2 + = 0 2次元 m次元(図はm=3) 距離 = 1 1 () + 2 2 () + 1 2 + 2 2 点 1 (), 2 () 点と直線の距離の 公式(高校数学)より (超)平面: 1 1 + ⋯ + + = 0 距離 点 1 (), … , () = 1 1 () + ⋯ + () + 1 2 + ⋯ + 2 = ()T + 2次元から m次元に拡張 ∙ : ベクトル の長さ
6 マージンの定式化 ✓ 分類境界で全てのデータが正しく分類できる場合を考える ✓ 分類境界から最も近いデータをサポートベクターと呼ぶ ✓ 分類境界とサポートベクターの距離でマージンは決定する x 1
x 2 > 0 ⇔ ラベル y = 1 < 0 ⇔ ラベル y = -1 マージンの大きさ (′)T + = (′) (′)T + サポートベクター (x(i’), y(i’))とする > 0 ⇔ = 1 < 0 ⇔ = −1 より は常に正 マージン = T + = 0
7 ハードマージンSVMの定式化 ✓ サポートベクターはデータの中で最も分類境界に近いため マージン最大化問題は次式のように定式化できる max , (′) (′)T +
. . () ()T + ≥ ′ ′ T + = 0, … , サポートベクタが最も分類境界に近い マージンの最大化 max , 1 . . () ()T + ≥ 1 = 0, … , ⟺ min , 2 . . () ()T + ≥ 1 = 0, … , ⟶ ′ ′ T + , ⟶ ′ ′ T + 係数ベクトルのスケーリング この最適化問題が標準的な定式化 全データを正しく分類可能という仮定はハードマージンと呼ばれる 係数ベクトルを 定数倍しても マージンは変わらない
8 ソフトマージンSVMへの拡張 ✓ ハードマージンでは全データを正しく分類可能との 仮定をおいたが,現実的にはそうでない場合も多い ✓ そのため,分類可能でない場合に拡張する ⇒ソフトマージンSVMと呼ばれる x 1
x 2 Class A Class B 全てのデータを 完璧に分類できるとは 限らない!
9 ソフトマージンの考え方 ✓ ソフトマージンではデータが マージンを超えることを許容! ✓ ハードマージンのように訓練データからマージンを 決定できないため f(x) =
±1 をマージンとして定義 x 1 x 2 マージン = 0 = 1 = −1
10 マージンを±1で定義すると何が嬉しいのか ✓ f(x) = ±1 をマージンとして定義すると 各点の y(i)f(x(i)) から位置と正解/不正解が簡単にわかる!
x 1 x 2 = 0 = 1 = −1 () > 1 の領域(マージン外) 赤(正解)なら () () > 1 青(誤分類)なら () () < −1 i番目のデータ (x(i), y(i)) () < −1 の領域(マージン外) 青(正解)なら () () > 1 赤(誤分類)なら () () < −1 0 < () < 1 の領域(マージン内) 赤(正解)なら 0 < () () < 1 青(誤分類)なら 0 > () () > −1 0 > () > −1 の領域(マージン内) 青(正解)なら 0 < () () < 1 赤(誤分類)なら 0 > () () > −1
11 ソフトマージンへの制約条件の拡張 ✓ マージンを超えることを許容するため ハードマージンの制約条件を緩和することで ソフトマージンに拡張する min , 2 .
. () ()T + ≥ 1 = 0, … , ハードマージンSVMの最適化問題 「全てのデータがマージン内部に入ってはいけない」 という制約(前ページの () () > 1 の箇所参照) min , 2 . . () ()T + ≥ 1 − , ≥ 0 = 0, … , () () が負の値をとれる(マージンを超えられる) ように,非負のスラック変数 ξ i を導入 ソフトマージンへの拡張 ただし = ቊ 0 () − () (点が正しく分類,かつマージンの外側) (それ以外)
12 スラック変数の取りうる値 ✓ 導入したスラック変数はデータと分類境界, マージンとの位置関係によって変動する min , 2 . .
() ()T + ≥ 1 − , ≥ 0 = 0, … , x 1 x 2 = 0 = 1 = −1 Class A の場合 緩和前の制約 () ()T + ≥ 1 を 既に満たしており, = 0 でよい マージンよりも正解側の領域 マージンよりも内側だが 分類境界よりは正解側の領域 1 > () ()T + > 0 となるため 1 > > 0 となる 分類境界を超える領域(誤分類) () ()T + < 0 となるため > 1 とする必要がある
13 サポートベクターマシンの主問題 ソフトマージンSVMの主問題 ✓ 前頁の議論から,スラック変数は小さければ小さいほど 誤分類を抑制できることがわかる ✓ そのため,ソフトマージンSVMの最適化問題を 目的関数にスラック変数を追加し次式のように定義する min
,, 1 2 2 + =0 . . () ()T + ≥ 1 − , ≥ 0 = 0, … , ここで = 0 , … , T ハイパーパラメータ C は2つの項を調整するハイパーパラメータであり C=∞ のとき,全てのスラック変数が0である必要があるため ソフトマージンはハードマージンに一致する 誤分類を減らす マージンを 最大化する
14 主問題から双対問題へ ✓ サポートベクター回帰の主問題は直接解くことも可能 ✓ が,双対問題に変換することで下記のメリットが存在 ① 主問題よりも解きやすい場合が存在 ② 非線形化がしやすい形式に
✓ そのため,主問題をさらに双対問題に変換する min ,, 1 2 2 + =0 s. t. () T + ≥ 1 − , ≥ 0 = 0,1, … , サポートベクターマシンの主問題
15 ラグランジュの未定乗数法による変換 ✓ ラグランジュの未定乗数法により主問題を max-min問題に変換する max ≥,≥ min ,, ,
, , , , , , , = 1 2 2 + =0 − =0 () T + − 1 + − =0 以下は全て新たに 導入する非負の変数 = 0 , … , T = 0 , … , T ラグランジュ関数の導入 変換したmax-min問題 min ,, 1 2 2 + =0 s. t. () T + ≥ 1 − , ≥ 0 = 0,1, … , この問題が主問題と等価 であることの証明は省略 (参考文献参照)
16 主変数と双対変数 ✓ もとの主問題の変数を主変数, あらたに追加した変数を双対変数と呼ぶ ✓ max-min問題から主変数を消すことで双対問題が得られる ✓ そのため,ラグランジュ関数を主変数に関して最小化する 主変数
双対変数 max ≥,≥ min ,, , , , ,
17 ラグランジュ関数の主変数による最小化 ✓ ラグランジュ関数は主変数に対して微分可能であるため 各主変数で偏微分して0とすることで関係式を求める (偏微分して0となる点で最小となる) = − =0
() = ⇔ = =0 () = − =0 () = 0 = − − = 0, = 0,1, … , , , , , = 1 2 2 + =0 − =0 () T + − 1 + − =0 ラグランジュ関数 主変数による偏微分
18 主変数を削除する ✓ 前ページで求めた関係式をラグランジュ関数に適用し 双対変数のみの関数に変形(主変数に対して最小化する) が計算過程で削除できるため のみの関数となる! , , ,
, = 1 2 2 + =0 − =0 () T + − 1 + − =0 = 1 2 2 + =0 − − − =0 () T − =0 () + =0 = 1 2 =0 =0 ()() T − =0 =0 ()() T + =0 = − 1 2 =0 =0 ()() T + =0 まとめる 関係式を適用 まとめる = =0 () , =0 () = 0 − − = 0, = 0,1, … , 偏微分による関係式
19 双対問題が完成 ✓ 双対変数の非負条件と偏微分で得られた関係式から 下記の範囲制約が求まる 0 ≤ , 0 ≤
= − ⟹ 0 ≤ ≤ ✓ よって,双対問題は次式のように求まる ✓ 双対問題を解くと α が求められる max − 1 2 =0 =0 ()() T + =0 s. t. =0 () = 0, 0 ≤ ≤ = 0, … , サポートベクターマシンの双対問題
20 サポートベクターマシンの分類境界 ✓ 偏微分から得られた関係式より, サポートベクターマシンの分類境界は次式の通り ✓ 双対問題の解 α と入力データ x(i)
によって サポートベクターマシンの分類境界が求まる! ✓ バイアス b の導出は次のスライド参照 = T + = =0 () T + = 0
21 バイアスの計算 ✓ 双対問題にはバイアス b が存在しないため導出できない ✓ バイアス b はサポートベクターから計算
✓ サポートベクターが複数存在する場合は平均をとる (′) (′) = 1 ⇔ = (′) − =0 () (′) T x 1 x 2 サポートベクター (x(i’), y(i’)) = 0 = 1 = −1
22 非線形写像 ✓ 線形の直線,(超)平面では正しく分類が行えない場合が 多く存在する ✓ 入力変数を高次元の空間に拡張(非線形写像)することで 様々な分類境界を表現可能となる 非線形写像: ⟼
2 + x,yの2次元平面上では 直線では分類できない 曲線(非線形)で分類する必要あり x,x2,yの3次元空間上では 平面(線形)で分類可能に! y = 2 + y = 2 +
23 非線形写像したSVM ✓ 入力変数 x を何らかの特徴空間に写像する関数 Φ を 考えると,双対問題・分類境界は次式のようになる =
T + = =0 () T + = 0 max − 1 2 =0 =0 ()() T + =0 s. t. =0 () = 0,0 ≤ ≤ = 0,1, … , 双対問題 分類境界
24 カーネル関数による非線形写像 ✓ 前頁で Φ は内積 ΦΦT の形でしか現れないため ΦΦTをカーネル関数 K
に置き換える ✓ 適切なカーネル関数を選ぶことで Φ(x) を直接計算せずとも内積を算出することが可能に , = T = =0 () , + max − 1 2 =0 =0 ()() , + =0 双対問題の目的関数 回帰関数 カーネル関数の定義
25 カーネル関数の例 ✓ カーネル関数は例えば以下のようなものが存在 ✓ RBFカーネルが最もよく用いられる , = exp −
− 2 22 = exp − − 2 RBFカーネル(ガウシアンカーネル) 線形カーネル , = T 多項式カーネル , = 1 + T シグモイドカーネル , = tanh T + :ハイパーパラメータ