はじめてのパターン認識 第6章 後半
DESCRIPTION
第6章「線形識別関数」(後半)TRANSCRIPT
「はじめてのパターン認識」読書会第6章 後半
2013/10/1(火) @Prunus1350
1
6.3.2 判別分析法
2
6.3.2 判別分析法
• 前節で扱ったフィッシャーの基準
• クラス間変動を用いる
• 線形変換のバイアス項を明示的に扱うことができない
バイアス項を明示的に扱うことができるような定式化を考える.
3
6.3.2 判別分析法
• 線形変換後の の平均値と分散は次のように定義される.
mk = wTµk + w0
�2k = wT⌃kw
µk =1
Nk
X
i2Ck
xi
⌃k =1
Nk
X
i2Ck
(xi � µk)(xi � µk)T
y
ただし,
である.
4
6.3.2 判別分析法
=1
Nk
X
i2Ck
(yi �mk)(yi �mk)T
= wT⌃kw
線形変換後の分散が定義のように与えられることの確認
=1
Nk
X
i2Ck
(wTxi �w
Tµk)(w
Txi �w
Tµk)
T
=1
Nk
X
i2Ck
(wT (xi � µk))(wT (xi � µk))
T
=1
Nk
X
i2Ck
w
T (xi � µk)(xi � µk)Tw
= w
T
1
Nk
X
i2Ck
(xi � µk)(xi � µk)T
!w
1
Nk
X
i2Ck
(yi �mk)2 ←線形変換後の分散
(スカラの転置はスカラ)
�2k = wT⌃kwよって, 線形変換後の分散は としてよいことが確認された.
5
6.3.2 判別分析法(の準備としての一般形)
@h
@w=
@h
@�21
@�21
@w+
@h
@�22
@�22
@w+
@h
@m1
@m1
@w+
@h
@m2
@m2
@w= 0
@h
@w0=
@h
@�21
@�21
@w0+
@h
@�22
@�22
@w0+
@h
@m1
@m1
@w0+
@h
@m2
@m2
@w0= 0
クラス分離度の評価関数を考える
h(m1,�21 ,m2,�
22)
この評価関数を最大にする と 求めるw w0
を解けばよい
(6.31)
(6.32)
6
6.3.2 判別分析法(の準備としての一般形)
@�2k
@w=
@(wT⌃kw)
@w
= (⌃k +⌃Tk )w
= 2⌃kw
@�2k
@w0= 0
@mk
@w=
@(wTµk + w0)
@w
=@(µT
kw + w0)
@w
= µk
@mk
@w0=
@(wTµk + w0)
@w0
= 1
まずは準備として,
(∵ 付録の公式)
(∵ 共分散行列は対称行列)
(∵ 付録の公式)
(∵ スカラーの転置はスカラー)
7
6.3.2 判別分析法(の準備としての一般形)
@h
@w=
@h
@�21
@�21
@w+
@h
@�22
@�22
@w+
@h
@m1
@m1
@w+
@h
@m2
@m2
@w
=@h
@�21
· 2⌃1w +@h
@�22
· 2⌃2w +@h
@m1µ1 +
@h
@m2µ2
= 2
✓@h
@�21
⌃1 +@h
@�22
⌃2
◆w +
✓@h
@m1µ1 +
@h
@m2µ2
◆= 0
) 2
✓@h
@�21
⌃1 +@h
@�22
⌃2
◆w = �
✓@h
@m1µ1 +
@h
@m2µ2
◆
に代入すると,(6.31)
(6.33) が得られ,
8
6.3.2 判別分析法(の準備としての一般形)
@h
@w0=
@h
@�21
@�21
@w0+
@h
@�22
@�22
@w0+
@h
@m1
@m1
@w0+
@h
@m2
@m2
@w0
=@h
@�21
· 0 + @h
@�22
· 0 + @h
@m1· 1 + @h
@m2· 1
=@h
@m1+
@h
@m2= 0
に代入すると,(6.32)
また,
(6.34) が得られる.
9
6.3.2 判別分析法(の準備としての一般形)
s =
@h@�2
1
@h@�2
1+ @h
@�22
@h
@�21
= s
✓@h
@�21
+@h
@�22
◆
1� s =
⇣@h@�2
1+ @h
@�22
⌘� @h
@�21
@h@�2
1+ @h
@�22
=
@h@�2
2
@h@�2
1+ @h
@�22
@h
@�22
= (1� s)
✓@h
@�21
+@h
@�22
◆
と定義すると,
が得られる.
より
ここで,
(6.35)
が得られ,
また,
10
6.3.2 判別分析法(の準備としての一般形)
= 2
✓@h
@�21
⌃1 +@h
@�22
⌃2
◆w
= 2
⇢s
✓@h
@�21
+@h
@�22
◆⌃1 + (1� s)
✓@h
@�21
+@h
@�22
◆⌃2
�w
= 2
✓@h
@�21
+@h
@�22
◆{s⌃1 + (1� s)⌃2}w
= �✓
@h
@m1µ1 +
@h
@m2µ2
◆
= �✓
@h
@m1µ1 �
@h
@m1µ2
◆
=@h
@m1(µ2 � µ1)
) 2
✓@h
@�21
+@h
@�22
◆{s⌃1 + (1� s)⌃2}w =
@h
@m1(µ2 � µ1)
(6.33 の左辺)
(6.33 の右辺)
が得られた.(6.36)
11
6.3.2 判別分析法(の準備としての一般形)
2
✓@h
@�21
+@h
@�22
◆{s⌃1 + (1� s)⌃2}w =
@h
@m1(µ2 � µ1)
w = (s⌃1 + (1� s)⌃2)�1(µ2 � µ1)
再掲
今, ベクトルの向きが問題なのでスカラー項は無視して良い.よって, 最適な は次式となる.
(6.36)
(6.37)
w
12
6.3.2 判別分析法
h = =P (C1)(m1 � m̄)2 + P (C2)(m2 � m̄)2
P (C1)�21 + P (C2)�2
2
m̄ =1
N(N1m1 +N2m2)
=N1
Nm1 +
N2
Nm2
=N1
N(wTµ1 + w0) +
N2
N(wTµ2 + w0)
=N1
NwTµ1 +
N1
Nw0 +
N2
NwTµ2 +
N2
Nw0
= wT
✓N1
Nµ1 +
N2
Nµ2
◆+
✓N1
N+
N2
N
◆w0
= w
T
N1
N
1
N1
X
i2C1
xi +N2
N
1
N2
X
i2C2
xi
!+ w0
= w
T
1
N
NX
i=1
xi
!+ w0
クラス間分散
クラス内分散
全データの平均
写像前の全データの平均ベクトルを写像したものであることが分かる.
判別分析法
13
6.3.2 判別分析法
h =P (C1)(m1 � m̄)2 + P (C2)(m2 � m̄)2
P (C1)�21 + P (C2)�2
2
@
@�2k
�P (C1)�
21 + P (C2)�
22
�= P (Ck)
@
@�2k
�P (C1)(m1 � m̄)2
�= 0
@h
@�2k
= �P (Ck)
�P (C1)(m1 � m̄)2 + P (C2)(m2 � m̄)2
�
(P (C1)�21 + P (C2)�2
2)2
✓f(x)
g(x)
◆0=
f
0(x)g(x)� f(x)g0(x)
g
2(x)
を で微分する
公式:
�2k(6.38)
14
6.3.2 判別分析法
s =
@h@�2
1
@h@�2
1+ @h
@�22
=�P (C1){P (C1)(m1�m̄)2+P (C2)(m2�m̄)2}
(P (C1)�21+P (C2)�2
2)2
�P (C1){P (C1)(m1�m̄)2+P (C2)(m2�m̄)2}(P (C1)�2
1+P (C2)�22)
2 � P (C2){P (C1)(m1�m̄)2+P (C2)(m2�m̄)2}(P (C1)�2
1+P (C2)�22)
2
=P (C1){· · · }
P (C1){· · · }+ P (C2){· · · }
=P (C1){· · · }
(P (C1) + P (C2)) {· · · }
= P (C1)
に代入
が得られた
(6.35)
15
6.3.2 判別分析法
w = (s⌃1 + (1� s)⌃2)�1(µ2 � µ1)
w = (P (C1)⌃1 + P (C2)⌃2)�1(µ2 � µ1)
h =P (C1)(m1 � m̄)2 + P (C2)(m2 � m̄)2
P (C1)�21 + P (C2)�2
2
@h
@mk=
2P (Ck)(mk � m̄)
P (C1)�21 + P (C2)�2
2
@h
@m1+
@h
@m2= 0
2P (C1)(mk � m̄)
P (C1)�21 + P (C2)�2
2
+2P (C2)(mk � m̄)
P (C1)�21 + P (C2)�2
2
= 0
P (C1)(m1 � m̄) + P (C2)(m2 � m̄) = 0
に代入すると
を で微分する
に代入すると
mk
(6.37)
(6.40)
(6.38)
(6.41)
(6.34)
16
6.3.2 判別分析法
P (C1)(m1 � m̄) + P (C2)(m2 � m̄) = 0
P (C1)m1 + P (C2)m2 � (P (C1) + P (C2))m̄ = 0
P (C1)(wTµ1 + w0) + P (C2)(w
Tµ2 + w0)� m̄ = 0
(P (C1) + P (C2))w0 + P (C1)wTµ1 + P (C2)w
Tµ2 � m̄ = 0
w0 = �wT (P (C1)µ1 + P (C2)µ2) + m̄
,
,
,
, (6.42)
このようにして最適なバイアス項 が得られる.w0
17
6.3.3 多クラス問題への拡張
18
6.3.3 多クラス問題への拡張
2クラスの場合は識別境界を計算できたが, 多クラスの場合は, 次元のデータをたかだか 次元の特徴空間に写像する線形変換行列を見つける問題になるので, 識別境界は計算できない.
K(> 2)
d(> K)
K � 1
フィッシャーの基準を, 多クラス の場合に拡張することを考える.
19
6.3.3 多クラス問題への拡張
Sk =X
i2Ck
(xi � µk)(xi � µk)T
µk =1
Nk
X
i2Ck
xi
SW =KX
k=1
Sk
µ =1
N
NX
i=1
xi =1
N
KX
k=1
X
i2Ck
xi =1
N
KX
k=1
Nk1
Nk
X
i2Ck
xi
=1
N
KX
k=1
Nkµk
各クラスのクラス内変動
全クラスのクラス内変動の和
全データの平均
(6.45)
(6.46)
(6.47)
Nk (k = 1, . . . ,K)各クラスのデータ数を とすると,
20
6.3.3 多クラス問題への拡張全平均からの全データの変動の和
ST =NX
i=1
(xi � µ)(xi � µ)T
=KX
k=1
X
i2Ck
(xi � µ)(xi � µ)T
=KX
k=1
X
i2Ck
{(xi � µk) + (µk � µ)}{(xi � µk) + (µk � µ)}T
=KX
k=1
X
i2Ck
{(xi � µk) + (µk � µ)}{(xi � µk)T + (µk � µ)T }
=KX
k=1
X
i2Ck
{(xi � µk)(xi � µk)T + (µk � µ)(µk � µ)T
+(xi � µk)(µk � µ)T + (µk � µ)(xi � µk)T }
=KX
k=1
X
i2Ck
(xi � µk)(xi � µk)T +
KX
k=1
X
i2Ck
(µk � µ)(µk � µ)T
+KX
k=1
X
i2Ck
(xi � µk)(µk � µ)T +KX
k=1
X
i2Ck
(µk � µ)(xi � µk)T
21
6.3.3 多クラス問題への拡張ここで,
KX
k=1
X
i2Ck
(xi � µk)(µk � µ)T =KX
k=1
(X
i2Ck
xi �X
i2Ck
µk)(µk � µ)T
=KX
k=1
(Nkµk �Nkµk)(µk � µ)T = 0
KX
k=1
X
i2Ck
(µk � µ)(xi � µk)T =
KX
k=1
(µk � µ)(X
i2Ck
xi �X
i2Ck
µk)T
=KX
k=1
(µk � µ)(Nkµk �Nkµk)T = 0 なので,
22
6.3.3 多クラス問題への拡張
ST =KX
k=1
X
i2Ck
(xi � µk)(xi � µk)T +
KX
k=1
X
i2Ck
(µk � µ)(µk � µ)T
この最後の項を用いて, クラス間変動
= SW +KX
k=1
Nk(µk � µ)(µk � µ)T
SB =KX
k=1
Nk(µk � µ)(µk � µ)T を定義する.
(6.49)
(6.50)
23
6.3.3 多クラス問題への拡張であれば, 次元から 次元空間への線形写像d > K d K � 1
yk = w
Tk x (k = 1, . . . ,K � 1)
を考えることになる. ( :バイアス項を除いたデータの次元)d
y = (y1, . . . , yK�1)T
W = (w1, . . . ,wK�1)
とすれば, 個の線形変換は,K � 1
y = W
Tx
と書ける.
(6.52)
(6.51)
24
6.3.3 多クラス問題への拡張線形変換した後の
・クラス内変動
・クラス間変動
・全変動
S̃W
S̃B
S̃T
各クラスの平均ベクトルは
を求める.
mk =1
Nk
X
i2Ck
yi =1
Nk
X
i2Ck
W
Txi = W
T 1
Nk
X
i2Ck
xi = W
Tµk
全平均ベクトルは
m =1
N
NX
i=1
yi =1
N
KX
k=1
X
i2Ck
yi =1
N
KX
k=1
Nkmk =1
N
KX
k=1
NkWTµk
= W T 1
N
KX
k=1
Nkµk = W Tµ となるので,
25
6.3.3 多クラス問題への拡張線形変換後のクラス内変動
=KX
k=1
X
i2Ck
(W Txi �W
Tµk)(W
Txi �W
Tµk)
T
=KX
k=1
X
i2Ck
{W T (xi � µk)}{W T (xi � µk)}T
=KX
k=1
X
i2Ck
W
T (xi � µk)(xi � µk)TW
= W
T
KX
k=1
X
i2Ck
(xi � µk)(xi � µk)T
!W
= W TSWW
S̃W =KX
k=1
X
i2Ck
(yi �mk)(yi �mk)T
(6.53)
26
6.3.3 多クラス問題への拡張線形変換後のクラス間変動
S̃B =KX
k=1
Nk(mk �m)(mk �m)T
=KX
k=1
Nk(WTµk �W Tµ)(W Tµk �W Tµ)T
=KX
k=1
Nk{W T (µk � µ)}{W T (µk � µ)}T
=KX
k=1
NkWT (µk � µ)(µk � µ)TW
= W T
KX
k=1
Nk(µk � µ)(µk � µ)T!W
= W TSBW (6.54)
27
6.3.3 多クラス問題への拡張また, 線形変換後の全変動は
S̃T =NX
i=1
(yi �m)(yi �m)T
=KX
k=1
X
i2Ck
(yi �m)(yi �m)T
=KX
k=1
X
i2Ck
{(yi �mk) + (mk �m)}{(yi �mk) + (mk �m)}T
=KX
k=1
X
i2Ck
{(yi �mk) + (mk �m)}{(yi �mk)T + (mk �m)T }
=KX
k=1
X
i2Ck
{(yi �mk)(yi �mk)T + (mk �m)(mk �m)T
+(yi �mk)(mk �m)T + (mk �m)(yi �mk)T }
28
6.3.3 多クラス問題への拡張
=KX
k=1
X
i2Ck
(yi �mk)(yi �mk)T +
KX
k=1
X
i2Ck
(mk �m)(mk �m)T
+KX
k=1
X
i2Ck
(yi �mk)(mk �m)T +KX
k=1
X
i2Ck
(mk �m)(yi �mk)T
= S̃W + S̃B +KX
k=1
X
i2Ck
(yi �mk)(mk �m)T +KX
k=1
X
i2Ck
(mk �m)(yi �mk)T
29
6.3.3 多クラス問題への拡張ここでKX
k=1
X
i2Ck
(yi �mk)(mk �m)T =KX
k=1
(X
i2Ck
yi �X
i2Ck
mk)(mk �m)T
=KX
k=1
(Nkmk �Nkmk)(mk �m)T = 0
KX
k=1
X
i2Ck
(mk �m)(yi �mk)T =
KX
k=1
(mk �m)(X
i2Ck
yi �X
i2Ck
mk)T
=KX
k=1
(mk �m)(Nkmk �Nkmk)T = 0
となるので,
S̃T = S̃W + S̃B となることが確認できる.(6.55)
30
6.3.3 多クラス問題への拡張2クラスの場合と同様, 最適な写像行列 を求めるための基準は,クラス間変動行列 とクラス内変動行列 の比を最大化することである.
W
S̃B S̃W
しかし, 行列の比なので何らかのスカラー量に変換しないと, 最大値を求めることができない.
いろいろな変換方法が提案されているが, そのうちの一つは
J(W ) = Tr(S�1W SB) = Tr
⇣(W TSWW )�1W TSBW
⌘(6.56)
を最大化することである.
31
6.4 ロジスティック回帰
32
6.4 ロジスティック回帰
• 線形識別関数 の関数値の大きさは, 識別境界から離れるに従って線形に上昇し続ける.
• ロジスティック回帰は関数値を区間 に制限し, 確率的な解釈を可能にする.
• ロジスティック回帰は「回帰」という言葉が使われているが, パターン認識法の一つである.
y = w
Tx
(0, 1)
33
6.4.1 ロジスティック関数
34
6.4.1 ロジスティック関数2クラス問題を考える.
クラス の事後確率 はC1 P (C1|x)
P (C1|x) =P (x|C1)P (C1)
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)
ここで
(6.57)
とおくとa = lnP (x|C1)P (C1)
P (x|C2)P (C2)
ea =P (x|C1)P (C1)
P (x|C2)P (C2)
, e�a =P (x|C2)P (C2)
P (x|C1)P (C1)
(6.58)
35
6.4.1 ロジスティック関数
, 1 + e�a =P (x|C1)P (C1) + P (x|C2)P (C2)
P (x|C1)P (C1)
, 1
1 + e�a=
P (x|C1)P (C1)
P (x|C1)P (C1) + P (x|C2)P (C2)
= P (C1|x)
よって P (C1|x) =1
1 + exp(�a)= �(a) (6.59) と表すことができる.
�(a) をロジスティック関数(ロジスティック・シグモイド関数)と呼ぶ.
36
6.4.1 ロジスティック関数
ロジスティック関数
・無限区間 を区間 に写像.(�1,1) (0, 1)
・S字型の圧縮関数.
・対称性: �(�a) = 1� �(a)
=
exp(�a)
exp(�a) + 1
=
exp(�a) + 1� 1
exp(�a) + 1
= 1� 1
exp(�a) + 1
= 1� �(a)
* �(�a) =1
1 + exp(a)
章末問題 6.4
37
6.4.1 ロジスティック関数
ロジスティック関数の逆関数を考える.
�(a) =1
1 + exp(�a) ロジスティック関数
, 1
�(a)= 1 + exp(�a)
, exp(�a) =1
�(a)� 1 =
1� �(a)
�(a)
, exp(a) =�(a)
1� �(a)
, a = ln
✓�(a)
1� �(a)
◆
= ln
✓P (C1|x)
1� P (C1|x)
◆
= lnP (C1|x)P (C2|x)
(* �(a) = P (C1|x))
(* 1� P (C1|x) = P (C2|x))
38
6.4.1 ロジスティック関数
をロジット関数という.
a = ln
✓P (C1|x)
1� P (C1|x)
◆= ln
P (C1|x)P (C2|x)
P (C1|x)P (C2|x)
lnP (C1|x)P (C2|x)
:オッズ(事後確率の比)
:ログオッズ(オッズの対数)
ロジスティック関数の逆関数
(6.60)
39
6.4.2 ロジスティック回帰モデル
40
6.4.2 ロジスティック回帰モデル
N人の喫煙量を観測したとき,
喫煙量 の人が肺がんになる確率を
で表す.
(6.61)
として, (バイアス項に対応する を追加した)
とすれば,
f(x) =1
1 + exp(�a)=
exp(a)
1 + exp(a)= �(a) となる.
の線形関数である を非線形関数(ここではロジスティック関数)で変換したモデルで事象を表現している.x
a
1
xi (i = 1, . . . , N)
P (1|x) = f(x) =
1
1 + exp(�(w0 + w1x))
x
w = (w0, w1)T
x = (1, x)T
a = w
Tx = w0 + w1x
41
6.4.2 ロジスティック回帰モデル
このとき,ロジット関数は
a = lnP (1|x)P (0|x) = ln
P (1|x)1� P (1|x) = w
Tx
オッズは P (1|x)1� P (1|x) = exp(w
Tx)
で,
となる.
42
6.4.2 ロジスティック回帰モデル
と のオッズ比は,x̃
x
= exp(w1) (6.65)
が1単位分増えると, オッズ比が 倍になる.exp(w1)
の中の が1増えた状態x を考える.
のオッズは,x̃
P (1|˜x)1� P (1|˜x) = exp(w
T˜
x)
x
x̃ = (1, (x+ 1))T
exp(w
T˜
x)
exp(w
Tx)
=
exp(w0 + w1(x+ 1))
exp(w0 + w1x)
=
exp(w0 + w1x+ w1)
exp(w0 + w1x)
=
exp(w0 + w1x) exp(w1)
exp(w0 + w1x)
x
43
6.4.2 ロジスティック回帰モデルオッズ比について,仮想的な実験を基に考える.
二つの異なった環境(環境1,環境2)で条件(条件A,条件B)を変えて実験を行った結果が下図のようになったとする.
0.9 0.99P (s|B)
P (s|A)=
0.99
0.9= 1.1
P (s|B)
P (f |B)/P (s|A)
P (f |A)=
0.99
0.01/0.9
0.1= 11
0.1 0.01P (f |B)
P (f |A)=
0.01
0.1= 0.1
P (f |B)
P (s|B)/P (f |A)
P (s|A)=
0.01
0.99/0.1
0.9=
1
11
0.5 0.55P (s|B)
P (s|A)=
0.55
0.5= 1.1
P (s|B)
P (f |B)/P (s|A)
P (f |A)=
0.55
0.45/0.5
0.5=
11
9
0.5 0.45P (f |B)
P (f |A)=
0.45
0.5= 0.9
P (f |B)
P (s|B)/P (f |A)
P (s|A)=
0.45
0.55/0.5
0.5=
9
11
条件A 条件B 比 オッズ比
環境1
成功(s)
環境1失敗(f)
環境2
成功(s)
環境2失敗(f)
44
6.4.2 ロジスティック回帰モデル環境1と環境2で, 条件を変えたときの成功の増加割合は で同じである.
0.9 0.99P (s|B)
P (s|A)=
0.99
0.9= 1.1
P (s|B)
P (f |B)/P (s|A)
P (f |A)=
0.99
0.01/0.9
0.1= 11
0.1 0.01P (f |B)
P (f |A)=
0.01
0.1= 0.1
P (f |B)
P (s|B)/P (f |A)
P (s|A)=
0.01
0.99/0.1
0.9=
1
11
0.5 0.55P (s|B)
P (s|A)=
0.55
0.5= 1.1
P (s|B)
P (f |B)/P (s|A)
P (f |A)=
0.55
0.45/0.5
0.5=
11
9
0.5 0.45P (f |B)
P (f |A)=
0.45
0.5= 0.9
P (f |B)
P (s|B)/P (f |A)
P (s|A)=
0.45
0.55/0.5
0.5=
9
11
条件A 条件B 比 オッズ比
環境1
成功(s)
環境1失敗(f)
環境2
成功(s)
環境2失敗(f)
1.1
45
6.4.2 ロジスティック回帰モデル環境1では成功の割合がほとんど100%に上昇したのに対し, 環境2では50%から1割上昇したに過ぎない.
0.9 0.99P (s|B)
P (s|A)=
0.99
0.9= 1.1
P (s|B)
P (f |B)/P (s|A)
P (f |A)=
0.99
0.01/0.9
0.1= 11
0.1 0.01P (f |B)
P (f |A)=
0.01
0.1= 0.1
P (f |B)
P (s|B)/P (f |A)
P (s|A)=
0.01
0.99/0.1
0.9=
1
11
0.5 0.55P (s|B)
P (s|A)=
0.55
0.5= 1.1
P (s|B)
P (f |B)/P (s|A)
P (f |A)=
0.55
0.45/0.5
0.5=
11
9
0.5 0.45P (f |B)
P (f |A)=
0.45
0.5= 0.9
P (f |B)
P (s|B)/P (f |A)
P (s|A)=
0.45
0.55/0.5
0.5=
9
11
条件A 条件B 比 オッズ比
環境1
成功(s)
環境1失敗(f)
環境2
成功(s)
環境2失敗(f)
46
6.4.2 ロジスティック回帰モデルオッズ比を比べてみると, 成功割合の増加についての質的な違いが現れている.
0.9 0.99P (s|B)
P (s|A)=
0.99
0.9= 1.1
P (s|B)
P (f |B)/P (s|A)
P (f |A)=
0.99
0.01/0.9
0.1= 11
0.1 0.01P (f |B)
P (f |A)=
0.01
0.1= 0.1
P (f |B)
P (s|B)/P (f |A)
P (s|A)=
0.01
0.99/0.1
0.9=
1
11
0.5 0.55P (s|B)
P (s|A)=
0.55
0.5= 1.1
P (s|B)
P (f |B)/P (s|A)
P (f |A)=
0.55
0.45/0.5
0.5=
11
9
0.5 0.45P (f |B)
P (f |A)=
0.45
0.5= 0.9
P (f |B)
P (s|B)/P (f |A)
P (s|A)=
0.45
0.55/0.5
0.5=
9
11
条件A 条件B 比 オッズ比
環境1
成功(s)
環境1失敗(f)
環境2
成功(s)
環境2失敗(f)
47
6.4.3 パラメータの最尤推定
48
6.4.3 パラメータの最尤推定
2クラスロジスティック回帰モデルのパラメータの最尤推定を考える.
確率変数 :モデルの出力t
・t が 1 となる確率:
・t が 0 となる確率: P (t = 0) = 1� P (t = 1)
確率変数 はパラメータ をもつベルヌーイ試行↵t
(t = 0 or 1) に従う.f(t|⇡) = ⇡t(1� ⇡)1�t
P (t = 1) = ⇡
= 1� ⇡
f(t = 1|⇡) = ⇡1(1� ⇡)1�1 = ⇡
f(t = 0|⇡) = ⇡0(1� ⇡)1�0 = 1� ⇡
49
6.4.3 パラメータの最尤推定
よって, N回の試行に基づく尤度関数は,
負の対数尤度関数は,
(6.68)
この評価関数は, 交差エントロピー型誤差関数とよばれる.
となり,
となる.
これを最大化したい
これを最小化したい
L(⇡1, . . . ,⇡N ) =NY
i=1
f(ti|⇡i) =NY
i=1
⇡tii (1� ⇡i)
(1�ti)
L(⇡1, . . . ,⇡N ) = � lnL(⇡1, . . . ,⇡N ) = � ln
NY
i=1
⇡tii (1� ⇡i)
(1�ti)
!
= �NX
i=1
ln⇣⇡tii (1� ⇡i)
(1�ti)⌘
= �NX
i=1
⇣ln⇡ti
i + ln(1� ⇡i)(1�ti)
⌘
= �NX
i=1
(ti ln⇡i + (1� ti) ln(1� ⇡i))
(6.67)
50
6.4.3 パラメータの最尤推定
ここで, を代入すると,
(6.70)
L(w) = �NX
i=1
⇢ti ln
✓exp(w
Txi)
1 + exp(w
Txi)
◆+ (1� ti) ln
✓1� exp(w
Txi)
1 + exp(w
Txi)
◆�
= �NX
i=1
⇢ti ln
✓exp(w
Txi)
1 + exp(w
Txi)
◆+ (1� ti) ln
✓1 + exp(w
Txi)� exp(w
Txi)
1 + exp(w
Txi)
◆�
= �NX
i=1
�ti�ln exp(w
Txi)� ln(1 + exp(w
Txi))
�+ (ti � 1) ln
�1 + exp(w
Txi)
�
= �NX
i=1
⇢ti ln
✓exp(w
Txi)
1 + exp(w
Txi)
◆+ (1� ti) ln
✓1
1 + exp(w
Txi)
◆�
= �NX
i=1
{tiwTxi � ln(1 + exp(w
Txi))}
= �NX
i=1
{ti ln exp(wTxi)� ti ln(1 + exp(w
Txi))
+ti ln(1 + exp(w
Txi))� ln(1 + exp(w
Txi))}
⇡i = �(wTxi) =
exp(w
Txi)
1 + exp(w
Txi)
51
6.4.3 パラメータの最尤推定負の対数尤度関数を最小にするパラメータ を得るために, で微分することを考える.
@(ln(1 + exp(w
Txi))
@w=
1
1 + exp(w
Txi)
@(1 + exp(w
Txi))
@w
=
1
1 + exp(w
Txi)
exp(w
Txi)
@(wTxi)
@w
=
exp(w
Txi)
1 + exp(w
Txi)
@(xTi w)
@w✓* @(aTx)
@x= a
◆=
exp(w
Txi)
1 + exp(w
Txi)
xi
=
xi exp(wTxi)
1 + exp(w
Txi)
w
w
@(tiwTxi)
@w= ti
@(wTxi)
@w= ti
@(xTi w)
@w= tixi
まず, 準備として
なので,
52
6.4.3 パラメータの最尤推定@L(w)
@w= �
NX
i=1
✓tixi �
xi exp(wTxi)
1 + exp(w
Txi)
◆
= �NX
i=1
xi
✓ti �
exp(w
Txi)
1 + exp(w
Txi)
◆
(6.71)
となる が解であるが, 解析的に解を求めることができない.w
最急降下法やニュートン-ラフソン法などで数値的に解を求めることになる.
= �NX
i=1
xi(ti � ⇡i)
=NX
i=1
xi(⇡i � ti)
✓* ⇡i =
exp(w
Txi)
1 + exp(w
Txi)
◆
NX
i=1
xi(⇡i � ti) = 0
53
6.4.4 多クラス問題への拡張と非線形変換
54
6.4.4 多クラス問題への拡張と非線形変換
ak = w
Tk x (k = 1, . . . ,K)
P (Ck|x) = ⇡k(x) =exp(ak)
KX
j=1
exp(aj)
多クラス への拡張は, 各クラスごとに線形変換(K > 2)
を求め, 事後確率を
で計算して, 最大事後確率を与えるクラスに分類すればよい.
ソフトマックス関数
55
6.4.4 多クラス問題への拡張と非線形変換
線形関数でうまく分離できない場合, 入力ベクトル を非線形関数 でx
'( )
'(x) = ('0 = 1,'1(x), . . . ,'M (x))T (6.74)
のように 次元データに変換すると, うまく分離できるようになる場合がある.M + 1
変換された 次元空間でロジスティック回帰をM + 1
ak = w
Tk'(x)
のように行っても, その空間内での識別境界は超平面になる.このような非線形関数を非線形基底関数という.
この超平面を元の の空間に逆写像すれば, 一般にその境界は曲面になる.このような非線形変換を行う場合でも, を に書き換えれば以後の議論はそのまま成り立つ.
'(x)x
x
56
6.4.4 多クラス問題への拡張と非線形変換
クラス数K
X = (x1, . . . ,xN )T 学習データ
T = (t1, . . . , tN )T 教師データ
各教師データ は 次元のベクトルで, が属するクラス( )の位置に対応する要素の のみが で, ほかはすべて のダミー変数表現とする.
ti K xi Ck
1 0tik
ti = (0, . . . , 0, 1, 0, . . . , 0)T
k番目の要素
57
6.4.4 多クラス問題への拡張と非線形変換
E(w1, . . . ,wK) = � lnP (T |w1, . . . ,wK)
P (T |w1, . . . ,wK) =NY
i=1
KY
k=1
P (Ck|xi)tik =
NY
i=1
KY
k=1
⇡tikik
= � lnNY
i=1
KY
k=1
⇡tikik = �
NX
i=1
KX
k=1
ln⇡tikik = �
NX
i=1
KX
k=1
tik ln⇡ik
これを最大化したい
これを最小化したい
入力ベクトル がクラス に属する確率は,xi Ck
KY
k=1
P (Ck|xi)tik = P (Ck|xi)
と考えることができるので, 尤度関数は,
aij = w
Tj xi⇡ik =
exp aikPKl=1 exp ail
ここで, である.
となり, 負の対数尤度関数は次のようになる.
(6.76)
(6.78)
58
6.4.4 多クラス問題への拡張と非線形変換
aij = w
Tj xi
@aij@wj
=@(wT
j xi)
@wj=
@(xTi wj)
@wj= xi
@E
@wj= �
NX
i=1
KX
k=1
tik1
⇡ik
@⇡ik
@wj= �
NX
i=1
KX
k=1
tik1
⇡ik
@⇡ik
@aij
@aij@wj
@⇡ik
@aij=
⇣@
@aijexp aik
⌘⇣PKl=1 exp ail
⌘� (exp aik)
⇣@
@aij
PKl=1 exp ail
⌘
⇣PKl=1 exp ail
⌘2 (*)
各 の最尤推定は, 評価関数を で微分して とおけば求められる.wj wj 0
ここで,
なので準備として,
⇡ik =
exp aikPKl=1 exp ail
59
6.4.4 多クラス問題への拡張と非線形変換
k 6= j
=
0� (exp aik) (exp aij)⇣PKl=1 exp ail
⌘2
= � exp aikPKl=1 exp ail
exp aijPKl=1 exp ail
= �⇡ik⇡ij = ⇡ij(0� ⇡ik)
�jk =
⇢1 j = k0 j 6= k
= ⇡ij(�jk � ⇡ik)
のとき,
となるので,
(*)
ここで, クロネッカーのデルタ を使用すると,
(*) となる.
k = j
=
(exp aij)⇣PK
l=1 exp ail⌘� (exp aik) (exp aij)
⇣PKl=1 exp ail
⌘2
=
exp aijPKl=1 exp ail
(PKl=1 exp ailPKl=1 exp ail
� exp aikPKl=1 exp ail
)= ⇡ij(1� ⇡ik)
のとき,
となり,
(*)
60
6.4.4 多クラス問題への拡張と非線形変換
@E
@wj= �
NX
i=1
KX
k=1
tik1
⇡ik⇡ij(�jk � ⇡ik)xi
= �NX
i=1
KX
k=1
tik⇡ij
⇡ik�jkxi +
NX
i=1
KX
k=1
tik⇡ijxi
= �NX
i=1
tijxi +NX
i=1
⇡ijxi
KX
k=1
tik
*
KX
k=1
tik⇡ij
⇡ik�jk = tij
⇡ij
⇡ij= tij
!
= �NX
i=1
tijxi +NX
i=1
⇡ijxi
*
KX
k=1
tik = 1
!
=NX
i=1
(⇡ij � tij)xi = 0 (6.79)
式 は解析的に解けないので, 2クラスの場合と同様, ニュートン-ラフソン法などを用いて解くことになる.
(6.79)
よって,
61
ご清聴ありがとうございました
62