Coursera Machine Learning
Week 7
SVM, SVM with Kernel
2016/12/06
Koki Kawasaki
agenda
• 講義要約
– Large Margin Classification
• Optimization Objective
• Large Margin Intuition
• Mathematics Behind Large Margin Classification
– Kernels
• Kernels I
• Kernels II
– SVMs in Practice
• Using An SVM
– Quiz
• 課題
2
Large Margin Classification
Optimization Objective
3
SVMとは、LogisticRegressionの目的関数
を
としたもの!
Large Margin Classification
Optimization Objective
4
SVMとは、LogisticRegressionの目的関数
を
としたもの!
Large Margin Classification
Optimization Objective
5
SVMとは、LogisticRegressionの目的関数
を
としたもの!
シグモイド関数に
logをかませたもの
シグモイド関数に
logをかませたもの
0 1
0.5
-1 0
0.5
0 1
0.5
-1 0
0.5
ヒンジ損失関数って呼ぶらしい
Large Margin Classification
Optimization Objective
6
SVMとは、LogisticRegressionの目的関数
を
としたもの!
シグモイド関数に
logをかませたもの
シグモイド関数に
logをかませたもの
0 1
0.5
-1 0
0.5
0 1
0.5
-1 0
0.5
Optimizationに
影響を与えない
定数項mを削除λの代わりにC
ヒンジ損失関数って呼ぶらしい
Large Margin Classification
Optimization Objective
7
以下の仮説関数を用いて予測。
(マージンを取った中間ということと理解)
学習
これを解いて、目的関数を最小化する最適なθを求める。
予測
Large Margin Classification
Large Margin Intuition
• SVMがやってること。
– 決定境界から一番近いデータ点までの距離(マージン)を最大化する
ような手法
• 決定境界とは(おさらい)
– 仮説関数が0を予測するか、1を予測するかの境界となる(xの)直線
のこと。
SVMの決定境界
= 0
Large Margin Classification
Large Margin Intuition
• SVMがやってること。
– 決定境界から一番近いデータ点までの距離(マージン)を最大化する
ような手法
• 決定境界とは(おさらい)
– 仮説関数が0を予測するか、1を予測するかの境界となる(xの)直線
のこと。
SVMの決定境界
= 0SVMは、この
マージンを最大化するように
θを決定する
Large Margin Classification
Mathematics Behind Large Margin Classification
• 数学的な理解
– 以下の場合を考える
• 線形分離可能(決定境界でデータを完全に
二分できる)
• Θ_0 = 0
10
=0
線形分離可能
Large Margin Classification
Mathematics Behind Large Margin Classification
• 数学的な理解
11
ベクトルθ
決定境界
ベクトルθ
決定境界
小さいと
θ最小化できない
θを最小化したい
good bad
x1
x2
の最大化
α:ベクトルθとx(i)のなす角
緑色の線
agenda
• 講義要約
– Large Margin Classification
• Optimization Objective
• Large Margin Intuition
• Mathematics Behind Large Margin Classification
– Kernels
• Kernels I
• Kernels II
– SVMs in Practice
• Using An SVM
– Quiz
• 課題
12
Kernels
Kernels I
• SVMは、線形分離可能な問題に対する解法
• SVM with Kernelは、
非線形分離な問題に対する解法
• まとめスライド
• 真面目に解説
– そもそもKernel
– 学習
• ランドマーク作成
• F計算
• 最適化、最適なθ
• SVM with Kernelの学習フェーズは直観的な理解は難しい
– 予測
• 予測したい入力データx
• F計算、θの解釈
• 具体例
14
Kernels
Kernels I
• Kernel法とは、
• SVM with Kernelとは、
– SVMで使うデータxを、類似度関数(e.g. Gaussian
Kernel)で高次元の特徴ベクトルに変換してから、
SVMでOptimizationする方法
パターン認識の目的は、一般に、 データの構造(例えばクラスタ、ランキング、主成分、相関、分類)を見つけだし、研究することに
ある。 この目的を達成するために、 カーネル法ではデータを高次元の特徴空間上へ写像する。 特徴空間の各座標はデータ要
素の一つの特徴に対応し、特徴空間への写像(特徴写像)によりデータの集合はユークリッド空間中の点の集合に変換される。
特徴空間におけるデータの構造の分析に際しては、様々な方法がカーネル法と組み合わせて用いられる。 特徴写像としては多
様な写像を使うことができ(一般に非線形写像が使われる)、 それに対応してデータの多様な構造を見いだすことができる。
(Wikipediaより引用)
データをそのまま使わずに、カーネル関数を用いて高次
元の特徴ベクトルに変換してから使うような手法
Kernels
Kernels II
SVM
SVM
with
Kernel
高次元の特徴ベクトルf に
変換
ここで、類似度関数
また、ランドマーク
最適なθが求まったら、
で予測
Kernels
Kernels II
SVM
SVM
with
Kernel
高次元の特徴ベクトルf に
変換
ここで、類似度関数
また、ランドマーク
最適なθが求まったら、
で予測
Kernels
Kernels II
• (真面目な説明)SVM with Kernelがやっていること
学習
①ランドマーク作成
②類似度f の計算
③コスト関数最小化
x1
x2
①所与のデータ
から、ランドマーク を作成
ぶっちゃけ学習フェーズは直観的な理解は難しいです
Kernels
Kernels II
• (真面目な説明)SVM with Kernelがやっていること
学習
①ランドマーク作成
②類似度f の計算
③コスト関数最小化
②各x(i)について、以下の類似度
を求める
x1
x2
:類似度関数によって定義された
ランドマークl とデータx との距離
1.0 平均がl(j)、高さ?が 1.0のガウス分布
l(j)とx(i)が近いほど1.0に近い値を、
遠ければ0に近い値を返す
類似度関数
(カーネル関数)
Gaussian Kernel
Kernels
Kernels II
• (真面目な説明)SVM with Kernelがやっていること
学習
①ランドマーク作成
②類似度f の計算
③コスト関数最小化
x1
x2
②各x(i)について、以下の類似度
を求める
Kernels
Kernels II
• (真面目な説明)SVM with Kernelがやっていること
学習
①ランドマーク作成
②類似度f の計算
③コスト関数最小化
x1
x2
②各x(i)について、以下の類似度
を求める
Kernels
Kernels II
• (真面目な説明)SVM with Kernelがやっていること
学習
①ランドマーク作成
②類似度f の計算
③コスト関数最小化
②各x(i)について、以下の類似度
を求める
x1
x2
Kernels
Kernels II
• (真面目な説明)SVM with Kernelがやっていること
学習
①ランドマーク作成
②類似度f の計算
③コスト関数最小化
③類似度fを特徴量として、コスト関数の最小化
(最適化計算のアルゴリズムについては動画では触れられなかった。Cost関数内に微分不可能な点が存在するため(理論的には)最
急降下法は使えない。まぁソルバーに突っ込んだらそんなの関係なしに計算はしてくれそう)
θに関する最小化を行い、最適なθを求める。
Kernels
Kernels II
• SVM with Kernelがやっていること
予測
x1
x2
①入力データxとランドマークlとの類似度f の計算
②予測
Kernels
Kernels II
• SVM with Kernelがやっていること
予測
x1
x2
:類似度関数によって定義された
ランドマークl とデータx との距離
①入力データxとランドマークlとの類似度f の計算
②予測
Kernels
Kernels II
• SVM with Kernelがやっていること
予測
x1
x2
①入力データxとランドマークlとの類似度f の計算
②
Kernels
Kernels II
• SVM with Kernelがやっていること
予測
x1
x2
パラメータθは、このランドマークl とデータx との距
離f に対する重みと解釈できる
(距離が近かった/遠かった時に、どれだけ予測に
影響を与えるかのパラメータ)
i.e. y=1であるランドマークとの距離が近かった時
に、どれだけ予測を1に近づけるか
①入力データxとランドマークlとの類似度f の計算
②予測
Kernels
Kernels II
• SVM with Kernelがやっていること
予測
x1
x2
例えば、
と学習されていたとする。
(i.e. θ1、θ2はy=1の、θ3はy=0のランドマーク)
左図のような場合、
①入力データxとランドマークlとの類似度f の計算
②予測
みたいな感じになり、
1を予測
Kernels
Kernels II
• SVM with Kernelがやっていること
予測
x1
x2
例2
①入力データxとランドマークlとの類似度f の計算
②予測
みたいな感じになり、
0 0 1
-0.5 <0
0を予測
Kernels
Kernels II
• SVM with Kernelがやっていること
予測
x1
x2
①入力データxとランドマークlとの類似度f の計算
②予測
θと距離関数(のσ)(あと一応C)によって
定められた
1を予測するような領域があるイメージ
0を予測するような領域(θ3がマイナスだったら
Kernels
Kernels II
SVM
with
Kernel
SVM (with Kernel)が持つパラメータは、以下の2つ
• C (= 1/λ)
– 大きい:Lower bias, High variance
– 小さい:Higher bias, Low variance
– ロジスティクス回帰の正規化パラメータが
コスト側についただけ
• σ^2
– 大きい:Lower bias, High variance
– 小さい:Higher bias, Low variance
– ランドマーク周りの1 or 0を予測する領域が
広くなる / 狭くなる感じ
l l
1.0
σ大きい
1.0
σ小さい
agenda
• 講義要約
– Large Margin Classification
• Optimization Objective
• Large Margin Intuition
• Mathematics Behind Large Margin Classification
– Kernels
• Kernels I
• Kernels II
– SVMs in Practice
• Using An SVM
– Quiz
• 課題
33
SVMs in Practice
Using An SVM
実際にSVMを使うときのお話し
1. 自分でSVM実装するのはアホらしいので、パッ
ケージ使いましょうね
2. 特徴量はちゃんとスケーリングしましょうね
3. Gaussian Kernel以外にも、類似度関数(Kernel)
はありますよ
4. マルチクラスやる場合は、組み込みの多値分
類器使うか、one-vs-allで
5. いつLogisticRegression、SVM系、NNを使うべき
か?
SVMs in Practice
Using An SVM
5. いつLogisticRegression、SVM系、NNを使うべきか?
n:データの特徴量の数、 m: データの数
• n大きく、m小さい時
– SVM with Kやるには、
データ不足
• n小さく、mそれなりの時
– SVM with Kが光り輝く時
• n小さく、m大きい時
SVM with Kは、計算時間がかかる
LR SVM
SVM
with K
特徴量を追加して、
NN
LR SVM NN
NN
※NNはオールラウンダーだが、計算時間で劣る場合が多い

Coursera machine learning week7: Support Vector Machines

  • 1.
    Coursera Machine Learning Week7 SVM, SVM with Kernel 2016/12/06 Koki Kawasaki
  • 2.
    agenda • 講義要約 – LargeMargin Classification • Optimization Objective • Large Margin Intuition • Mathematics Behind Large Margin Classification – Kernels • Kernels I • Kernels II – SVMs in Practice • Using An SVM – Quiz • 課題 2
  • 3.
    Large Margin Classification OptimizationObjective 3 SVMとは、LogisticRegressionの目的関数 を としたもの!
  • 4.
    Large Margin Classification OptimizationObjective 4 SVMとは、LogisticRegressionの目的関数 を としたもの!
  • 5.
    Large Margin Classification OptimizationObjective 5 SVMとは、LogisticRegressionの目的関数 を としたもの! シグモイド関数に logをかませたもの シグモイド関数に logをかませたもの 0 1 0.5 -1 0 0.5 0 1 0.5 -1 0 0.5 ヒンジ損失関数って呼ぶらしい
  • 6.
    Large Margin Classification OptimizationObjective 6 SVMとは、LogisticRegressionの目的関数 を としたもの! シグモイド関数に logをかませたもの シグモイド関数に logをかませたもの 0 1 0.5 -1 0 0.5 0 1 0.5 -1 0 0.5 Optimizationに 影響を与えない 定数項mを削除λの代わりにC ヒンジ損失関数って呼ぶらしい
  • 7.
    Large Margin Classification OptimizationObjective 7 以下の仮説関数を用いて予測。 (マージンを取った中間ということと理解) 学習 これを解いて、目的関数を最小化する最適なθを求める。 予測
  • 8.
    Large Margin Classification LargeMargin Intuition • SVMがやってること。 – 決定境界から一番近いデータ点までの距離(マージン)を最大化する ような手法 • 決定境界とは(おさらい) – 仮説関数が0を予測するか、1を予測するかの境界となる(xの)直線 のこと。 SVMの決定境界 = 0
  • 9.
    Large Margin Classification LargeMargin Intuition • SVMがやってること。 – 決定境界から一番近いデータ点までの距離(マージン)を最大化する ような手法 • 決定境界とは(おさらい) – 仮説関数が0を予測するか、1を予測するかの境界となる(xの)直線 のこと。 SVMの決定境界 = 0SVMは、この マージンを最大化するように θを決定する
  • 10.
    Large Margin Classification MathematicsBehind Large Margin Classification • 数学的な理解 – 以下の場合を考える • 線形分離可能(決定境界でデータを完全に 二分できる) • Θ_0 = 0 10 =0 線形分離可能
  • 11.
    Large Margin Classification MathematicsBehind Large Margin Classification • 数学的な理解 11 ベクトルθ 決定境界 ベクトルθ 決定境界 小さいと θ最小化できない θを最小化したい good bad x1 x2 の最大化 α:ベクトルθとx(i)のなす角 緑色の線
  • 12.
    agenda • 講義要約 – LargeMargin Classification • Optimization Objective • Large Margin Intuition • Mathematics Behind Large Margin Classification – Kernels • Kernels I • Kernels II – SVMs in Practice • Using An SVM – Quiz • 課題 12
  • 13.
    Kernels Kernels I • SVMは、線形分離可能な問題に対する解法 •SVM with Kernelは、 非線形分離な問題に対する解法
  • 14.
    • まとめスライド • 真面目に解説 –そもそもKernel – 学習 • ランドマーク作成 • F計算 • 最適化、最適なθ • SVM with Kernelの学習フェーズは直観的な理解は難しい – 予測 • 予測したい入力データx • F計算、θの解釈 • 具体例 14
  • 15.
    Kernels Kernels I • Kernel法とは、 •SVM with Kernelとは、 – SVMで使うデータxを、類似度関数(e.g. Gaussian Kernel)で高次元の特徴ベクトルに変換してから、 SVMでOptimizationする方法 パターン認識の目的は、一般に、 データの構造(例えばクラスタ、ランキング、主成分、相関、分類)を見つけだし、研究することに ある。 この目的を達成するために、 カーネル法ではデータを高次元の特徴空間上へ写像する。 特徴空間の各座標はデータ要 素の一つの特徴に対応し、特徴空間への写像(特徴写像)によりデータの集合はユークリッド空間中の点の集合に変換される。 特徴空間におけるデータの構造の分析に際しては、様々な方法がカーネル法と組み合わせて用いられる。 特徴写像としては多 様な写像を使うことができ(一般に非線形写像が使われる)、 それに対応してデータの多様な構造を見いだすことができる。 (Wikipediaより引用) データをそのまま使わずに、カーネル関数を用いて高次 元の特徴ベクトルに変換してから使うような手法
  • 16.
  • 17.
  • 18.
    Kernels Kernels II • (真面目な説明)SVMwith Kernelがやっていること 学習 ①ランドマーク作成 ②類似度f の計算 ③コスト関数最小化 x1 x2 ①所与のデータ から、ランドマーク を作成 ぶっちゃけ学習フェーズは直観的な理解は難しいです
  • 19.
    Kernels Kernels II • (真面目な説明)SVMwith Kernelがやっていること 学習 ①ランドマーク作成 ②類似度f の計算 ③コスト関数最小化 ②各x(i)について、以下の類似度 を求める x1 x2 :類似度関数によって定義された ランドマークl とデータx との距離 1.0 平均がl(j)、高さ?が 1.0のガウス分布 l(j)とx(i)が近いほど1.0に近い値を、 遠ければ0に近い値を返す 類似度関数 (カーネル関数) Gaussian Kernel
  • 20.
    Kernels Kernels II • (真面目な説明)SVMwith Kernelがやっていること 学習 ①ランドマーク作成 ②類似度f の計算 ③コスト関数最小化 x1 x2 ②各x(i)について、以下の類似度 を求める
  • 21.
    Kernels Kernels II • (真面目な説明)SVMwith Kernelがやっていること 学習 ①ランドマーク作成 ②類似度f の計算 ③コスト関数最小化 x1 x2 ②各x(i)について、以下の類似度 を求める
  • 22.
    Kernels Kernels II • (真面目な説明)SVMwith Kernelがやっていること 学習 ①ランドマーク作成 ②類似度f の計算 ③コスト関数最小化 ②各x(i)について、以下の類似度 を求める x1 x2
  • 23.
    Kernels Kernels II • (真面目な説明)SVMwith Kernelがやっていること 学習 ①ランドマーク作成 ②類似度f の計算 ③コスト関数最小化 ③類似度fを特徴量として、コスト関数の最小化 (最適化計算のアルゴリズムについては動画では触れられなかった。Cost関数内に微分不可能な点が存在するため(理論的には)最 急降下法は使えない。まぁソルバーに突っ込んだらそんなの関係なしに計算はしてくれそう) θに関する最小化を行い、最適なθを求める。
  • 24.
    Kernels Kernels II • SVMwith Kernelがやっていること 予測 x1 x2 ①入力データxとランドマークlとの類似度f の計算 ②予測
  • 25.
    Kernels Kernels II • SVMwith Kernelがやっていること 予測 x1 x2 :類似度関数によって定義された ランドマークl とデータx との距離 ①入力データxとランドマークlとの類似度f の計算 ②予測
  • 26.
    Kernels Kernels II • SVMwith Kernelがやっていること 予測 x1 x2 ①入力データxとランドマークlとの類似度f の計算 ②
  • 27.
    Kernels Kernels II • SVMwith Kernelがやっていること 予測 x1 x2 パラメータθは、このランドマークl とデータx との距 離f に対する重みと解釈できる (距離が近かった/遠かった時に、どれだけ予測に 影響を与えるかのパラメータ) i.e. y=1であるランドマークとの距離が近かった時 に、どれだけ予測を1に近づけるか ①入力データxとランドマークlとの類似度f の計算 ②予測
  • 28.
    Kernels Kernels II • SVMwith Kernelがやっていること 予測 x1 x2 例えば、 と学習されていたとする。 (i.e. θ1、θ2はy=1の、θ3はy=0のランドマーク) 左図のような場合、 ①入力データxとランドマークlとの類似度f の計算 ②予測 みたいな感じになり、 1を予測
  • 29.
    Kernels Kernels II • SVMwith Kernelがやっていること 予測 x1 x2 例2 ①入力データxとランドマークlとの類似度f の計算 ②予測 みたいな感じになり、 0 0 1 -0.5 <0 0を予測
  • 30.
    Kernels Kernels II • SVMwith Kernelがやっていること 予測 x1 x2 ①入力データxとランドマークlとの類似度f の計算 ②予測 θと距離関数(のσ)(あと一応C)によって 定められた 1を予測するような領域があるイメージ 0を予測するような領域(θ3がマイナスだったら
  • 31.
    Kernels Kernels II SVM with Kernel SVM (withKernel)が持つパラメータは、以下の2つ • C (= 1/λ) – 大きい:Lower bias, High variance – 小さい:Higher bias, Low variance – ロジスティクス回帰の正規化パラメータが コスト側についただけ • σ^2 – 大きい:Lower bias, High variance – 小さい:Higher bias, Low variance – ランドマーク周りの1 or 0を予測する領域が 広くなる / 狭くなる感じ l l 1.0 σ大きい 1.0 σ小さい
  • 32.
    agenda • 講義要約 – LargeMargin Classification • Optimization Objective • Large Margin Intuition • Mathematics Behind Large Margin Classification – Kernels • Kernels I • Kernels II – SVMs in Practice • Using An SVM – Quiz • 課題 33
  • 33.
    SVMs in Practice UsingAn SVM 実際にSVMを使うときのお話し 1. 自分でSVM実装するのはアホらしいので、パッ ケージ使いましょうね 2. 特徴量はちゃんとスケーリングしましょうね 3. Gaussian Kernel以外にも、類似度関数(Kernel) はありますよ 4. マルチクラスやる場合は、組み込みの多値分 類器使うか、one-vs-allで 5. いつLogisticRegression、SVM系、NNを使うべき か?
  • 34.
    SVMs in Practice UsingAn SVM 5. いつLogisticRegression、SVM系、NNを使うべきか? n:データの特徴量の数、 m: データの数 • n大きく、m小さい時 – SVM with Kやるには、 データ不足 • n小さく、mそれなりの時 – SVM with Kが光り輝く時 • n小さく、m大きい時 SVM with Kは、計算時間がかかる LR SVM SVM with K 特徴量を追加して、 NN LR SVM NN NN ※NNはオールラウンダーだが、計算時間で劣る場合が多い