PRML chapter7

Preview:

DESCRIPTION

PRML(Pattern Recognition and Machine Learning) chapter 7

Citation preview

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

発表者:堀川 隆弘

Twitter: @thorikawa

Hatena id: thorikawa

第 7章アウトライン

最大マージン分類器

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

重なりのあるクラス分布

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

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

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

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

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

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

本説明

の範囲

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

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

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

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

SVM:Support Vector Machine

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

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

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

線形 SVM と非線形 SVM

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

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

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

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

今、事前確率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のケースを考えると、

exp −wn

2

2σ2

exp −wm

2

2σ2 = exp

wm2 − wn

2

2σ2 → 0

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

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

えられる。

マージン最大化の定式化

y x = wTφ x + 𝑏

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

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

このとき分離平面は、

y x = 0

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

y xn

w =

tny xn

w =

tn w𝑇𝜑 x + 𝑏

w

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

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

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

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)

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

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)

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変数であった。

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

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

なお、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が上に凸の関数で、制約条件が定義する領域が凸であるとき、こ

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

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

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

双対問題を解き、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)

なお、この問題における 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 と呼び、マージンの縁に存在す

る。

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

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

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

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

= 0

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

このとき、

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

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

これらをまとめて誤分類を許容するために、制約条件(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の最適化問題と等しくなる。

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

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でおいて、以下の結果を得る。

∂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

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 の双対表現と同

一である。

二次計画法の解法

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

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

Chunking (Vapnik, 1982)

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

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

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

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

て実装可能(Burges, 1998)

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

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

得る。

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

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

われている。

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

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 とおくことで、更新式が求まる。

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点の選び方には、いくつかのヒューリスティック

が存在する。

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

メリット

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

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

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

デメリット

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

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

SVMのその他の話題

カーネル関数の選び方

実験で決めるしかない?

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

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

並列処理

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

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

参考文献

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

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

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

END