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
2.1k
supportvectormachine
yuki
January 24, 2021
Tweet
Share
More Decks by yuki
See All by yuki
240315_発表資料_清水.pdf
yuyumoyuyu
2
590
230315_symposium
yuyumoyuyu
1
430
220305_kenkyukai
yuyumoyuyu
2
79
221124_kenkyukai
yuyumoyuyu
0
340
voltageequation5
yuyumoyuyu
0
8.8k
210910_kenkyukai
yuyumoyuyu
0
220
210826_bumontaikai
yuyumoyuyu
0
100
voltageequation4
yuyumoyuyu
11
11k
210518_iemdc
yuyumoyuyu
0
94
Featured
See All Featured
For a Future-Friendly Web
brad_frost
176
9.5k
Agile that works and the tools we love
rasmusluckow
328
21k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
Producing Creativity
orderedlist
PRO
343
39k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
6
210
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Facilitating Awesome Meetings
lara
51
6.2k
Gamification - CAS2011
davidbonilla
80
5.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
GraphQLとの向き合い方2022年版
quramy
44
13k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
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 + :ハイパーパラメータ