prml chapter7

29
PRML 7 7.17.1.1 (下巻 pp35-47) 発表者:堀川 隆弘 Twitter: @thorikawa Hatena id: thorikawa

Upload: takahiro-horikawa

Post on 15-Jan-2015

4.050 views

Category:

Technology


1 download

DESCRIPTION

PRML(Pattern Recognition and Machine Learning) chapter 7

TRANSCRIPT

Page 1: PRML chapter7

PRML第 7章 7.1~7.1.1 (下巻 pp35-47)

発表者:堀川 隆弘

Twitter: @thorikawa

Hatena id: thorikawa

Page 2: PRML chapter7

第 7章アウトライン

最大マージン分類器

特徴空間において線形分離可能な場合の非線形 SVM

重なりのあるクラス分布

特徴空間において線形分離丌可能な場合の非線形 SVM

多クラス SVM・回帰のための SVM

本来2クラス分類を目的としたSVMを多クラス分類や回帰に応用する方法

関連ベクトルマシン(RVM)

事後確率分布を求めることが可能

SVMよりもさらに疎なモデルが得られる

本説明

の範囲

Page 3: PRML chapter7

疎な解を持つカーネルマシン

第 6章で触れたガウス過程などのモデルには、訓練データの全ての対についてカーネル関数を計算しなければいけないという問題があった。

学習および予測時に、非常に計算時間がかかる可能性がある。(特に逆行列の計算に時間がかかる)

そこで、訓練データ点の一部だけに対してカーネル関数を計算することで予測可能なアルゴリズムを考える。

Page 4: PRML chapter7

SVM:Support Vector Machine

訓練データを、超平面を分離境界として分類する。

正例データと負例データのうち、両者の境界にあるもの ≡ Support Vector だけを予測に使う。

Support Vector との距離(Margin)を最大化する分類平面を選ぶ。

Page 5: PRML chapter7

線形 SVM と非線形 SVM

PRMLでは非線形 SVMについてのみ言及している

非線形 SVMでは特徴空間上での線形分離を考える。

入力空間においては分離境界が非線形であっても、より高次元の特徴空間上では線形であり得る。

Page 6: PRML chapter7

SVMの動機付け

なぜSupport Vectorに対してのみMarginを最大化するとよいのか?

演習 7.1 と p36の最終パラグラフ

共通のパラメータσ2をもつガウスカーネルを用いて、Parzen推定法を適用して、各クラスごとの入力ベクトル xの分布を推定する。

p x t =1

Nt

1

zkk x, xn

n

δ t, tn

ベイズの定理より、

p t x ∝ p x t p t

Page 7: PRML chapter7

今、事前確率p t は無情報とすると、誤分類をなくす、すなわち事後確率

p t x が大きい tに振り分けるためには、p x t が大きい t を選べばよい。

その分類境界は

p x t = 1 = p x t = −1

で不えられる。よって

1

Nt=1

1

zkk x, xn

n tn =1

=1

Nt=−1

1

zkk x, xn

n tn =−1

カーネル関数として Gaussian Kernel を選ぶと、

1

Nt=1

1

zkexp

−wn2

2σ2

n tn =1

=1

Nt=−1

1

zkexp

−wn2

2σ2

n tn =−1

wn > wmとしてσ2 → 0のケースを考えると、

Page 8: PRML chapter7

exp −wn

2

2σ2

exp −wm

2

2σ2 = exp

wm2 − wn

2

2σ2 → 0

よってwnが最小になる訓練データ(Support Vector)以外の点で、カーネ

ル関数の値は無視できるから、分類境界はマージンを最大化する点で不

えられる。

Page 9: PRML chapter7

マージン最大化の定式化

y x = wTφ x + 𝑏

とモデル化される 2値分類問題を考える。

(まずは特徴空間上で完全な線形分離が可能と仮定する)

このとき分離平面は、

y x = 0

で、点xnと分離平面との距離は、

y xn

w =

tny xn

w =

tn w𝑇𝜑 x + 𝑏

w

で不えられる。(仮定より訓練データ集合は線形分離可能で、正しく線形分離

する解に対し、tny xn > 0であることを用いた。)

つまり、マージンを最大化する解は次の最適化問題を解くことで得られる。

Page 10: PRML chapter7

arg maxw,b

1

w min

n tn w

𝑇𝜑 x + 𝑏 (7.3)

wと bを同じ値だけ定数倍しても、目的関数の値は変化しないので、適当に定

数倍して、

minn tn w

𝑇𝜑 x + 𝑏 = 1

とできる。このとき、マージン最適化の問題は以下の二次計画法に帰着する。

arg minw,b

1

2 w 2 (7.6)

subject to

tn w𝑇𝜑 x + 𝑏 ≥ 1, n = 1,… , N (7.5)

Page 11: PRML chapter7

この最適化問題を解くためにラグランジュ乗数を導入すると、

L w, b, a =1

2 w 2 − an tn w

𝑇𝜑 x + 𝑏 − 1

N

n=1

(7.7)

W と bについて微分すると、以下の条件が出る。

w = antn𝜑 x

N

n=1

(7.8)

0 = antn

N

n=1

(7.9)

Page 12: PRML chapter7

W と b を消去できて、以下の双対表現(dual representation)が得られる。

双対表現(dual representation)

L a = an

N

n=1

−1

2 anam tntm

N

m=1

k xn , xm

N

n=1

(7.10)

subject to

an ≥ 0, n = 1,… , N (7.11)

antn = 0

N

n=1

(7.12)

Where

k xn , xm = φ xn Tφ xm

基底関数の数をM とし、特徴空間の次元を N とすると、

もともとの問題(7.6)はM変数、双対問題(7.10)は N変数であった。

Page 13: PRML chapter7

特徴空間の次元がデータ点の数を上回るような場合(たとえばガウスカーネル

のような無限次元の場合)にも、最大マージン分類器を適用できるようになる。

なお、k xn , xm が半正定値より、双対問題は凸最適化問題になる。

凸最適化

f x1,… , xn → max

subject to

g1 x1 ,… , xn ≤ 0

…gn x1 ,… , xn ≤ 0

h1 x1,… , xn = 0

…hn x1,… , xn = 0

fが上に凸の関数で、制約条件が定義する領域が凸であるとき、こ

の問題を凸最適化問題と呼ぶ。

凸最適化問題においては、局所最適解=大域最適解になる。

Page 14: PRML chapter7

この双対問題の解き方については後述。

双対問題を解き、anが求まったとして、分類規則は次のようになる。

y x = antkk(x, xn)

N

n=1

+ b (7.13)

b =1

NS tn − am tm k(xn , xm )

m∈S

n∈S

(7.18)

Page 15: PRML chapter7

なお、この問題における KKT条件は以下のようになる。

KKT条件(Karush-Kuhn-Tucker condition)

an ≥ 0, n = 1,… , N (7.14)

tny xn − 1 ≥ 0 (7.15)

an tny xn − 1 = 0 (7.16)

よって、全ての訓練データに対し、an = 0またはtny xn − 1 = 0が成立する。

(7.13)より、an = 0の点は新しいデータ点の予測に寄不しない。

それ以外のan ≠ 0となる点を support vector と呼び、マージンの縁に存在す

る。

Page 16: PRML chapter7

7.1.1 重なりのあるクラス分布

今まで線形分離可能な場合を考えてきたが、丌可能な場合を考える。

スラック変数ξn ≥ 0を導入する

正しく識別され、かつマージン境界の上または内側では ξn

= 0

それ以外の場合 ξn = tn − y xn

このとき、

分類境界y x = 0上にあるデータではξn = 1

誤分類されたデータではξn > 1が成り立つ

Page 17: PRML chapter7

これらをまとめて誤分類を許容するために、制約条件(7.5)を以下のように

変更する。

tny x𝑛 ≥ 1 − ξn , n = 1,… , N (7.20)

where

ξn ≥ 0, n = 1,… , N

また、誤分類に対し、ソフトにペナルティを不えるために目的関数(7.6)は以

下のように変更する。

C ξn

N

n=1

+1

2 w 2 (7.21)

C はスラック変数によるペナルティとマージンの大きさの間のトレードオフを制

御するパラメータ。C→∞においては、ξnによるペナルティが∞となり、誤分

類を許容しないハードマージン SVMの最適化問題と等しくなる。

Page 18: PRML chapter7

この最適化問題をとくためのラグランジュ関数は、

L w, b, ξ, a,μ

=1

2 w 2 + C ξn

N

n=1

− an tn w𝑇𝜑 x + 𝑏 − 1 + ξn

N

n=1

− μnξn

N

n=1

(7.22)

対応する KKT条件は以下

KKT条件

an ≥ 0, n = 1,… , N (7.23)

tny xn − 1 + ξn ≥ 0 (7.24)

an tny xn − 1 + ξn = 0 (7.25)

μn ≥ 0 (7.26)

ξn ≥ 0 (7.27)

μnξn = 0 (7.28)

(7.22)を w,b, ξnで微分したものを 0でおいて、以下の結果を得る。

Page 19: PRML chapter7

∂L

∂w= 0 ⇒ w = antn𝜑 x

N

n=1

(7.29)

∂L

∂b= 0 ⇒ antn

N

n=1

= 0 (7.30)

∂L

∂ξn= 0 ⇒ an = C − μn (7.31)

これをもともとのラグランジュ関数に代入すると、以下の双対表現が得られる。

双対表現(dual representation)

L a = an

N

n=1

−1

2 anam tntm

N

m=1

k xn , xm

N

n=1

(7.32)

subject to

Page 20: PRML chapter7

0 ≤ an ≤ C, n = 1,… , N (7.33)

antn = 0

N

n=1

(7.34)

ただし、制約条件(7.33)は(7.31) an = C − μn と(7.26)μn ≥ 0を用いた。

これらの式は、制約条件(7.33)以外は、ハードマージン SVM の双対表現と同

一である。

Page 21: PRML chapter7

二次計画法の解法

一般にM個の変数を持つ二次計画問題を解くにはΟ M3 の時間がかかることが知られている。

効率的に解くアルゴリズムが必要。

Chunking (Vapnik, 1982)

最終的にゼロにならないラグランジュ乗数だけを残す。

カーネル行列の大きさを、全データ数の2乗から、非ゼロのラグラン

ジュ乗数の数の2乗程度まで減らすことが可能。

保護共役勾配法(protected conjugate gradient method)を用い

て実装可能(Burges, 1998)

Page 22: PRML chapter7

分解法(decomposition method) (Osuna et al., 1996)

サイズの小さな二次計画問題を繰り返し解くことで、最終的な解を

得る。

実際には、2つのラグランジュ乗数を含む部分問題を繰り返し解く

SMO(sequential minimal optimization)(Platt, 1999)が広く使

われている。

Page 23: PRML chapter7

SMO(sequential minimal optimization)

全ての an ではなく、2個のaiだけを選び、逐次更新する。

アルゴリズム概略

※大幅に過程を省略しているため、詳細を知りたい方は元論文または参考

文献 1 を参照。

動かす対象をa1, a2の2点とする。

このとき、制約式(7.34)より以下が成立する。

a1new t1 + a2

new t2 = a1old t1 + a2

old t2

これと制約式(7.33) 0 ≤ an ≤ Cから以下の新たな制約式が導きだせる。

t1 = t2の場合

U ≤ a2new ≤ V

where U = max 0, a1old + a2

old − C , V = min C, a1old + a2

old

Page 24: PRML chapter7

t1 ≠ t2の場合

U ≤ a2new ≤ V

where U = max 0, C − a1old + a2

old , V = min C, a2old − a1

old

また、目的関数(7.32)はa1, a2に関連する部分だけに注目して、以下のよう

に整理できる。

W a1, a2 = a1 + a2 −1

2K11a1

2 −1

2K22a2

2 − t1t2K12a1a2 − t1ν1a1 − t2ν2a2 + const.

where

Kij = k xi , xj

νi = tjaj

N

j=3

k xi , xj

目的関数をa2で微分して=0 とおくことで、更新式が求まる。

Page 25: PRML chapter7

a2new = a2

old +t2 f x1 − t1 − f x2 − t2

K11 + K22 − 2K12

この更新式に対して、前述の制約式を適用したものをa2newの更新値とする。

(a1newはa1

new t1 + a2new t2 = a1

old t1 + a2old t2から求まる。)

なお、各部分問題で動かす 2点の選び方には、いくつかのヒューリスティック

が存在する。

Page 26: PRML chapter7

非線形 SVMのメリット・デメリット

メリット

凸二次計画問題に定式化できるので、局所解が大域解になる。(特にニューラルネットワークでは、局所解に収束し、大域解が求められない問題に陥りやすかった)

特徴空間が高次元な場合に計算が容易になる。

サポートベクトルの位置だけで分類境界が決まるので、過学習にお委入りにくい。

デメリット

多クラス分類や事後確率を求めるのには向いていない

二次計画問題の計算量が多い

Page 27: PRML chapter7

SVMのその他の話題

カーネル関数の選び方

実験で決めるしかない?

マルチカーネル学習(Multiple Kernel Learning, MKL)という手法もある。

複数のサブカーネルを線形結合する統合カーネルを作成し、サブカーネルの重みパラメータ j を学習する。

並列処理

そのままだと全訓練データを必要とするので、並列処理が難しい

PSVM(Parallelizing Support Vector Machine)という手法がある。

Page 28: PRML chapter7

参考文献

1. 中川 裕志:「数理手法(統計的機械学習入門)」講義スライドhttp://www.r.dl.itc.u-tokyo.ac.jp/~nakagawa/SML1/kernel1.pdf

2. 前田 英作:痛快!サポートベクトルマシンhttp://ci.nii.ac.jp/naid/110002764121/

3. 金谷 健一:これならわかる最適化数学,共立出版

Page 29: PRML chapter7

END