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