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
31
サポートベクトルマシン(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
47
論文紹介: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
22
論文紹介:Adversarially Learned One-Class Classifier for Novelty Detection
kzkadc
0
33
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.8k
A Modern Web Designer's Workflow
chriscoyier
693
190k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Producing Creativity
orderedlist
PRO
346
40k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
4 Signs Your Business is Dying
shpigford
184
22k
Practical Orchestrator
shlominoach
188
11k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
The Pragmatic Product Professional
lauravandoore
35
6.7k
How to Ace a Technical Interview
jacobian
276
23k
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