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
サポートベクトルマシン(SVM)の勉強
Search
Kazuki Adachi
March 15, 2022
0
32
サポートベクトルマシン(SVM)の勉強
Kazuki Adachi
March 15, 2022
Tweet
Share
More Decks by Kazuki Adachi
See All by Kazuki Adachi
論文紹介:Joint Fine-Tuning in Deep Neural Networks for Facial Expression Recognition
kzkadc
0
40
論文紹介:Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization
kzkadc
0
48
論文紹介:Dueling Network Architectures for Deep Reinforcement Learning
kzkadc
0
220
論文紹介:Facial Action Unit Detection Using Active Learning and an Efficient Non-linear Kernel Approximation
kzkadc
0
23
論文紹介:Adversarially Learned One-Class Classifier for Novelty Detection
kzkadc
0
33
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Writing Fast Ruby
sferik
628
62k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Typedesign – Prime Four
hannesfritz
42
2.7k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
How GitHub (no longer) Works
holman
314
140k
The Invisible Side of Design
smashingmag
301
51k
Transcript
サポートベクトルマシン
目次 • Support Vector Machine(SVM)とは • SVMの特徴 • マージン最大化 •
ソフトマージンSVM • カーネル法 2
Support Vector Machine (SVM)とは • 教師あり学習で2クラス(正例,負例)の識別を行う – 教師あり学習: • 事前に学習データと正解(どのクラスに属するか)が与えられ,
それを基に学習を行う • 未知のデータに対しても分類を行えるようにする • SVMでは,特徴空間上で学習データを分離する 識別超平面を求める(線形分離) 3 正例 負例 識別超平面
SVMの特徴 • 線形モデルで識別するため学習データに特化し過ぎない • マージン最大化を行う – 学習データを分離できる超平面は無数にあるが, マージンが最大となるものを選択 – 学習データから少しずれた未知データが誤分類されにくい
→汎用性の高い学習 – マージン: • 識別面に最も近いデータ (サポートベクトル)と識別面の距離 4 マージン サポートベクト ル 識別面 正例 負例 識別面
マージン最大化 – 定式化(1) • 学習データの定義 – 数値特徴ベクトル 𝒙𝑖 – 正解情報(正例:1
or 負例:-1) 𝑦𝑖 – データの個数 𝑁 𝑖 = 1, … , 𝑁 – 特徴空間の次元数 𝑑 • 超平面 – 平面の概念を高次元に拡張したもの – 2次元空間の平面(=直線)→1次元 3次元空間の平面→2次元 𝑑次元空間の超平面→ 𝑑 − 1 次元 5 内積 超平面の方程式 … 法線ベクトル 識別面
マージン最大化 – 定式化(2) • 学習データ𝒙𝑖 が正例のとき 負例のとき となるようにする • 𝒙𝑖
と識別面の距離Dist 𝒙𝑖 • 識別面に最も近い(サポートベクトル)𝒙𝑖 に対して 以下のように𝒘, 𝑤0 を調整 6
マージン最大化 – 定式化(3) • Dist 𝒙𝑖 の最小値=マージンは となる • マージン最大化=
𝒘 最小化 • wの条件は識別面がすべての学習データを識別できること 正例・負例両方の条件がまとめて表せている 7
マージン最大化 – 定式化(4) • 微分を用いて解析を行うため,扱いやすいように 𝒘 の代わりに 𝒘 2/2の最小化を考える 8
条件:
マージン最大化 – ラグランジュの未定乗数法 • ラグランジュの未定乗数法を用いる • 目的関数𝑓 𝒙 を条件𝑔1 𝒙
, … , 𝑔𝑁 𝒙 ≥ 0の下で最適化 (主問題) – ラグランジュ関数の導入 – Lの極値を調べる問題に置き換わる – 最終的に,Lの𝝀に関する最大化問題になる(双対問題) – 双対問題を解くことで主問題の解を求める 9
マージン最大化 – KKT条件 • L(x,l)が極値を取るとき,以下のKarush-Kuhn-Tucker条件 (KKT条件)が成り立つ 10 相補性条件 制約 𝑓
𝒙 と𝑔𝑖 𝒙 の勾配ベクトルの向きが一致
マージン最大化 – 識別面の計算(1) • マージン最大化問題(主問題)にラグランジュの 未定乗数法を適用 • KKT条件より,Lが極値を取るとき 11 目的関数:
条件: :ラグランジュ乗数
マージン最大化 – 識別面の計算(2) • 計算すると となる • これをLに代入 aの関数になる 12
マージン最大化 – 識別面の計算(3) • マージン最大化問題が𝐿 𝜶 を最大化する問題に置き換わる (双対問題) • aに関する2次計画問題
• 最急降下法などのアルゴリズムで求まる – 適当な初期値から始める – 勾配方向に少しずつ移動する – 「少し」=学習係数hとすると,更新式は – 更新を繰り返し,更新量が一定値以下になったら終了 13 最大
マージン最大化 – 識別面の計算(4) • サポートベクトルに対応する𝛼𝑖 のみ𝛼𝑖 ≠ 0 それ以外は𝛼𝑖 =
0 – 識別面を決めるのはサポートベクトル – 相補性条件に対応 • KKT条件の式からwが求まる 14
マージン最大化 – 識別面の計算(5) • 𝑤0 も求める – 正例のサポートベクトル𝒙+ – 負例のサポートベクトル𝒙−
• マージンが最大になる識別面が求まった 15
ソフトマージンSVM(1) • いつも超平面で学習データを完全に分離できるとは限らない • 誤識別されているデータがあっても良いことにするが, 識別面から大きく離れないようにする (完全に分離する場合:ハードマージンSVM) 16 正例 負例
識別超平面
ソフトマージンSVM(2) • 制約を弱める • 𝜉𝑖 ≥ 0 :スラック変数 – 𝜉𝑖
= 0のとき,正しく識別できている – 0 ≤ 𝜉𝑖 ≤ 1のとき,データが マージン内に入り込んでいる – 1 ≤ 𝜉𝑖 のとき, 間違って識別されている • 𝜉𝑖 が大きいほど正しい分類から外れる→小さいほうが良い • マージン最大化(= 𝒘 2/2最小化)問題に付け加える 17 マージン 識別面
ソフトマージンSVM(3) • 主問題 • C:制約を満たさないデータのペナルティ – Cが大きいと影響が大きい(厳しい) – Cが小さいと影響が小さい(緩い) 18
条件:
ソフトマージンSVM(4) • ハードマージンSVMと同様にラグランジュの未定乗数法を 適用すると同じ式になる →最大化(双対問題) • 制約0 ≤ 𝐶 ≤
𝛼𝑖 が加わる • 後はハードマージンSVMの場合と同様 →できるだけ誤分類データが識別面から離れないような 識別面が得られる(𝐶 → ∞でハードマージンSVMと一致) 19
カーネル法(1) • 特徴空間の次元数dが大きいと,データを分離できる 識別超平面が存在する可能性が高くなる • 特徴ベクトルを高次元空間に写像してからSVMで識別面を 求める 20 識別超平面 元の空間
高次元空間 元の空間
カーネル法(2) • 識別に無関係な特徴をむやみに増やしても 本来の分布の性質が壊れるだけで意味は無い • 元の空間でのデータの分布の性質が保たれる =距離関係が保存されるような非線形写像が良い • そのような非線形写像𝜙は? 21
カーネル法(3) • カーネル関数𝐾 𝒙, 𝒙′ の導入 – 元の空間上の2点𝒙, 𝒙′の距離に基いて定義 •
非線形写像𝜙に対して を仮定 – カーネル関数により元の空間での2点間の距離の情報を 高次元空間での内積として保存 • 写像後の空間での識別関数 22
カーネル法(4) KKT条件 を代入 23
カーネル法(5) • マージン最大化の問題は の最大化問題になる • 𝐿 𝜶 からも𝑔 𝜙 𝒙
からも𝜙が消えた →Kを定めれば非線形変換を求めなくてよい →高次元ベクトルの内積計算もしなくて良い (カーネルトリック) • 文書分類やバイオインフォマティックスなどに応用される 24
カーネル法(6) • Kが正定値性という条件を満たす(ある特徴空間での 内積として解釈できる)とき𝜙が存在 • カーネル関数の例 – 多項式カーネル関数 – ガウシアンカーネル関数
25 (𝑝:自然数) (σ:バンド幅)
まとめ • 以下の3つについて説明した – SVMの原理・マージン最大化 – ソフトマージンSVM – カーネル法 •
特にカーネル法は強力な手法である – 非線形写像を求めなくて済む – 高次元のベクトルの内積の計算を回避できる 26
参考 荒木 雅弘:”フリーソフトではじめる機械学習入門”, 森北出版株式会社,2014年,pp. 115-127 27