+ All Categories
Home > Technology > Coursera machine learning week7: Support Vector Machines

Coursera machine learning week7: Support Vector Machines

Date post: 11-Apr-2017
Category:
Upload: tis
View: 60 times
Download: 4 times
Share this document with a friend
34
Coursera Machine Learning Week 7 SVM, SVM with Kernel 2016/12/06 Koki Kawasaki
Transcript
Page 1: Coursera machine learning week7: Support Vector Machines

Coursera Machine LearningWeek 7

SVM, SVM with Kernel

2016/12/06Koki Kawasaki

Page 2: Coursera machine learning week7: Support Vector Machines

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

Page 3: Coursera machine learning week7: Support Vector Machines

Large Margin ClassificationOptimization Objective

3

SVM とは、 LogisticRegression の目的関数

としたもの!

Page 4: Coursera machine learning week7: Support Vector Machines

Large Margin ClassificationOptimization Objective

4

SVM とは、 LogisticRegression の目的関数

としたもの!

Page 5: Coursera machine learning week7: Support Vector Machines

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

ヒンジ損失関数って呼ぶらしい

Page 6: Coursera machine learning week7: Support Vector Machines

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ヒンジ損失関数って呼ぶらしい

Page 7: Coursera machine learning week7: Support Vector Machines

Large Margin ClassificationOptimization Objective

7

以下の仮説関数を用いて予測。(マージンを取った中間ということと理解)

学習

これを解いて、目的関数を最小化する最適な θ を求める。

予測

Page 8: Coursera machine learning week7: Support Vector Machines

Large Margin ClassificationLarge Margin Intuition

• SVM がやってること。– 決定境界から一番近いデータ点までの距離(マージン)を最大化するような手法

• 決定境界とは(おさらい)– 仮説関数が 0 を予測するか、 1 を予測するかの境界となる( xの)直線のこと。

SVM の決定境界

= 0

Page 9: Coursera machine learning week7: Support Vector Machines

Large Margin ClassificationLarge Margin Intuition

• SVM がやってること。– 決定境界から一番近いデータ点までの距離(マージン)を最大化するような手法

• 決定境界とは(おさらい)– 仮説関数が 0 を予測するか、 1 を予測するかの境界となる( xの)直線のこと。

SVM の決定境界

= 0SVM は、このマージンを最大化するようにθ を決定する

Page 10: Coursera machine learning week7: Support Vector Machines

Large Margin ClassificationMathematics Behind Large Margin Classification

• 数学的な理解– 以下の場合を考える

• 線形分離可能(決定境界でデータを完全に二分できる)• Θ_0 = 0

10

=0

線形分離可能

Page 11: Coursera machine learning week7: Support Vector Machines

Large Margin ClassificationMathematics Behind Large Margin Classification

• 数学的な理解

11

ベクトル θ

決定境界ベクトル θ

決定境界

小さいとθ 最小化できない

θ を最小化したい

good bad

x1

x2

の最大化

α :ベクトル θ と x(i) のなす角

緑色の線

Page 12: Coursera machine learning week7: Support Vector Machines

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

Page 13: Coursera machine learning week7: Support Vector Machines

KernelsKernels I

• SVM は、線形分離可能な問題に対する解法• SVM with Kernel は、非線形分離な問題に対する解法

Page 14: Coursera machine learning week7: Support Vector Machines

• まとめスライド• 真面目に解説– そもそも Kernel– 学習

• ランドマーク作成• F計算• 最適化、最適な θ• SVM with Kernel の学習フェーズは直観的な理解は難しい

– 予測• 予測したい入力データx• F計算、 θ の解釈• 具体例

14

Page 15: Coursera machine learning week7: Support Vector Machines

KernelsKernels I

• Kernel 法とは、

• SVM with Kernel とは、– SVM で使うデータ x を、類似度関数( e.g. Gaussian

Kernel )で高次元の特徴ベクトルに変換してから、SVM で Optimization する方法

パターン認識の目的は、一般に、 データの構造 ( 例えばクラスタ、ランキング、主成分、相関、分類) を見つけだし、研究することにある。 この目的を達成するために、 カーネル法ではデータを高次元の特徴空間上へ写像する。 特徴空間の各座標はデータ要素の一つの特徴に対応し、特徴空間への写像(特徴写像)によりデータの集合はユークリッド空間中の点の集合に変換される。 特徴空間におけるデータの構造の分析に際しては、様々な方法がカーネル法と組み合わせて用いられる。 特徴写像としては多様な写像を使うことができ ( 一般に非線形写像が使われる ) 、 それに対応してデータの多様な構造を見いだすことができる。( Wikipedia より引用)データをそのまま使わずに、カーネル関数を用いて高次元の特徴ベクトルに変換してから使うような手法

Page 16: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

SVM

SVMwith

Kernel

高次元の特徴ベクトル f に変換

ここで、類似度関数

また、ランドマーク

最適な θ が求まったら、

で予測

Page 17: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

SVM

SVMwith

Kernel

高次元の特徴ベクトル f に変換

ここで、類似度関数

また、ランドマーク

最適な θ が求まったら、

で予測

たったこれだけ!

Page 18: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• (真面目な説明) SVM with Kernel がやっていること学習① ランドマーク作成② 類似度 f の計算③ コスト関数最小化

① 予測したい入力データから、 f を計算

x1

x2① 所与のデータ

から、ランドマーク を作成

ぶっちゃけ学習フェーズは直観的な理解は難しいです

Page 19: Coursera machine learning week7: Support Vector Machines

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

Page 20: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• (真面目な説明) SVM with Kernel がやっていること学習① ランドマーク作成② 類似度 f の計算③ コスト関数最小化

① 予測したい入力データから、 f を計算

x1

x2② 各 x(i) について、以下の類似度を求める

Page 21: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• (真面目な説明) SVM with Kernel がやっていること学習① ランドマーク作成② 類似度 f の計算③ コスト関数最小化

① 予測したい入力データから、 f を計算

x1

x2② 各 x(i) について、以下の類似度を求める

Page 22: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• (真面目な説明) SVM with Kernel がやっていること学習① ランドマーク作成② 類似度 f の計算③ コスト関数最小化

① 予測したい入力データから、 f を計算

② 各 x(i) について、以下の類似度を求める

x1

x2

Page 23: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• (真面目な説明) SVM with Kernel がやっていること学習① ランドマーク作成② 類似度 f の計算③ コスト関数最小化

① 予測したい入力データから、 f を計算

③ 類似度 f を特徴量として、コスト関数の最小化

(最適化計算のアルゴリズムについては動画では触れられなかった。 Cost 関数内に微分不可能な点が存在するため(理論的には)最急降下法は使えない。まぁソルバーに突っ込んだらそんなの関係なしに計算はしてくれそう)θ に関する最小化を行い、最適な θ を求める。

Page 24: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• SVM with Kernel がやっていること予測

x1

x2

① 入力データ x とランドマーク l との類似度 f の計算② 予測

Page 25: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• SVM with Kernel がやっていること予測

x1

x2

:類似度関数によって定義されたランドマーク l とデータ x との距離

① 入力データ x とランドマーク l との類似度 f の計算② 予測

Page 26: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• SVM with Kernel がやっていること予測

x1

x2

① 入力データ x とランドマーク l との類似度 f の計算②

Page 27: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• SVM with Kernel がやっていること予測

x1

x2

パラメータ θ は、このランドマーク l とデータ x との距離 f に対する重みと解釈できる(距離が近かった / 遠かった時に、どれだけ予測に影響を与えるかのパラメータ)i.e. y=1 であるランドマークとの距離が近かった時に、どれだけ予測を 1 に近づけるか

① 入力データ x とランドマーク l との類似度 f の計算② 予測

Page 28: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• SVM with Kernel がやっていること予測

x1

x2

例えば、と学習されていたとする。( i.e. θ1 、 θ2 は y=1 の、 θ3 は y=0 のランドマーク)左図のような場合、

① 入力データ x とランドマーク l との類似度 f の計算② 予測

みたいな感じになり、1 を予測

Page 29: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• SVM with Kernel がやっていること予測

x1

x2

例2

① 入力データ x とランドマーク l との類似度 f の計算② 予測

みたいな感じになり、0 0 1

-0.5 <00 を予測

Page 30: Coursera machine learning week7: Support Vector Machines

KernelsKernels II

• SVM with Kernel がやっていること予測

x1

x2

① 入力データ x とランドマーク l との類似度 f の計算② 予測

θ と距離関数(の σ )(あと一応 C )によって定められた1 を予測するような領域があるイメージ0 を予測するような領域( θ3 がマイナスだったら)

Page 31: Coursera machine learning week7: Support Vector Machines

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

σ 小さい

Page 32: Coursera machine learning week7: Support Vector Machines

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

Page 33: Coursera machine learning week7: Support Vector Machines

SVMs in PracticeUsing An SVM

実際に SVM を使うときのお話し1. 自分で SVM実装するのはアホらしいので、パッケージ使いましょうね2. 特徴量はちゃんとスケーリングしましょうね3. Gaussian Kernel 以外にも、類似度関数( Kernel )はありますよ4. マルチクラスやる場合は、組み込みの多値分類器使うか、 one-vs-all で5. いつ LogisticRegression 、 SVM系、 NN を使うべきか?

Page 34: Coursera machine learning week7: Support Vector Machines

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 はオールラウンダーだが、計算時間で劣る場合が多い


Recommended