Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
機械学習 - SVM
Search
Y. Yamamoto
PRO
June 01, 2026
Science
1.2k
2
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
データベース15: ビッグデータ時代のデータベース
trycycle
PRO
1
570
データベース14: B+木 & ハッシュ索引
trycycle
PRO
0
920
データベース12: 正規化(2/2) - データ従属性に基づく正規化
trycycle
PRO
0
1.7k
データベース11: 正規化(1/2) - 望ましくない関係スキーマ
trycycle
PRO
0
1.7k
データベース10: 拡張実体関連モデル
trycycle
PRO
0
1.6k
データベース09: 実体関連モデル上の一貫性制約
trycycle
PRO
0
1.9k
機械学習 - ニューラルネットワーク入門
trycycle
PRO
0
1.2k
データベース08: 実体関連モデルとは?
trycycle
PRO
0
1.6k
機械学習 - K近傍法 & 機械学習のお作法
trycycle
PRO
1
1.6k
Other Decks in Science
See All in Science
From Prediction to Understanding: Causal Discovery for Data Science and AI Applications
sshimizu2006
0
300
勾配流から乖離した学習ダイナミクス
hanbao
1
1k
Testing the Longevity Bottleneck Hypothesis
chinson03
0
470
AIPシンポジウム 2025年度 成果報告会 「因果推論チーム」
sshimizu2006
3
640
AI for Phage-Host prediction
michielstock
0
120
20260410_SystemsThinking
takusamar
1
160
Cross-Media Technologies, Information Science and Human-Information Interaction
signer
PRO
3
33k
(CVPR2026) Back to Basics: Let Denoising Generative Models Denoise
shumpei777
0
350
Wet Active Matter
rajeshrinet
0
150
Physical AIを支えるWeights & Biases
olachinkei
1
590
Conversation is the New Dashboard: 属人性を排除する第4世代BIツールの勢力図
shomaekawa
1
660
サンプル対応のない複数遺伝子発現プロファイルに対するテンソル分解型統合解析の要約
tagtag
PRO
0
250
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Statistics for Hackers
jakevdp
799
230k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
500
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Fireside Chat
paigeccino
43
4k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
360
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
A Soul's Torment
seathinner
8
3.6k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
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:ニューラルネットワーク⼊⾨