5. 6.3.2 判別分析法
線形変換後の分散が定義のように与えられることの確認
1 X
(yi mk )2
←線形変換後の分散
Nk
i2Ck
1 X
=
(yi mk )(yi mk )T
(スカラの転置はスカラ)
Nk
i2Ck
1 X T
=
(w xi wT µk )(wT xi wT µk )T
Nk
i2Ck
1 X T
=
(w (xi µk ))(wT (xi µk ))T
Nk
i2Ck
1 X T
=
w (xi µk )(xi µk )T w
Nk
i2Ck
= wT
1 X
(xi
Nk
µk )(xi
i2Ck
µk )T
!
w
= w T ⌃k w
よって, 線形変換後の分散は
2
k
= w T ⌃k w
としてよいことが確認された.
5
13. 6.3.2 判別分析法
判別分析法
クラス間分散
h=
クラス内分散
1
m = (N1 m1 + N2 m2 )
¯
N
P (C1 )(m1 m)2 + P (C2 )(m2
¯
=
2
2
P (C1 ) 1 + P (C2 ) 2
m)2
¯
全データの平均
N1
N2
=
m1 +
m2
N
N
N1 T
N2 T
=
(w µ1 + w0 ) +
(w µ2 + w0 )
N
N
N1 T
N1
N2 T
N2
=
w µ1 +
w0 +
w µ2 +
w0
N
N
N
N
✓
◆ ✓
◆
N1
N1
N2
N2
T
=w
µ1 +
µ2 +
+
w0
N
N
N
N
!
N1 1 X
N2 1 X
xi +
xi + w0
= wT
N N1
N N2
i2C1
i2C2
!
N
1 X
写像前の全データの平均ベクトルを
= wT
xi + w0
N i=1
写像したものであることが分かる.
13
14. 6.3.2 判別分析法
P (C1 )(m1 m)2 + P (C2 )(m2
¯
h=
2
2
P (C1 ) 1 + P (C2 ) 2
@
@
2
k
@
@
2
k
P (C1 )(m1
P (C1 )
@h
2 =
@ k
2
1
m)2
¯
2
(6.38) を で微分する
k
m)2 = 0
¯
+ P (C2 )
2
2
= P (Ck )
m)2 + P (C2 )(m2
¯
P (Ck ) P (C1 )(m1
(P (C1 )
2
1
+ P (C2 )
2 )2
2
公式:
✓
m)2
¯
f (x)
g(x)
◆0
f 0 (x)g(x) f (x)g 0 (x)
=
g 2 (x)
14
20. 6.3.3 多クラス問題への拡張
各クラスのデータ数を
Sk =
X
(xi
µk )(xi
Nk
µk )T
i2Ck
1 X
µk =
xi
Nk
(k = 1, . . . , K)
(6.45)
とすると,
各クラスのクラス内変動
(6.46)
i2Ck
SW =
K
X
Sk
全クラスのクラス内変動の和
k=1
N
K
K
1 X
1 XX
1 X
1 X
µ=
xi =
xi =
Nk
xi
N i=1
N
N
Nk
k=1 i2Ck
K
1 X
=
Nk µ k
N
k=1
k=1
全データの平均
i2Ck
(6.47)
20
21. 6.3.3 多クラス問題への拡張
全平均からの全データの変動の和
N
X
ST =
(xi µ)(xi µ)T
i=1
=
K
XX
(xi
K
XX
{(xi
µk ) + (µk
µ)}{(xi
µk ) + (µk
K
XX
{(xi
µk ) + (µk
µ)}{(xi
µk )T + (µk
{(xi
µk )(xi
µ)T
µ)(xi
k=1 i2Ck
=
k=1 i2Ck
=
k=1 i2Ck
=
K
XX
k=1 i2Ck
=
K
XX
+(xi
(xi
k=1 i2Ck
+
µk )(µk
µk )(xi
K
X
µk )T + (µk
X
k=1 i2Ck
µk )T +
K
XX
µ)(xi
(µk
k=1 i2Ck
(xi
µk )(µk
µ)T +
µ)T }
µ)T
µ)(µk
µ)T + (µk
µ)}T
µk )T }
µ)(µk
K
XX
(µk
µ)T
µ)(xi
µk )T
k=1 i2Ck
21
22. 6.3.3 多クラス問題への拡張
ここで,
K
XX
(xi
µk )(µk
k=1 i2Ck
K
X X
µ)T =
(
xi
X
k=1 i2Ck
=
K
X
(Nk µk
µ)T
µk )(µk
i2Ck
Nk µk )(µk
µ)T = 0
k=1
K
XX
(µk
µ)(xi
T
µk ) =
k=1 i2Ck
K
X
(µk
=
xi
i2Ck
k=1
K
X
µ)(
X
(µk
µ)(Nk µk
X
µk )T
i2Ck
Nk µ k ) T = 0
なので,
k=1
22
23. 6.3.3 多クラス問題への拡張
ST =
K
XX
(xi
µk )(xi
µk )T +
k=1 i2Ck
= SW +
K
X
K
XX
(µk
µ)(µk
µ)T
k=1 i2Ck
Nk (µk
µ)(µk
µ)T
(6.49)
k=1
この最後の項を用いて, クラス間変動
SB =
K
X
Nk (µk
µ)(µk
µ)T
(6.50)
を定義する.
k=1
23
24. 6.3.3 多クラス問題への拡張
K 1
d > K であれば, 次元から 次元空間への線形写像
d
yk = w T x
k
(k = 1, . . . , K
1)
(6.51)
d
を考えることになる. ( :バイアス項を除いたデータの次元)
y = (y1 , . . . , yK
1)
W = (w1 , . . . , wK
T
1)
K 1
とすれば, 個の線形変換は,
y = WTx
(6.52)
と書ける.
24
26. 6.3.3 多クラス問題への拡張
線形変換後のクラス内変動
˜
SW =
K
XX
(y i
mk )(y i
mk ) T
k=1 i2Ck
=
K
XX
(W T xi
W T µk )(W T xi
W T µk )T
k=1 i2Ck
=
K
XX
k=1 i2Ck
=
K
XX
{W T (xi
µk )}{W T (xi
W T (xi
µk )(xi
µk )}T
µk )T W
k=1 i2Ck
=W
T
K
X
X
k=1 i2Ck
= W T SW W
(xi
µk )(xi
µk )T
!
W
(6.53)
26
27. 6.3.3 多クラス問題への拡張
線形変換後のクラス間変動
˜
SB =
K
X
Nk (mk
m)(mk
m)T
k=1
=
K
X
Nk (W T µk
W T µ)(W T µk
W T µ)T
k=1
=
K
X
k=1
=
K
X
Nk {W T (µk
Nk W T (µk
µ)}{W T (µk
µ)(µk
µ)}T
µ)T W
k=1
= WT
K
X
k=1
= W T SB W
Nk (µk
µ)(µk
µ)T
!
W
(6.54)
27
28. 6.3.3 多クラス問題への拡張
また, 線形変換後の全変動は
˜
ST =
N
X
(y i
m)T
m)(y i
i=1
=
K
XX
(y i
m)(y i
m)T
k=1 i2Ck
=
K
XX
{(y i
mk ) + (mk
m)}{(y i
mk ) + (mk
K
XX
{(y i
mk ) + (mk
m)}{(y i
mk )T + (mk
K
XX
{(y i
mk )(y i
k=1 i2Ck
=
k=1 i2Ck
=
m)}T
k=1 i2Ck
+(y i
mk )T + (mk
mk )(mk
m)(mk
m)T + (mk
m)(y i
m)T }
m)T
mk ) T }
28
29. 6.3.3 多クラス問題への拡張
=
K
XX
(y i
mk )(y i
mk ) T +
k=1 i2Ck
+
K
XX
K
XX
(mk
m)(mk
m)T
k=1 i2Ck
(y i
mk )(mk
k=1 i2Ck
˜
˜
= SW + SB +
m)T +
K
XX
(mk
m)(y i
mk ) T
k=1 i2Ck
K
XX
k=1 i2Ck
(y i
mk )(mk
m)T +
K
XX
(mk
m)(y i
mk ) T
k=1 i2Ck
29
30. 6.3.3 多クラス問題への拡張
ここで
K
XX
(y i
mk )(mk
k=1 i2Ck
K
X X
m)T =
(
yi
X
m)T
mk )(mk
k=1 i2Ck
i2Ck
K
X
Nk mk )(mk
=
(Nk mk
m)T = 0
k=1
K
XX
(mk
m)(y i
mk ) T =
k=1 i2Ck
K
X
(mk
=
yi
i2Ck
k=1
K
X
m)(
X
(mk
m)(Nk mk
X
mk ) T
i2Ck
Nk mk ) T = 0
k=1
となるので,
˜
˜
˜
ST = SW + SB
(6.55)
となることが確認できる.
30
35. 6.4.1 ロジスティック関数
2クラス問題を考える.
C1
P (C1 |x)
クラス の事後確率 は
P (x|C1 )P (C1 )
P (C1 |x) =
P (x)
P (x|C1 )P (C1 )
=
P (x, C1 ) + P (x, C2 )
P (x|C1 )P (C1 )
=
P (x|C1 )P (C1 ) + P (x|C2 )P (C2 )
ここで
P (x|C1 )P (C1 )
a = ln
P (x|C2 )P (C2 )
(6.58)
(6.57)
とおくと
P (x|C1 )P (C1 )
e =
P (x|C2 )P (C2 )
a
,e
a
P (x|C2 )P (C2 )
=
P (x|C1 )P (C1 )
35
36. 6.4.1 ロジスティック関数
,1+e
1
,
1+e
a
a
P (x|C1 )P (C1 ) + P (x|C2 )P (C2 )
=
P (x|C1 )P (C1 )
P (x|C1 )P (C1 )
=
P (x|C1 )P (C1 ) + P (x|C2 )P (C2 )
= P (C1 |x)
よって
(a)
1
P (C1 |x) =
= (a)
1 + exp( a)
(6.59)
と表すことができる.
をロジスティック関数(ロジスティック・シグモイド関数)と呼ぶ.
36
37. 6.4.1 ロジスティック関数
ロジスティック関数
・無限区間
( 1, 1) を区間 (0, 1)
に写像.
・S字型の圧縮関数.
章末問題 6.4
・対称性:
( a) = 1
(a)
1
* ( a) =
1 + exp(a)
exp( a)
=
exp( a) + 1
exp( a) + 1 1
=
exp( a) + 1
=1
=1
1
exp( a) + 1
(a)
37
38. 6.4.1 ロジスティック関数
ロジスティック関数の逆関数を考える.
1
(a) =
1 + exp( a)
,
ロジスティック関数
1
= 1 + exp( a)
(a)
, exp( a) =
1
(a)
1=
(a)
, exp(a) =
1
(a)
✓
◆
(a)
, a = ln
1
(a)
✓
◆
P (C1 |x)
= ln
1 P (C1 |x)
P (C1 |x)
= ln
P (C2 |x)
1
(a)
(a)
(* (a) = P (C1 |x))
(* 1
P (C1 |x) = P (C2 |x))
38
39. 6.4.1 ロジスティック関数
ロジスティック関数の逆関数
a = ln
✓
P (C1 |x)
1 P (C1 |x)
◆
P (C1 |x)
= ln
P (C2 |x)
(6.60)
をロジット関数という.
P (C1 |x)
P (C2 |x)
:オッズ(事後確率の比)
P (C1 |x)
ln
P (C2 |x)
:ログオッズ(オッズの対数)
39
41. 6.4.2 ロジスティック回帰モデル
xi (i = 1, . . . , N )
N人の喫煙量を観測したとき,
x
喫煙量 の人が肺がんになる確率を
1
P (1|x) = f (x) =
1 + exp( (w0 + w1 x))
(6.61)
で表す.
w = (w0 , w1 )T
x = (1, x)T
1
として, (バイアス項に対応する を追加した)
a = w T x = w0 + w1 x
1
exp(a)
f (x) =
=
= (a)
1 + exp( a)
1 + exp(a)
とすれば,
となる.
a
x
の線形関数である を非線形関数(ここではロジスティック関数)
で変換したモデルで事象を表現している.
41
50. 6.4.3 パラメータの最尤推定
これを最大化したい
よって, N回の試行に基づく尤度関数は,
L(⇡1 , . . . , ⇡N ) =
N
Y
i=1
f (ti |⇡i ) =
N
Y
t
⇡i i (1
⇡i )(1
ti )
i=1
負の対数尤度関数は,
L(⇡1 , . . . , ⇡N ) =
=
ln L(⇡1 , . . . , ⇡N ) =
⇣
t
ln ⇡i i (1
i=1
=
ln
N
X⇣
⇡i )(1
t
ln ⇡i i + ln(1
ti )
⌘
⇡i )(1
i=1
=
N
Y
t
⇡i i (1
⇡i )(1
i=1
N
X
N
X
となり,
(6.67)
(ti ln ⇡i + (1
ti ) ln(1
ti )
⌘
⇡i ))
ti )
!
これを最小化したい
(6.68)
となる.
i=1
この評価関数は, 交差エントロピー型誤差関数とよばれる.
50
51. 6.4.3 パラメータの最尤推定
ここで,
L(w) =
=
exp(wT xi )
⇡i = (wT xi ) =
1 + exp(wT xi )
✓
◆
N
T
X⇢
exp(w xi )
ti ln
+ (1
Tx )
1 + exp(w i
i=1
N
X⇢
ti ln
✓
ti ln
✓
i=1
=
N
X⇢
i=1
=
N
X
T
exp(w xi )
1 + exp(wT xi )
T
exp(w xi )
1 + exp(wT xi )
ti ln exp(wT xi )
◆
◆
+ (1
+ (1
を代入すると,
✓
T
ti ) ln 1
ti ) ln
✓
ti ) ln
✓
exp(w xi )
1 + exp(wT xi )
T
◆
T
1 + exp(w xi ) exp(w xi )
1 + exp(wT xi )
1
1 + exp(wT xi )
ln(1 + exp(wT xi )) + (ti
◆
◆
1) ln 1 + exp(wT xi )
i=1
=
N
X
i=1
=
{ti ln exp(wT xi )
N
X
i=1
ti ln(1 + exp(wT xi ))
+ti ln(1 + exp(wT xi ))
{ti wT xi
ln(1 + exp(wT xi ))}
ln(1 + exp(wT xi ))}
(6.70)
51
52. 6.4.3 パラメータの最尤推定
w
負の対数尤度関数を最小にするパラメータ を得るために,
w
で微分することを考える.
まず, 準備として
@(ti wT xi )
@(wT xi )
@(xT w)
i
= ti
= ti
= ti xi
@w
@w
@w
@(ln(1 + exp(wT xi ))
1
@(1 + exp(wT xi ))
=
@w
1 + exp(wT xi )
@w
1
@(wT xi )
T
=
exp(w xi )
Tx )
1 + exp(w i
@w
exp(wT xi ) @(xT w)
i
=
1 + exp(wT xi ) @w
exp(wT xi )
=
x
Tx ) i
1 + exp(w i
xi exp(wT xi )
=
1 + exp(wT xi )
✓
T
@(a x)
*
=a
@x
◆
なので,
52
53. 6.4.3 パラメータの最尤推定
N
X✓
@L(w)
=
@w
T
xi exp(w xi )
1 + exp(wT xi )
t i xi
i=1
N
X
=
i=1
N
X
=
✓
T
exp(w xi )
1 + exp(wT xi )
xi ti
xi (ti
⇡i )
i=1
=
N
X
xi (⇡i
◆
ti )
◆
✓
T
exp(w xi )
* ⇡i =
1 + exp(wT xi )
◆
(6.71)
i=1
N
X
xi (⇡i
ti ) = 0
w
となる が解であるが, 解析的に解を求めることができない.
i=1
最急降下法やニュートン-ラフソン法などで数値的に解を求めることになる.
53
55. 6.4.4 多クラス問題への拡張と非線形変換
(K > 2)
多クラス への拡張は, 各クラスごとに線形変換
ak = w T x
k
(k = 1, . . . , K)
を求め, 事後確率を
exp(ak )
P (Ck |x) = ⇡k (x) = K
X
exp(aj )
ソフトマックス関数
j=1
で計算して, 最大事後確率を与えるクラスに分類すればよい.
55
56. 6.4.4 多クラス問題への拡張と非線形変換
'( )
x
線形関数でうまく分離できない場合, 入力ベクトル を非線形関数 で
'(x) = ('0 = 1, '1 (x), . . . , 'M (x))T
(6.74)
M +1
のように 次元データに変換すると, うまく分離できるようになる場合がある.
M +1
変換された 次元空間でロジスティック回帰を
ak = wT '(x)
k
のように行っても, その空間内での識別境界は超平面になる.
このような非線形関数を非線形基底関数という.
x
この超平面を元の の空間に逆写像すれば, 一般にその境界は曲面になる.
'(x)
x
このような非線形変換を行う場合でも, を に書き換えれば以後の議論は
そのまま成り立つ.
56
57. 6.4.4 多クラス問題への拡張と非線形変換
K
クラス数
X = (x1 , . . . , xN )T
学習データ
T = (t1 , . . . , tN )T
教師データ
xi
ti
Ck
K
各教師データ は 次元のベクトルで, が属するクラス( )の
tik
1
0
位置に対応する要素の のみが で, ほかはすべて のダミー変数表
現とする.
ti = (0, . . . , 0, 1, 0, . . . , 0)T
k番目の要素
57
58. 6.4.4 多クラス問題への拡張と非線形変換
xi
Ck
入力ベクトル がクラス に属する確率は,
K
Y
k=1
P (Ck |xi )tik = P (Ck |xi )
これを最大化したい
と考えることができるので, 尤度関数は,
P (T |w1 , . . . , wK ) =
ここで,
N K
YY
i=1 k=1
P (Ck |xi )tik =
exp aik
⇡ik = PK
l=1
N K
YY
tik
⇡ik
i=1 k=1
aij = wT xi
j
exp ail
となり, 負の対数尤度関数は次のようになる.
E(w1 , . . . , wK ) =
=
ln
i=1 k=1
tik
⇡ik =
N K
XX
i=1 k=1
である.
これを最小化したい
ln P (T |w1 , . . . , wK )
N K
YY
(6.76)
tik
ln ⇡ik =
N K
XX
tik ln ⇡ik
(6.78)
i=1 k=1
58
59. 6.4.4 多クラス問題への拡張と非線形変換
wj
wj
0
各 の最尤推定は, 評価関数を で微分して とおけば求められる.
N K
XX
@E
=
@wj
i=1 k=1
1 @⇡ik
tik
=
⇡ik @wj
N K
XX
i=1 k=1
1 @⇡ik @aij
tik
⇡ik @aij @wj
ここで,
exp aik
⇡ik = PK
l=1
exp ail
aij = wT xi
j
なので準備として,
@(wT xi )
@aij
@(xT wj )
j
i
=
=
= xi
@wj
@wj
@wj
⇣
⌘ ⇣P
⌘
K
@
exp aik
l=1 exp ail
@aij
@⇡ik
=
⇣P
@aij
K
(exp aik )
⌘2
l=1 exp ail
⇣
@
@aij
PK
l=1
exp ail
⌘
(*)
59
60. 6.4.4 多クラス問題への拡張と非線形変換
k=j
のとき,
⇣P
⌘
K
(exp aij )
(exp aik ) (exp aij )
l=1 exp ail
⇣P
⌘2
(*) =
K
l=1 exp ail
(P
)
K
exp aij
exp aik
l=1 exp ail
= PK
= ⇡ij (1
PK
PK
l=1 exp ail
l=1 exp ail
l=1 exp ail
k 6= j
(*) =
=
となり,
のとき,
0
(exp aik ) (exp aij )
⇣P
⌘2
K
l=1 exp ail
exp aik
PK
l=1
=
⇡ik )
exp ail
exp aij
PK
⇡ik ⇡ij = ⇡ij (0
l=1
exp ail
⇡ik )
ここで, クロネッカーのデルタ
(*) = ⇡ij (
jk
⇡ik )
jk
となるので,
⇢
1 j=k
=
0 j 6= k
を使用すると,
となる.
60
61. 6.4.4 多クラス問題への拡張と非線形変換
よって,
@E
=
@wj
=
N K
XX
i=1 k=1
N K
XX
i=1 k=1
=
N
X
1
tik
⇡ij (
⇡ik
⇡ij
tik
⇡ik
tij xi +
i=1
=
N
X
=
+
tij xi +
(⇡ij
N
X
N K
XX
tik ⇡ij xi
i=1 k=1
⇡ij xi
i=1
i=1
N
X
jk xi
N
X
⇡ik )xi
jk
K
X
tik
*
k=1
⇡ij xi
i=1
tij )xi = 0
K
X
⇡ij
tik
⇡ik
K
X
tik = 1
k=1
*
!
k=1
jk
⇡ij
= tij
= tij
⇡ij
!
(6.79)
i=1
(6.79)
式 は解析的に解けないので, 2クラスの場合と同様,
ニュートン-ラフソン法などを用いて解くことになる.
61