線形判別モデル
2016/06/08
八木貴之
4章の前半をまとめました
質問歓迎です.
目次
1. 分類の目的
2. 識別関数
2.1 2クラス
2.2 多クラス
3. 最小二乗
4. フィッシャーの線形判別
5. パーセプトロン
6. ロジスティック回帰
分類の目的
ある入力 をx 個の離散クラスK の
一つに割り当てること
(k = 1, …, K)ck
(ただし,各クラスは互いに重ならない-> 各データは一つのクラスに割り当てられる)
入力空間は決定領域に分離される
決定領域の境界を決定面と呼ぶ
入力空間は決定領域に分離される
決定領域の境界を決定面と呼ぶ
datasetに適用
クラスが割り当てられたデータデータセットから代表点を求める
識別関数
2クラス
-
- -> class1
- -> class2
他クラス
-
- one-versus-the-rest
- one-versus-one
- -> classj
y(x) = x +w
T
w0
y(x) > 0
y(x) < 0
(x) = x +yck
w
T
ck
w 0ck
arg (x)maxcj
yck
2クラス
y(x) = x +w
T
w0
決定境界は で,y(x) = 0 次元入力空間中のD 次元超平面に対応する.(D − 1)
wは決定面に対して直交する.
決定面上にある2点 とxA を考える.xB であるので,y( ) = y( ) = 0xA xB
であり,
ベクトル
( − ) = 0w
T
xA xB
は決定面上にあるすべてのベクトルに直交する.w
原点から決定面までの距離
が決定面上にある場合,x となる.
ゆえに,決定面までの距離は
y(x) = 0
= −xw
T
||w||
w0
||w||
任意の点 から決定面までの距離x
を決定面上への直交射影であるとすると,
両辺に を掛け, を加え,
と を利用すると
x⊥
x = + rx⊥
w
||w||
w
T
w0
y(x) = x +w
T
w0 y( ) = + = 0x⊥ w
T
x⊥ w0
r =
y(x)
||w||
多クラス(その1)
1対他分類器(one-versus-the-rest classifier)
ある特定のクラス に入る点とそのクラスに入らない点とに分類する
2クラス分類器を 個利用する.
ck
K − 1
多クラス(その2)
1対1分類器(one-versus-one classifier)
すべての可能なクラスの組の2クラス識別関数を考え,
個の2クラス識別関数を利用する.K(K − 1)/2
多クラス(その3)
すべての に対してj ≠ k である場合,
点
(x) > (x)yck
ycj
はクラスx に割り当てられる.ck
境界
クラス とクラスck 間の決定境界はcj で与えられる
したがって,境界は
(x) = (x)yck
ycj
で定義される
( − x + ( − ) = 0wck
wcj
)
T
w 0ck
w 0cj
次元の超平面になる(D − 1)
決定領域
決定領域は凸領域となる.
凸領域
決定領域 にある2点Rk とxA を考える
2点
xB
とxA を結ぶ直線上にある任意の点xB は,x̂ 
で表せる.= λ + (1 − λ) (1 ≤ λ ≤ 1)x̂  xA xB
凸領域
関数の線形性から以下が成立する.
2点
( ) = λ ( ) + (1 − λ) ( )yck
x̂  yck
xA yck
xB
とxA はいずれも決定領域xB 内にあるので,すべてのRk に対してj ≠ k
と( ) > ( )yck
xA ycj
xB が成立し,( ) > ( )yck
xB ycj
xB
となるため,任意の( ) > ( )yk x̂  yj x̂  も決定領域x̂  内にあることがわかるRk
ユークリッド距離による1NN法は線形識別関数による識別と同等である.
ユークリッド距離における1NN法は をx
を最小にするクラス
||x − || = ||x| − 2 x + || |μck
|
2
μT
ck
μck
|
2
に割り当てる
これは,線形識別関数
ck
が最大になるときと等価である
(x) = x − || |yck
μT
ck
1
2
μck
|
2
線形識別関数のパラメータを学習する3つのアプローチについて紹介する
最小二乗
フィッシャーの線形判別
パーセプトロン
K符号化
クラスが全部で 個あるとして,それらをK とする.
各
, , …,c1 c2 cK
に対して,要素数がci でK 番目だけが1のベクトル(他は全て0) を定める.i
= (0, 0, …, 0, 1, 0, …, 0p
ci
)
T
||y( ) − |
∑
i=1
n
xi p
y
i
|
2
= || − |
∑
i=1
n
W
T
xi p
y
i
|
2
= ( W − )( − )
∑
i=1
n
x
T
i
p
T
y
i
W
T
xi p
y
i
= ( W − 2 W + || | )
∑
i=1
T
x
T
i
W
T
xi x
T
i
p
y
i
p
y
i
|
2
∂E(W)
∂W
= 2 ( W − )
∑
i=1
n
xi x
T
i
xi p
y
i
= 2( XW − P)X
T
X
T
学習データ に対して,D = ( , ), ( , ), …, ( , )x1 y1 x2 y2 xn yn
,y(x) = ( (x), (x), …, (x))yc1
yc2
ycK
とすると,W = ( , , …, )wc1
wc2
wcK
これを と置いて行列E(W) で偏微分するとW
※ と置いた.X = ( , , …, P = ( , , …, )x1 x2 xn )
T
p
y
1
p
y
2
p
y
n
行列の微分
X b = (a + b )X
∂
∂X
a
T
X
T
b
T
a
T
Xb = a
∂
∂X
a
T
b
T
最小二乗
と置くと= 0
∂E(W)
∂W
XW = PX
T
X
T
となり,パラメータ
W = ( X PX
T
)
−1
X
T
が解析的に求まることがわかる.W
実装
実装
最小二乗の欠点
出力 を確率と解釈できない.
(
y(x) = ( (x), (x), …, (x))yc1
yc2
ycK
の要素の和が1と各要素が(0,1)の範囲であることを仮定していないため)y(x)
最小二乗の欠点
外れ値に弱い
赤線:最小二乗,緑線:ロジスティック回帰
実装
最小二乗の欠点
最小二乗法は条件付き確率分布にガウス分布を仮定した場合の最尤法
しかし,誤差 は正規分布に従わない(両方0-1)(y(x) − )p
y
i
最小二乗の欠点
実装
複数のクラス(K>2)が一直線に並んでいるような分布をしている場合に上手くいかない.
最小二乗の欠点
実装
複数のクラス(K>2)が一直線に並んでいるような分布をしている場合に上手くいかない.
最小二乗まとめ
最小二乗は分類問題においては使うべきではない.
---
フィッシャーの線形判別
次元入力ベクトルを得て,それを一次元に射影するとする.D
y = xw
T
に設定し閾値を設定し,y
-> クラス1y ≥ −w0
-> クラス2
とすれば,標準的な2クラスの線形分類器が得られる.
y < −w0
一時的に,一次元への射影は情報の損失を発生させるので,もとの 次元空間では分
離されていたクラスが一次元では大きく重なり合ってしまうかもしれない.
D
重みベクトル を調節し,クラスの分離を最大にする射影を選択する.
---> フィッシャーの線形判別
w
左図より右図の方がクラスを上手く分離できている.
このような射影方向を見つけたい.
平均の分離度を見る
クラス の点がC1 個,クラスN1 の点がC2 個ある2クラス問題を考える.
2つのクラスの平均ベクトルは以下で与えられる.
N2
最も簡単な分離度の測定方法は,射影されたクラス平均の分離度をみること.
= , =m1
1
N1
∑n∈C1
xn m2
1
N2
∑n∈C2
xn
(
− = ( − )m2 m1 w
T
m2 m1
はクラス=mk w
T
mk から射影されたデータの平均)Ck
制約付き最大化問題
に− = ( − )m2 m1 w
T
m2 m1
の制約を加えて最大化する.
ラグランジュ未定乗数法を用いれば,ラグランジュ関数は以下のように表せる.
= 1∑i
w
2
i
L = ( − ) + λ( w − 1)w
T
m2 m1 w
T
より,= − + 2λw = 0
∂L
∂w
m2 m1
以上より,
w = − ( − )
1
2λ m2 m1
が得られる.w ∝ ( − )m2 m1
実装
これだと,線形分離できる場合にも重なり合う部分が多くなる
分散も考慮
小さい分散であることが望ましい<- フィッシャーが提案
クラス内分散
全データに対するクラス内分散を と定義する.
ここで,
+s
2
1
s
2
2
としている.= ( −s
2
k
∑n∈Ck
yn mk )
2
フィッシャーの判別基準はクラス内分散とクラス間分散の比で定義され
で与えられる.J(w) =
( −m1 m2 )
2
+s
2
1
s
2
2
フィッシャーの判別基準
判別基準は と書き直せる.
ここで,
J(w) =
ww
T
SB
ww
T
SW
= ( − )( −SB m2 m1 m2 m1 )
T
= ( − + ( − )( −SW ∑n∈C1
xn m1 )
T
∑n∈C2
xn m2 xn m2 )
T
はクラス間共分散行列,SB はクラス内共分散行列と呼ぶSW
J(w) =
ww
T
SB
ww
T
SW
よって,
= (2( w)( w)( w) − 2( w)( w))/( w = 0
∂J(w)
∂w
SB w
T
SW w
T
SW w
T
SB SW w
T
Sw )
2
ここで,
( w) w = ( w) ww
T
SB SW w
T
SW SB
なので
w = ( − )(( − w) ∝ ( − )SB m2 m1 m2 m1 )
T
m2 m1
これをフィッシャーの線形判別という.
w ∝ w ∝ ( − )S
−1
W
SB S
−1
W
m2 m1
実装
最小二乗との関連
最小二乗:目的変数にできるだけ近いように(誤差最小化)
フィッシャーの判別基準:クラスの分離を最大化するように
2クラス分類の最小二乗の特別な場合がフィッシャーの判別基準と等価になる.
データの個数を ,
(
N = +N1 N2
はクラスNi に属するデータの個数)Ci
に対する目的変数値をC1 ,N /N1 に対する目的変数値をC2 とする
この条件下で二乗和誤差
−N /N2
の最小化を考えると,
E = ( + −1
2
∑N
n=1
w
T
xn w0 tn )
2
が導ける.(計算は難しくないけど長いので省略)
w ∝ ( − )S
−1
W
m2 m1
フィッシャーの線形判別まとめ
実際には判別を行っているのではなく,射影方向の方向のみを与えていることに注意
識別の手法ではなく,次元を削減する手法であると判断することができる
パーセプトロン
以下の一般化線形モデルで表される2クラスのモデル
y(x) = f ( ϕ(x))w
T
は非線形活性化関数f (a)
( )
( )
f (a) = +1 a ≥ 0
f (a) = −1 a < 0
目的変数値
クラス に対して,目的変数値C1
クラス
t = +1
に対して,目的変数値C2
とする.(こうしたほうが都合がいい)
t = −1
クラス のC1 に対してxn
クラス
ϕ( ) > 0w
T
xn
のC2 に対してxn
となるように重みベクトル
ϕ( ) < 0w
T
xn
を求めていることに注目すると
目的変数値
w
を使用して,t ∈ {−1, +1}
となるような重みベクトル
ϕ( ) > 0w
T
xn tn
を求めていることと等価w
誤差関数
正しく分類されたデータに対しては誤差 を割り当て,
誤分類されたデータに対しては誤差
0
を割り当てる.− ϕ( )w
T
xn tn
このとき誤差関数は以下のように表せる.
(
E(w) = − ϕ( )∑n∈M
w
T
xn tn
は誤分類されたデータの集合)
この誤差関数をパーセプトロン基準と呼ぶ
M
誤差関数最小化
誤差関数の最小化に確率的最急降下法を用いると,
の更新式は以下のように表せる.w
(
= − η∇E(w) = + ηϕ( )w
(τ+1)
w
(τ)
w
(τ)
xn tn
はステップ数,τ は学習率パラメータ)η
更新式の解釈
データを正しく分類-> に変化を加えないw
のデータを誤分類->C1 にw を加えるηϕ( )xn
のデータを誤分類->C2 からw を引くηϕ( )xn
の関係式から,= + ηϕ( )w
(τ+1)
w
(τ)
xn tn
となるので,誤分類されたデータに対しての誤差を減少させていることがわかる
− ϕ( ) = − ϕ( ) − η(ϕ( ) ϕ( ) < − ϕ( )w
(τ+1)T
xn tn w
(τ)T
xn tn xn tn )
T
xn tn w
(τ)T
xn tn
総誤差関数を減少させることは保証していないので注意.
パーセプトロンの収束定理
厳密解が存在する場合(学習データ集合が線形に分離可能な場合)は
有限回の繰り返しで厳密解に収束することが保証されている
注意点
必要な繰り返し回数はかなり多く,実用的には,分離できない問題なのか,
単に収束が遅い問題なのかの区別が収束するまでわからない
線形分離可能な場合でも,パラメータの初期値やデータの提示順に依存して
様々な解に収束してしまう.
実装
jupyter_nb
ロジスティック回帰
2クラスのロジスティック回帰モデル
のパラメータ
p( |x) = σ( ϕ(x))C1 w
T
を最尤法で決定する問題を考える.
以降のスライドでは簡単のため
w
とかく.ϕ(x) = ϕ
p( |x) = σ( ϕ)C1 w
T
学習データの一組 を,(ϕ, t)(t ∈ {0, 1})
がクラスx の時にC1 と定めれば,
尤度は
t = 1
とかける.
L(w|ϕ, t) = σ(wϕ {1 − σ( ϕ))
t
w
T
}
1−t
よって,学習データ に対する対数尤度はD = {( , ), ( , ), …, ( , )}ϕ1 t1 ϕ2 t2 ϕn tn
より,
L(w|D) = σ(
{1 − σ( )∏i
w
T
ϕi )
ti
w
T
ϕi }
1−ti
とかける.
lnL(w|D) =
[
lnσ( ) + (1 − )ln
{1 − σ( )
}]
∑i
ti w
T
ϕi ti w
T
ϕi
σ(x)
d
dx
=
d
dx
1
1 + exp(−x)
=
exp(−x)
(1 + exp(−x))
2
=
{
1 − }
1
1 + exp(−x)
1
1 + exp(−x)
= σ(x)(1 − σ(x))
準備
lnσ( ϕ)
d
dw
w
T
= σ( ϕ)
1
σ( ϕ)w
T
d
dw
w
T
= σ( ϕ)
{1 − σ( ϕ)
} ϕ
1
σ( ϕ)w
T
w
T
w
T
d
dw
w
T
=
{1 − σ( ϕ)
}ϕw
T
準備
同様に,
となる
ln
{1 − σ( ϕ)
} = −σ( ϕ)ϕ =
{0 − σ( ϕ)
}ϕd
dw
w
T
w
T
w
T
対数尤度を 倍したものを誤差関数とし,以下のように表す,(−1)
これを
E(w) = − [
lnσ( ) + (1 − )ln
{1 − σ( )
}]
∑i
ti w
T
ϕi ti w
T
ϕi
で微分すると,w
と表せるが,これはさらに,
E(w) = − [ {1 − σ( )
} + (1 − )
{0 − σ( )
} ]
d
dw
∑i
ti w
T
ϕi ϕi ti w
T
ϕi ϕi
とかける
E(w) = − { − σ( )
}
d
dw
∑i
ti w
T
ϕi ϕi
t
y
X
= ( , , …,t1 t2 tn )
T
= (σ( ), σ( ), …, σ( ph )w
T
ϕ1 w
T
ϕ2 w
T
in )
T
= ( , , …,ϕ1 ϕ2 ϕn )
T
さらに,
と置けば,誤差関数の勾配は以下のように表せる.
E(w) = − (t − y) = (y − t)
d
dw
X
T
X
T
ところで,
を再び
E(w) = − { − σ( )
}
d
dw
∑i
ti w
T
ϕi ϕi
で微分すると以下のヘッセ行列を得る.w
これを整理すると,以下のように表せる.
H = σ( )
{1 − σ( )
}∑i
w
T
ϕi w
T
ϕi ϕi ϕT
i
H = RXX
T
R =
⎛
⎝
⎜
⎜
⎜
σ( )(1 − σ( ))w
T
ϕ1 w
T
ϕ1
⋮
0
⋯
⋱
⋯
0
⋮
σ( )(1 − σ( ))w
T
ϕn w
T
ϕn
⎞
⎠
⎟
⎟
⎟
はH の対角成分が正であることに注意すると,
任意のベクトル
R
に対してu なので,Hu > 0u
T
が正定値行列であることがわかる.
したがって,誤差関数は唯一の極小解を持つ.
H
誤差関数の最小化
解析的に解を求めることはできないので数値解法を用いる
最急降下法
ニュートン・ラフソン法
最急降下法
= − η∇E( )w
(τ+1)
w
(τ)
w
(τ)
ニュートン・ラフソン法
= − ∇E( )w
(τ+1)
w
(τ)
H
−1
w
(τ)
はH
−1
に依存しているため,w が新たに求められるたびにw
(正確にはH
−1
)を再計算する必要がある.
これが理由で,このアルゴリズムは反復最重み付け最小二乗法
またはIRLS(iterative reweighted least squares method)として知られている.
R
実装
jubyter_nb
固定基底関数
もとの入力ベクトル を,基底関数ベクトルx に変換する意味を考えてみる.
決定境界は,特徴空間
ϕ(x)
においては線形であるが,
もとの入力空間
ϕ
においては非線形になる.x
実装
左:
右:
+ +w0 w2 x1 w2 x2
+ + + +w0 w2 x1 w2 x2 w3 x
2
1
w4 x
2
2
固定基底関数の限界
基底関数を固定するという仮定から,
入力次元数 に対して,指数的に基底関数の数を
増やしていく必要がある.(次元の呪い)
サポートベクトルマシンやニューラルネットワークは,
これらの問題を上手く克服する.
D
まとめ
今回はPRMLの4章前半をまとめました.
難しい内容ですが,非常に勉強になるので,
今後も時間をかけて読み進めていこうと思います.

線形識別モデル