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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Y. Yamamoto
PRO
June 01, 2026
Science
1.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
機械学習 - SVM
1. サポートベクターマシン
2. 非線形SVM
Y. Yamamoto
PRO
June 01, 2026
More Decks by Y. Yamamoto
See All by Y. Yamamoto
データベース09: 実体関連モデル上の一貫性制約
trycycle
PRO
0
1.2k
機械学習 - ニューラルネットワーク入門
trycycle
PRO
0
1k
データベース08: 実体関連モデルとは?
trycycle
PRO
0
1.1k
機械学習 - K近傍法 & 機械学習のお作法
trycycle
PRO
0
1.5k
データベース06: SQL (3/3) 副問い合わせ
trycycle
PRO
1
970
データベース05: SQL(2/3) 結合質問
trycycle
PRO
0
1.2k
機械学習 - DBSCAN
trycycle
PRO
0
1.8k
データベース04: SQL (1/3) 単純質問 & 集約演算
trycycle
PRO
0
1.5k
機械学習 - K-means & 階層的クラスタリング
trycycle
PRO
0
1.6k
Other Decks in Science
See All in Science
なぜエネルギーは保存する? 〜自由落下でわかる“対称性”とネーターの定理〜
syotasasaki593876
0
180
Tensor Factorization Meets Deformed Information Geometry: Convex Relaxation under Deformed Algebra
gkazunii
0
110
白金鉱業Meetup_Vol.20 効果検証ことはじめ / Introduction to Impact Evaluation
brainpadpr
2
1.9k
Bリーグのショットデータを活用した得点期待値モデルの構築 / Construction of expected points model using shot data of B.LEAGUE
konakalab
0
140
Testing the Longevity Bottleneck Hypothesis
chinson03
0
310
防災デジタル分野での官民共創の取り組み (1)防災DX官民共創をどう進めるか
ditccsugii
0
660
フィードフォワードニューラルネットワークを用いた記号入出力制御系に対する制御器設計 / Controller Design for Augmented Systems with Symbolic Inputs and Outputs Using Feedforward Neural Network
konakalab
0
140
会社でMLモデルを作るとは @電気通信大学 データアントレプレナーフェロープログラム
yuto16
1
710
How we plan to publish 1,000 bio-logging datasets to GBIF and OBIS
peterdesmet
0
100
Physical AIを支えるWeights & Biases
olachinkei
1
370
検索と推論タスクに関する論文の紹介
ynakano
1
230
「遂行理論の未来」(松島斉教授最終講義記念セッションの発表資料)
shunyanoda
0
910
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
7k
Automating Front-end Workflow
addyosmani
1370
210k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
330
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
210
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Abbi's Birthday
coloredviolet
2
8k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
280
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
The SEO Collaboration Effect
kristinabergwall1
1
480
Transcript
分類問題2: サポートベクターマシン 第7回 機械学習発展 (導入編) ⼭本 祐輔 名古屋市⽴⼤学 データサイエンス研究科
[email protected]
授業資料 2 https://mlnote.hontolab.org/
講義のトピック 機械学習 教師あり学習 教師なし学習 強化学習 ・クラスタリング ・データ圧縮 ・分類 ・回帰 …
… 3 行動情報学科に 特有の応用手法 ・K近傍法 ・サポートベクタマシン ・ニューラルネットワーク
K-近傍法(k-NN: k nearest neighbor)のアイデア 4 対象データまでの距離が最も近いK個のデータの ラベルのうち、最も多いラベルに分類する ? K=5:⻘ K=3:緑
K=1:⻘ 多 数 決
K-近傍法のメリット・デメリット 5 メリット • 単純なのに強⼒ • データの背後にある分布を仮定しなくてよい (ノンパラメトリックな⼿法) デメリット •
推論フェーズの計算量が⼤きい(毎回の距離計算) • 次元の呪いの影響を受けやすい
教師あり学習のための機械学習アルゴリズムの分類 6 ロジスティック回帰 ナイーブベイズ サポートベクターマシン K近傍法 ランダムフォレスト & 決定木 ニューラルネットワーク
訓練データをすべて記憶して おき,それら全部を使って 予測を⾏う(推論計算が遅い) 訓練データの背後にあるモデル を抽出し,それを予測時に使う (推論計算は速い) インスタンスベース モデルベース 本⽇学ぶのはコレ
1 一世を風靡した学習アルゴリズム サポートベクターマシン 7
教師あり学習の歴史(⼀部抜粋) ロジスティック回帰 サポートベクターマシン 決定木 パーセプトロン 単純ベイズ分類器 ランダムフォレスト k-近傍法 ベイジアンネットワーク 深層学習
1958年 1957年 1951年 1979年 1985年 1992年 1960年代 2001年 2010年代 8 ⼀世を⾵靡した強⼒なアルゴリズム. 深層学習が台頭した今でも,状況に よっては⽤いられることも.
サポートベクターマシン(SVM) 入力 ・ベクトルデータ ・正則化係数 𝐶 ・カーネル関数 𝐾 学習 by SVM
9 それほど多くないデータでも精度よく推論したい時に有効 ID 血圧 (上) 喫煙 頻度 年齢 心臓 疾患 1 110 5 74 なし 2 160 17 53 あり … … … … … ⼼臓疾患データ 学習済み モデル ML 血圧 … 疾患 124 ? 未知データ 推論 ⼼臓疾患あり 出力 ラベル(基本的には2値)
2次元平⾯上で考える分類問題 •と×のデータ集合が与えられたときに, 未知の2次元データが•か×をどう予測する? Q. X 0 Y ? ▲ ?
▲ 10
2次元平⾯上で考える分類問題 •と×のデータを2分するような直線を見つける A. X 0 Y ? ▲ ? ▲
直線より下側なら「•」 直線より上側なら「×」 ax+by+c=0 11
2次元平⾯上で考える分類問題 •と×のデータを2分するような直線を見つける A. X 0 Y 直線といっても複数考えられる…どれがベストか? A B C
12
機械学習の⾄上命題 13 機械学習 汎化性能の高い 予測モデルの構築 未知データに対する予測性能を⾼める必要あり (訓練データに最適化しすぎても意味がない(過学習))
2次元平⾯上で考える分類問題 X 0 Y ▲ ▲ ▲ ▲ 学習に使用したデータは 真の分布を完全に表現しているとは限らない
▲ ▲ できる限り未知のデータにも対応できる直線にしたい… 14
2次元平⾯上で考える分類問題 X 0 Y A B C 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q.
15
2次元平⾯上で考える分類問題 X 0 Y A 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q. 16 B
2次元平⾯上で考える分類問題 X 0 Y B 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q. 17
2次元平⾯上で考える分類問題 X 0 Y C 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q. 18 B
2次元平⾯上で考える分類問題 X 0 Y 直線に最も近い訓練データから直線までの距離 (マージン)が最大となるような直線がベスト!! A. 19 B
2次元平⾯上で考える分類問題 X 0 Y A 20 直線に最も近い訓練データから直線までの距離 (マージン)が最大となるような直線がベスト!! A.
2次元平⾯上で考える分類問題 X 0 Y C 21 直線に最も近い訓練データから直線までの距離 (マージン)が最大となるような直線がベスト!! A.
サポートベクター (直線に最も近い点) サポートベクターマシンの直感的なアイデア X 0 Y マージンを最大化する超平面を見つける (分類境界とサポートベクターの距離) 𝑔(𝒙) =
0 サポートベクター (直線に最も近い点) 22
数学的準備:超平⾯の数式表現(1/2) 23 x y x y z 2次元空間での直線 𝑎𝑥 +
𝑏𝑦 + 𝑐 = 0 𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑 = 0 3次元空間での平⾯
数学的準備:超平⾯の数式表現(2/2) 24 x1 2次元空間での直線 𝑤# 𝑥# + 𝑤$ 𝑥$ +
𝑤% = 0 𝑤! 𝑥! + 𝑤" 𝑥" + ⋯ + 𝑤# = 0 N次元空間での超平⾯ x2 𝒙 = (𝑥! , 𝑥" ) ? x1 x2 xN ベクトルwとxの内積 w=(w1 , w2 ) ※ 実は wは法線ベクトル ⟹ 𝒘&𝒙 + 𝑤% = 0
数学的準備:2次元空間での点と直線間の垂直距離 25 x1 直線: 𝑤! 𝑥! + 𝑤" 𝑥" +
𝑤# = 0 x2 (𝑥! ′, 𝑥" ′) 𝐿 = |𝑤! 𝑥! $ + 𝑤" 𝑥" $ + 𝑤# | 𝑤! " + 𝑤" " ⾼校で習った公式 L
数学的準備:N次元空間での点と超平⾯の間の距離 26 |𝑤!𝑥! " + ⋯ + 𝑤#𝑥#′ + 𝑤$|
𝑤! % + ⋯ + 𝑤# % = |𝒘%𝒙$ + 𝑤# | 𝒘 x1 x2 xN 𝒙$ = (𝑥! $ , 𝑥" $ , … , 𝑥% ′) 𝐿 = L 直線: 𝒘𝑻𝒙 + 𝑤# = 0 ベクトルで表現 (𝑔 𝒙 = 𝒘𝑻𝒙 + 𝑤# ) = |𝑔(𝒙)| 𝒘
サポートベクターマシンの定式化: 設定 X1 0 Xn N次元空間上の点 𝑖 : 𝒙 &
= (𝑥! & , … , 𝑥' (&)) 点 𝑖 のラベル値 y(&) = * 1 −1 … 点 𝑖 が×の場合 … 点 𝑖 が•の場合 27
サポートベクターマシンの定式化: 設定 X1 0 Xn N次元空間上の点 𝑖 : 𝒙 &
= (𝑥! & , … , 𝑥' (&)) 点 𝑖 のラベル値 y(&) = * 1 −1 … 点 𝑖 が×の場合 … 点 𝑖 が•の場合 y = −1の点 y = 1の点 28
サポートベクターマシンの定式化 : ⽬標設定(1/2) X1 0 Xn 点 𝑖 について y(&)
= 1 の場合,𝑔(𝒙 & ) ≥ 1 y(&) = −1の場合,𝑔 𝒙 & ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 𝑔 𝒙 = 0 (𝑔 𝒙 = 𝒘!𝒙" + 𝑤# ) 29
サポートベクターマシンの定式化 : ⽬標設定(2/2) X1 0 Xn 目標2: 𝑔(𝒙) のマージンを最大化させたい 𝑔
𝒙 = 0 (𝑔 𝒙 = 𝒘!𝒙" + 𝑤# ) ×で 𝑔 𝒙 に 最も近い点 𝑗 •で 𝑔 𝒙 に 最も近い点 𝑖 𝐿' 𝐿( ⟹ argmax 8 𝐿9 + 𝐿: 30 分離超平⾯に最も近いデータはサポートベクトルと呼ばれる
サポートベクターマシンの最適化問題を解く 点 𝑖 について y(") = 1 の場合,𝑔(𝒙 " )
≥ 1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax 8 𝐿9 + 𝐿: … 式(1) … 式(2) y(") = −1の場合,𝑔 𝒙 " ≤ −1 31
サポートベクターマシンの最適化問題を解く 点 𝑖 について y(") = 1 の場合,𝑔(𝒙 " )
≥ 1 y(") = −1の場合,𝑔 𝒙 " ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax 8 𝐿9 + 𝐿: … 式(1) … 式(2) ⟹ argmax 𝒘, (! |𝑔(𝒙(*))| 𝒘 + |𝑔(𝒙 , )| 𝒘 点と超平⾯間の距離公式 32
サポートベクターマシンの最適化問題を解く 点 𝑖 について y(") = 1 の場合,𝑔(𝒙 " )
≥ 1 y(") = −1の場合,𝑔 𝒙 " ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax 8 𝐿9 + 𝐿: … 式(1) … 式(2) 式(1)より ≥ argmax 𝒘, (! 1 𝒘 + 1 𝒘 = argmax 𝒘, (! 2 𝒘 (𝑔 𝒙 = 𝒘!𝒙" + 𝑤# ) ⟹ argmax 𝒘, (! |𝑔(𝒙(*))| 𝒘 + |𝑔(𝒙 , )| 𝒘 33
サポートベクターマシンの最適化問題を解く 点 𝑖 について y(") = 1 の場合,𝑔(𝒙 " )
≥ 1 y(") = −1の場合,𝑔 𝒙 " ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax 8 𝐿9 + 𝐿: … 式(1) … 式(2) ≥ argmax 𝒘 1 𝒘 + 1 𝒘 = argmax 𝒘 2 𝒘 ⟹ argmin 𝒘, (! 𝒘 2 逆数の最⼩化と等価 34
サポートベクターマシンの最適化問題を解く 点 𝑖 について y(") = 1 の場合,𝑔(𝒙 " )
≥ 1 y(") = −1の場合,𝑔 𝒙 " ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax 8 𝐿9 + 𝐿: … 式(1) … 式(2) ≥ argmax 𝒘 1 𝒘 + 1 𝒘 = argmax 𝒘 2 𝒘 ⟹ argmin 𝒘 𝒘 2 2乗を最⼩化 しても同じ ⟹ argmin 𝒘 𝒘 " 2 35
サポートベクターマシンの最適化問題:問題設定の変形 点 𝑖 について y(") = 1 の場合,𝑔(𝒙 " )
≥ 1 y(") = −1の場合,𝑔 𝒙 " ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax 8 𝐿9 + 𝐿: … 式(1) … 式(2) ⟹ argmin 𝒘 𝒘 $ 2 … 式(3) 最⼩化問題!! SVMの最適化は不等式制約下の最小化問題に帰着される (不等式制約) 36
数理最適化の定⽯ 37 (不)等式制約下での 関数最小化 ラグランジュの未定乗数法
サポートベクターマシンに関する最適化問題の最終形 38 𝐹(𝜆(!), … , 𝜆(#)) = @ &0! #
𝜆(&) − 1 2 @ &0! # @ 10! # 𝜆(&)𝜆(1)𝑦(&)𝑦(1)𝒙 & 2𝒙(1) ∑!"# $ 𝜆(!)𝑦(!) = 0 および 𝜆(#) …, 𝜆(') ≥ 0 の条件下で を最⼤化する 𝜆 ! を⾒つける(ただし 𝒘 = ∑&0! # 𝜆(&)𝑦(&)𝒙(&)) ラグランジュの未定乗数法 (𝑖 = 1, … , 𝑁) ベクトルの内積
サポートベクターマシンの最適化を例で考える(1/4) X1 0 X2 𝑔 𝒙 = 0 (𝑔 𝒙
= 𝑤$ 𝑥$ + 𝑤% 𝑥% + 𝑤# ) 𝒙 $ = (3, 4) 𝒙 % = (1,2) 𝒙 & = (2, 6) 学習データとして2次元のデータが3つ与えられたとし, SVMを適用して最適な分離境界線を見つけたい 39 (𝑦 ! = 1) (𝑦 " = 1) (𝑦 # = −1)
サポートベクターマシンの最適化を例で考える(2/4) 40 𝐹(𝜆(!), 𝜆(%), 𝜆(:)) = @ &0! : 𝜆(&)
− 1 2 @ &0! : @ 10! : 𝜆(&)𝜆(1)𝑦(&)𝑦(1)𝒙 & 2𝒙(1) ただし 𝒘 = 𝜆(!)𝑥(!) − 𝜆 " 𝑥 " + 𝜆(/)𝑥(/) = 3𝜆 ! − 𝜆 " + 2𝜆(/) 4𝜆 ! − 2𝜆 " + 6𝜆(/) + 𝜆(!) − 𝜆 % + 𝜆(:) = 0 および 𝜆(!), 𝜆(%), 𝜆(:) ≥ 0 の条件下で 以下の関数F を最⼤化したい
サポートベクターマシンの最適化を例で考える(3/4) 41 𝜆(!) − 𝜆 % + 𝜆(:) = 0
および 𝜆(!), 𝜆(%), 𝜆(:) ≥ 0 の条件下で 以下の関数F を最⼤化したい + = − 25 2 𝜆 ! % − 5 2 𝜆(%) % − 20 𝜆(:) % +11𝜆(!)𝜆(%) + 14𝜆 % 𝜆 : − 30𝜆 : 𝜆 ! − 𝜆 ! + 𝜆 % − 𝜆(:) 𝐹 𝜆 ! , 𝜆 % , 𝜆 :
微分などを駆使し,各変数についてFを最⼤化すればよい サポートベクターマシンの最適化を例で考える(4/4) 42 𝜆(!) − 𝜆 % + 𝜆(:) =
0 および 𝜆(!), 𝜆(%), 𝜆(:) ≥ 0 の条件下で 以下の関数F を最⼤化したい = − 25 2 𝜆 ! % − 5 2 𝜆(%) % − 20 𝜆(:) % +11𝜆(!)𝜆(%) + 14𝜆 % 𝜆 : − 30𝜆 : 𝜆 ! − 𝜆 ! + 𝜆 % − 𝜆(:) 𝐹 𝜆 ! , 𝜆 % , 𝜆 : 𝐹(𝜆 ! ) = … 𝜆 ! " + … 𝜆(!) + … 変数1つに着⽬すれば…単なる2次関数!! ゼロでない λ に紐付いたデータがサポートベクター いわゆる 2次計画問題!
理想世界でのサポートベクターマシン X1 0 Xn 1 𝒘 サポートベクター サポートベクター マージンの外側でデータの分布がキレイに分かれる 𝑔(𝒙)
= 0 この領域には データはない 43
サポートベクターマシンを使う現実的な状況 X1 0 Xn ノイズ1 ノイズ2 ノイズ3 学習で使うデータにノイズが混入する 44
サポートベクターマシンを使う現実的な状況 X1 0 Xn ノイズ1 ノイズ2 ノイズ3 𝜉! 𝜉- 𝜉"
学習で使うデータにノイズが混入する ノイズを考慮してサポートベクターマシンを修正したい… 45
サポートベクターマシン with ハードマージン の最適化問題 点 𝑖 について y(") = 1
の場合,𝑔 𝒙 " ≥ 1 y(") = −1の場合,𝑔 𝒙 " ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmin 𝒘 𝒘 $ 2 46
サポートベクターマシン with ソフトマージン の最適化問題 点 𝑖 について y(") = 1
の場合,𝑔 𝒙 " ≥ 1 − 𝜉" y(") = −1の場合,𝑔 𝒙 " ≤ −(1 − 𝜉") 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmin 𝒘 𝒘 $ 2 + 𝐶 9 9I# J 𝜉9 反対側に⾏っても 認めてあげる (𝜉 ≥ 0) 反対側に⾏った分は ペナルティを与える 47
サポートベクターマシン with ソフトマージン に関する最適化問題の最終形 48 𝐹(𝜆(!), … , 𝜆(#)) =
@ &0! # 𝜆(&) − 1 2 @ &0! # @ 10! # 𝜆(&)𝜆(1)𝑦(&)𝑦(1)𝒙 & 2𝒙(1) ∑!"# $ 𝜆(!)𝑦(!) = 0 および ∀𝑖, 𝜆(!), 𝜉(!) ≥ 0 の条件下で を最⼤化する 𝜆 ! を⾒つける(ただし 𝒘 = ∑&0! # 𝜆(&)𝑦(&)𝒙(&) , ラグランジュの未定乗数法 (𝑖 = 1, … , 𝑁) ∀𝑖, 𝐶 = 𝜆 ' + 𝜇 ' , 𝜇 ' 𝜉 ' = 0)
Hands-on タイム 以下のURLにアクセスして, サポートベクターマシンを体験してみましょう https://mlnote.hontolab.org/ 49
2 「トリック」を使う 非線形SVM 50
線形分離不可能な問題 51 X 0 Y どうやっても1つの直線で分離できないデータ分布がある 線 形 分 離
不 可 能
線形分離不可能な問題の解決策 52 X 0 Y 0 X Y Z =
X2+Y2 複数の直線(超平面)を 組み合わせる 高次元化された空間で 分離超平面を見つける
データの⾼次元化の例 53 𝒙 = (𝑥! , 𝑥" ) 𝒙# =
(1, 2𝑥! , 2𝑥" , 2𝑥! 𝑥" , 𝑥! ", 𝑥" ") : 2次の多項式に写像(変換) 𝜙(𝒙) 線形分離不能なデータも 高次元化すればSVMで分類しやすくなる
⾼次元化対応のサポートベクターマシンの最適化問題(1/2) 点 𝑖 について y(&) = 1 の場合,𝑔 𝜙(𝒙 &
) ≥ 1 − 𝜉& y(&) = −1の場合,𝑔 𝜙(𝒙 & ) ≤ −(1 − 𝜉&) 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmin 𝒘 𝒘 " 2 + 𝐶 , #$% & 𝜉# ⾼次元化関数 をかます X 0 Y 0 X Y Z マージン 最⼤化 ⾼次元空間 に 𝜙 で写像 54
⾼次元化対応のサポートベクターマシンの最適化問題(2/2) 55 𝐹(𝜆(!), … , 𝜆(#)) = @ &0! #
𝜆(&) − 1 2 @ &,10! # 𝜆(&)𝜆(1)𝑦(&)𝑦(1)𝜙(𝒙 & )𝑇𝜙(𝒙(1)) ∑!"# $ 𝜆(!)𝑦(!) = 0 および ∀𝑖, 𝜆(!), 𝜉(!) ≥ 0 の条件下で を最⼤化する 𝜆 ! を⾒つける(ただし 𝒘 = ∑&0! # 𝜆(&)𝑦(&)𝒙(&) , ∀𝑖, 𝐶 = 𝜆 ' + 𝜇 ' , 𝜇 ' 𝜉 ' = 0) ⾼次元化された ベクトルの内積
⾼次元空間の内積計算は⼤変 56 𝒙 = (𝑥# , 𝑥$ ) 𝒚 =
(𝑦# , 𝑦$ ) 𝜙L 𝒙 = 1, 2𝑥# , 2𝑥$ , 2𝑥# 𝑥$ , 𝑥# $, 𝑥$ $ 𝜙L (𝒚) = (1, 2𝑦# , 2𝑦$ , 2𝑦# 𝑦$ , 𝑦# $, 𝑦$ $) : 2次の多項式に写像(変換) 𝜙L (𝒙) 内積計算 𝜙L 𝒙 &𝜙L 𝒚 = 1 + 2𝑥! 𝑦! + 2𝑥" 𝑦" + 2𝑥! 𝑥" 𝑦! 𝑦" + 𝑥! "𝑦! " + 𝑥" "𝑦" " 2次元ベクトルでも1ペアの内積計算でのかけ算回数が11回に… これではSVMの学習の 計算コストが膨大に…
カーネルトリック 57 𝒙 = 𝑥# , 𝑥$ , 𝒚 =
(𝑦# , 𝑦$ ) 𝐾! 𝒙, 𝒚 = 1 + 𝒙" ( 𝒚 # = 1 + 𝑥$ 𝑦$ + 𝑥# 𝑦# # = 1 + 2𝑥! 𝑦! + 2𝑥% 𝑦% + 2𝑥! 𝑥% 𝑦! 𝑦% + 𝑥! %𝑦! % + 𝑥% %𝑦% % = 𝜙! 𝒙 "𝜙! 𝒚 かけ算回数 = 2 + 1 回 式展開 が与えられたとき カーネル関数を使えば,明示的に 高次元変換しなくても効率よく内積を計算できる 多項式変換したベクトルの内積と同じに!!
最適化⽅法は線形SVMと全く同じ(記号が変わっただけ) カーネルトリックを使った⾮線形SVMの最適化問題 58 𝐹(𝜆(!), … , 𝜆(#)) = @ &0!
# 𝜆(&) − 1 2 @ &,10! # 𝜆(&)𝜆(1)𝑦(&)𝑦(1)𝜙>(𝒙 & )𝑇𝜙>(𝒙(1)) ∑!"# $ 𝜆(!)𝑦(!) = 0 および ∀𝑖, 𝜆(!), 𝜉(!) ≥ 0 の条件下で を最⼤化する 𝜆 ! を⾒つける(ただし 𝒘 = ∑&0! # 𝜆(&)𝑦(&)𝒙(&) , ∀𝑖, 𝐶 = 𝜆 ' + 𝜇 ' , 𝜇 ' 𝜉 ' = 0) 多項式カーネルで計算簡略化 = @ &0! # 𝜆(&) − 1 2 @ &,10! # 𝜆(&)𝜆(1)𝑦(&)𝑦(1)𝐾>(𝒙 & , 𝒙(1))
代表的なカーネル関数 for SVM 59 𝐾(𝒙, 𝒚) = 𝑐 + 𝒙&
B 𝒚 M 𝐾(𝒙, 𝒚) = 𝑒 N 𝒙N𝒚 $ $P$ 多項式カーネル 動径基底カーネル ・⼊⼒ベクトルの成分の組合せを 成分とする⾼次元ベクトルを想定 ・⽂書分類タスクでよく⽤いられる (パラメータd=2) ・無限次元空間にベクトルを射影 ・最もよく⽤いられるカーネル. 分布の特徴が未知の時に使う ・ガウスカーネルと呼ばれることも Radial Basis Function 画像出典: https://scikit-learn.org/stable/auto_examples/svm/plot_iris_svc.html
サポートベクターマシンの⻑所・短所 60 • ⾼次元空間でも汎化性能が⾼い • 次元数に対して学習データ数が 少なくても性能を発揮 • 計算量が多い(DNNほどではない) •
データ数に対して次元数がかなり ⼤きいと,過学習が起きる • パラメータが少ない(DNNよりは) ※ DNN = Deep Neural Network
Hands-on タイム 以下のURLにアクセスして, 非線形SVMを体験してみましょう https://mlnote.hontolab.org/ 61
今後の予定 62 回 実施⽇ トピック 1 04/13 ガイダンス 2 04/20
pandas⼊⾨ 3 04/27 決定⽊からはじめる機械学習 4 05/11 クラスタリング1:k-means & 階層的クラスタリング 5 05/18 クラスタリング2:密度ベースクラスタリング 6 05/25 分類1:K近傍法 & 教師あり機械学習のお作法 7 06/01 分類2:サポートベクターマシン 8 06/08 分類3:ニューラルネットワーク⼊⾨