サポートベクターマシン (svm)サポートベクターマシン...

20
サポートベクターマシン (SVM) 判別分析

Upload: others

Post on 14-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

サポートベクターマシン(SVM)

判別分析

Page 2: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

サポートベクターマシン

• サポートベクターマシン(Support Vector Machine ; SVM)

• パーセプトロンに基づき,教師あり学習を用いるパターン認識モデルの一種

• カテゴリの境界のマージンを最大にするように分類する.

Page 3: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

識別平面とマージン

識別平面

マージン𝑑

Page 4: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

マージン最大化

• 各サンプルから識別平面への距離は次式で与えられる.

𝑑𝑖 = −𝒂 ⋅ 𝒙𝑖 + 𝑏

𝒂

• 距離の最小値を最大化するように平面を定める.

max𝒂,𝑏min𝑖

𝒂 ⋅ 𝒙𝑖 + 𝑏

𝒂

Page 5: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

マージン最大化(ハードマージン)

• 別の表現をするとmin𝒂,𝑏𝒂

subject to 𝑦 𝒂 ⋅ 𝒙𝑖 + 𝑏 ≥ 1

• ここで

max𝒂,𝑏min𝑖

𝒂 ⋅ 𝒙𝑖 + 𝑏

𝒂

= max𝒂,𝑏

1

𝒂↔ min𝒂,𝑏𝒂

Page 6: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

ハードマージンとソフトマージン

• ハードマージン

min𝒂,𝑏𝒂

ただし

𝑦 𝒂 ⋅ 𝒙𝑖 + 𝑏 ≥ 1

• 厳密に解析するためには上記の問題を解く.

• 実際には,サンプル点が識別平面付近で混ざっている場合,サンプルデータにノイズがあるなどの場合には,ハードマージンではうまく分離できない場合がある.

• 制約条件を緩める方が良い(ソフトマージン).

Page 7: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

ソフトマージン

制約条件

𝑦 𝒂 ⋅ 𝒙𝑖 + 𝑏 ≥ 1

は不等式制約条件になっている.

スラック変数𝜉𝑖を導入して,不等式制約条件を等式制約条件に変換する.

𝜉𝑖 = 1 − 𝑦 𝒂 ⋅ 𝒙𝑖 + 𝑏

ここで,𝜉𝑖 ≥ 0なる定数.

この制約条件をペナルティとして目的関数へ導入する.

Page 8: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

ソフトマージン(1)

目的関数:

1

2𝒂 2 → min

制約条件:

𝑟 𝒙 = max 1 − 𝑦 𝒂 ⋅ 𝒙𝑖 + 𝑏 , 0

制約条件をペナルティ関数として目的関数へ導入すると,次式を得る.

𝐹 𝒂, 𝑏 =1

2𝒂 𝟐 + 𝑃

𝑖=1

𝑚

max 1 − 𝑦 𝒂 ⋅ 𝒙𝑖 + 𝑏 , 0 → min𝒂,𝑏

ペナルティ

Page 9: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

ソフトマージン(2)

𝐹 𝒂, 𝑏 =1

2𝒂 𝟐 + 𝑃

𝑖=1

𝑚

max 1 − 𝑦 𝒂 ⋅ 𝒙𝑖 + 𝑏 , 0

ここで,スラック変数𝜉𝑖を導入すると

𝐹 𝒂, 𝑏 =1

2𝒂 𝟐 + 𝑃

𝑖=1

𝑚

𝜉𝑖

ただし,新たな制約条件が加わる.

𝜉𝑖 = 1 − 𝑦 𝒂 ⋅ 𝒙𝑖 + 𝑏

𝜉𝑖 ≥ 0

Page 10: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

ソフトマージン(3)

ラグランジュ定数𝛼𝑖 , 𝛽𝑖を用いて制約条件を取り入れる.

𝐿 =1

2𝒂 𝟐 + 𝑃

𝑖

𝜉𝑖 −

𝑖

𝛼𝑖 𝜉𝑖 − 1 + 𝑦 𝒂 ⋅ 𝒙𝑖 + 𝑏 −

𝑖

𝛽𝑖𝜉𝑖

を最小化するためには𝜕𝐿

𝜕𝒂=𝜕𝐿

𝜕𝑏=𝜕𝐿

𝜕𝜉𝑖= 0

ここから, 𝒂と𝑏を定めると

max

𝑖

𝛼𝑖 −1

2

𝑖,𝑗

𝛼𝑖𝛼𝑗𝑦𝑖𝑦𝑗𝒙𝑖𝒙𝑗

ただし

0 ≤ 𝛼𝑖 ≤ 𝑃 ,

𝑖

𝑦𝐼𝛼𝑖 = 0

Page 11: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

データの変数変換

データ𝒙𝑖を高次元空間に変数変換する.それを,𝜙(𝒙𝑖)とする.つまり,

𝒙𝑖 → 𝜙(𝒙𝑖)

𝒙𝑖でなく𝜙(𝒙𝑖)を用いて関数を近似することもできる.

𝑦 ≃ 𝒂𝑻𝝓(𝒙𝒊)

最小二乗法でパラメータ推定する.

min 𝑖𝑦𝑖 − 𝒂

𝑻𝝓(𝒙𝒊)2

Page 12: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

カーネル法

カーネル関数𝑘 𝑥, 𝑥′ = 𝜙 𝑥 𝑇𝜙(𝑥′)

で回帰近似を行う.

𝑓 𝑥 =

𝑖=1

𝑛

𝑘 𝑥, 𝑥𝑖 𝛽𝑖

線形カーネル𝑘 𝒙, 𝒙′ = 𝒙𝑇𝒙′

多項式カーネル𝑘 𝒙, 𝒙′ = 1 + 𝒙𝑇𝒙′ 𝐷 , 𝐷 = 1,2,3,⋯

ガウシアン・カーネル𝑘 𝒙, 𝒙′ = exp −𝜎 𝒙 − 𝒙′ 2 , 𝜎 > 0

Page 13: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

練習問題1

• AND回路の判別分析.

X1 X2 Y

1 1 1

1 0 0

0 1 0

0 0 0

Page 14: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

練習問題(1)

*SVMの学習データを用意する.

> x1 <- c(1,1,0,0)> x2 <- c(1,0,1,0)> y <- c(1,0,0,0)> svm.data <- data.frame(x1,x2,y)> svm.data

x1 x2 y1 1 1 12 1 0 03 0 1 04 0 0 0

Page 15: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

練習問題(2)

パッケージをインストールし,ライブラリを読み込む.

Page 16: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

練習問題(3)

*SVMで判別式を学習する.

Page 17: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

練習問題(4)

*判別するデータを用意する.

*判別データを判別する.

Page 18: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

練習問題(6)

学習データを表示する.

Page 19: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

演習問題1

• 学習データに対する予測値,(2,0),(-1,-1)に対する予測値を求め、plotしなさい.

X1 X2 Y

1 1 1

1 0 1

0 1 1

0 0 0

Page 20: サポートベクターマシン (SVM)サポートベクターマシン •サポートベクターマシン(Support Vector Machine ; SVM) •パーセプトロンに基づき,教師あり学習を用

演習問題2

• 学習データに対する予測値,(2,0),(-1,-1)に対する予測値を求め、plotしなさい.

X1 X2 Y

1 1 0

1 0 1

0 1 1

0 0 0