inverted index compression and query processing with ...sleepyheads.jp › tmp ›...
TRANSCRIPT
PRML復習レーン#5 4.3.3-
2010-11-06 Yoshihiko Suhara @sleepy_yoshi
1
目次
• 4.4 確率的識別モデル – 固定基底関数 – ロジスティック回帰 – 反復再重み付け最小二乗
• ニュートン・ラフソン法
– 多クラスロジスティック回帰 – プロビット回帰 – 正準連結関数
2
4.3.3 反復重み付け最小二乗
3
反復再重み付け最小二乗
• ロジスティック回帰の誤差関数は,最尤解を解析的に導出することができない
– cf. 最小二乗法 = 正規方程式
• ニュートン・ラフソン法によるE(w)の最小化
)(1)old()new(wHww E
(4.92)
Hはwに関するE(w)の2階微分を要素とするヘッセ行列
補足: ニュートン・ラフソン法
• ニュートン法とも呼ばれる
• 非線形関数の二次近似による解析手法
– 元々はf(x) = 0を求める最適化手法
4
𝑓′ 𝑥 = 0を考える
𝑓′(𝑥)の𝑥 = 𝑥0でのテーラー展開をすると
𝑓′ 𝑥 = 𝑓′ 𝑥0 + 𝑓′′ 𝑥0 𝑥 − 𝑥0
𝑥 = 𝑥0 −𝑓′(𝑥0)
𝑓′′(𝑥0)
𝑓′ 𝑥0 + 𝑓′′ 𝑥0 𝑥 − 𝑥0 = 0より
補足: 1次近似? 2次近似?
• 最急降下法 vs. ニュートン・ラフソン法
• ホワイトボードで説明
5
6
二乗和誤差関数への適用
• 二乗誤差関数(3.12)を誤差関数とする線形回帰モデル(3.3)にニュートン・ラフソン法を適用
– wの更新式は以下で与えられる
N
n
TT
nnn
T tE1
)()( tΦΦwΦww
N
n
TT
nnE1
)( ΦΦwH
(4.93)
(4.94)
tΦΦwΦΦΦwwTTT
)old(1)old()new(
tΦΦΦTT 1
(4.95)
反復せずに1回で正確な値が得られることに注目
7
ロジスティック回帰への適用
• ロジスティック回帰の交差エントロピー誤差関数(4.90)にニュートン・ラフソン法を適用
N
n
T
nnn tyE1
)()()( tyΦw
N
n
TT
nnnn yyE1
)1()( RΦΦwH
)1( nnnn yyR
(4.96)
(4.97)
(4.98)
ヘッセ行列は重み付け行列Rを通じてwに依存
⇒ 繰り返し計算する必要
8
ロジスティック回帰モデルにおけるニュートン・ラフソン法の更新式
• wの更新は以下のとおり
)()( 1)old()new(tyΦRΦΦww TT
)(1)old(tyRΦwz
(4.99)
(4.100)
)()( )old(1tyΦRΦΦRΦΦ TTT w
RzΦRΦΦTT 1)(
ここで
このため,反復重み付け最小二乗法 (IRLS) とも呼ばれる
重み付けベクトルwが新たに計算されるたびに,
重み付け行列Rを計算しなおして正規方程式を解く必要性
演習4.15
9
• 交差エントロピー誤差関数はwの凸関数であり,唯一の最適解をもつ
• 証明の順序
– (1) Rが正定値行列であることを証明
– (2) 上を利用し,Hが正定値行列であることを証明
ホワイトボードで説明
補足: 正定値行列のうれしさ
• 正定値行列とは?
– 実対称行列
– 全ての固有値が正
– 任意のベクトル𝒖に対して𝒖𝑇𝑯𝒖 > 0
• 誤差関数が凸関数 ⇔ ヘッセ行列が正定値
• 直感的説明
– あらゆる組み合わせの2階微分が正
10
11
4.3.4 多クラスロジスティック回帰
12
多クラスロジスティック回帰
最尤法を用いて直接パラメータ{wk}を決定する
• 多クラスの分布に対して事後確率は,
• 全ての活性化関数ajに関するykの微分は,
j j
kkk
a
ayCp
)exp(
)exp()()|(
T
kka w
)( jkjk
j
k yIya
y
ここで活性化関数は,
(4.104)
(4.105)
(4.106)
13
演習4.17
• j=k のときと,j ≠ k の2通りについて計算
– ホワイトボードで計算
)( jkjk
j
k yIya
y
14
尤度関数
• 尤度関数は以下のとおり
– Ckに属する特徴ベクトルΦnに対する目的変数ベクトルtnがk番目の要素が1で,他の要素が0
)( nknk yy
N
n
K
k
N
n
K
k
t
nk
t
nkKnknk yCpp
1 1 1 1
1 )|(),...,|( wwT
ここで
Tはtnkを要素tnkとする目的変数のN x K行列
(4.107)
15
交差エントロピー誤差関数
• 尤度関数(4.107)の負の対数を取る
• 勾配は,ソフトマックス関数の微分(4.106)を用いて以下のとおりになる (演習4.18)
N
n
K
k
nknkKK ytpE1 1
11 ln),...,|(ln),...,( wwTww (4.108)
N
n
nnjnjKw tyEj
1
1 )(),...,( ww (4.109)
演習14.18
• ホワイトボードで説明
16
17
演習4.18 (きれいに書くと)
j
njN
n nj
nkK
k
nknk
nkj
Ka
a
yyt
y
E
ww
ww
1 1
1 )ln(),...,(
N
n
K
k
nnjkjnk
nk
nk yIyy
t
1 1
)(
N
n
K
k
K
k
njnkkjnkn ytIt1 1 1
N
n
N
n
nnjnjnjnjn tyyt1 1
)()(
18
多クラスのヘッセ行列
• MxMサイズのヘッセ行列のj,k成分は以下になる
• 2階微分が求まったので,IRLSによって最適化可能
• なお,多クラスに対するヘッセ行列も正定値行列であり,誤差関数は唯一の最小解を持つ (演習4.20; パス)
N
n
T
nnnjkjnkK yIyEjk
1
1 )(),...,( wwww (4.110)
小休止: バッチ学習と逐次学習
• バッチ学習
– データ点すべてに対する誤差関数𝐸を考える
– 非線形最適化問題として解く
• 1次近似: 最急降下法
• 2次近似: ニュートン・ラフソン法
• 逐次学習 (オンライン学習)
– 各データ点に対する誤差関数𝐸𝑛を考える
• ただし,𝐸 = 𝐸𝑛𝑛
– 確率的勾配降下法 (3.22) で最適化
• 学習率𝜂を適切に設定する必要あり
• 収束しなかったら試行を繰り返す 19
バッチ学習と逐次学習の違い
• 違い
– 誤差関数の形
– パラメータ更新の方向
• 逐次学習では,なぜ学習率を適切に設定する必要があるのか?
20
21
誤差関数が凸関数の場合,誤差関数最適化という観点ではバッチ学習の方が同等かそれ以上の結果が得られる
凸関数 + 凸関数 = 凸関数 はおk?
誤差関数が凸じゃないなら逐次学習の方がうまい局所最適に落ちることもあるかもね.それはあくまで問題依存
凸 + 凸 = ?
22
-4 -2 0 2 4
05
10
15
20
25
x
y
-4 -2 0 2 4
05
10
15
20
25
凸!
23 -4 -2 0 2 4
05
10
15
20
25
x
y
-4 -2 0 2 4
05
10
15
20
25
-4 -2 0 2 4
05
10
15
20
25
-4 -2 0 2 4
05
10
15
20
25
証明: 凸 + 凸 = 凸
• 凸関数f(x)とg(x)
• h(x) = f(x) + g(x)
• Jensenの不等式を利用
24
𝑓 𝜆1𝑥1 + 𝜆2𝑥2 ≤ 𝜆1𝑓 𝑥1 + 𝜆2𝑓(𝑥2)
𝑔 𝜆1𝑥1 + 𝜆2𝑥2 ≤ 𝜆1𝑔 𝑥1 + 𝜆2𝑔(𝑥2)
𝑓 𝜆1𝑥1 + 𝜆2𝑥2 + 𝑔 𝜆1𝑥1 + 𝜆2𝑥2≤ 𝜆1(𝑓 𝑥1 + 𝑔 𝑥1 ) + 𝜆2(𝑓 𝑥2 + 𝑔 𝑥2 )
𝜆1𝑥1 + 𝜆2𝑥2 ≤ 𝜆1 𝑥1 + 𝜆2(𝑥2)
25
4.3.5 プロビット回帰
プロビット回帰
• 目的: 活性化関数の出力𝑎𝑛に閾値を設定したい
• 𝜃の値が確率密度𝑝(𝜃)から得られる場合,活性化関数は以下で得られる
26
𝑡𝑛 = 1 𝑤𝑒𝑛 𝑎𝑛 ≥ 𝜃𝑡𝑛 = 0 𝑜𝑡𝑒𝑟𝑤𝑖𝑠𝑒
𝑓 𝑎 = 𝑝 𝜃 𝑑𝜃𝑎
−∞
(4.112)
(4.113)
27
erf関数
• erf関数 (誤差関数とも呼ばれる.注意)
• プロビット関数はerf関数で表現可能
a
da0
2 )2/exp(2
)erf(
)erf(
2
11
2
1)( aa
(4.115)
(4.116)
(4.115)は,要するにプロビット関数の累積分布関数
⇒ 累積分布関数を活性化関数の出力として用いる
図解
• 図4.13
28
𝑝(𝜃)
𝑓(𝑎)
プロビット関数
• 𝜃 の分布を平均0,分散1のガウス分布とすると,対応する累積分布関数は以下のとおり
– プロビット関数
29
a
dNa )1,0|()( (4.114)
プロビット回帰まとめ
• プロビット回帰 (probit regression) – プロビット関数を活性化関数とする一般化線形モデル
– ロジスティック回帰と似ている
– ロジスティック回帰に比べ,外れ値に敏感
– 活性化関数に標準ガウス分布の累積分布関数を使用
• パラメータの学習
– ロジスティック回帰と同じ方法でできる
• 𝑦𝑛の計算方法が変わるだけ
31
拡張
• いずれもデータは正しくラベル付けされていると仮定
⇒ 目的変数値tが間違った値に反転する確率εを用いて, 誤ったラベル付けの影響を組み込むことが可能
))(1()()1()|( xxx tp
)()21( x (4.117)
32
4.3.6 正準連結関数
今までの話の一般化
なぜ微分がいつも
「誤差」と「特徴ベクトルの積」
になるのか?
33
正準連結関数
• 一般化線形モデル
– f(・)を活性化関数,f-1(・)を連結関数と呼ぶ
• 誤差関数の微分が誤差yn – tnとΦnの積で表現可能
N
n
nnnn ytytpE1
)}1ln()1(ln{)|(ln)( wtw (4.90)
N
n
K
k
nknkKK ytpE1 1
11 ln),...,|(ln),...,( wwTww (4.108)
N
n
nnn tywE1
)()( (4.91)
N
n
nnjnjKw tyEj
1
1 )(),...,( ww (4.109)
ロジスティック回帰
多ロジスティック回帰
34
目的変数の条件付き確率分布
• 目的変数の条件付き確率分布
– 目的変数の分布も指数型分布族だと仮定
)(ln]|Ε[
gd
dsty
(4.118)
s
tg
s
th
sstp
exp)(
1),|(
)(y ここでyとηの関係を とする
(4.119)
35
目的変数の対数尤度関数
N
n
N
n
nnnn
s
tgstpsp
1 1
const)(ln),|(ln),|(ln
t
s
tg
s
th
sstp
exp)(
1),|(
パラメータに影響されない
(4.121)
N
n
n
n
n
n
nnn
n
ada
dy
dy
d
s
tg
d
dsp
1
)(ln),|(ln
tw
nnnnn
N
n
afyyts
)()(1
1
モデルパラメータwに関する微分は,
対数尤度関数は,
(4.122)
(4.119)より −1
𝑠𝑦𝑛
36
一般化線形モデルの誤差関数 • (4.123)で表されるような連結関数f-1(y)を選択すれば,
簡略化できる
• 一般化線形モデルの誤差関数
– ガウス分布の場合s=β-1
– ロジスティックシグモイドの場合s=1
N
n
nnn tys
E1
}{1
)( w
n
T
na w
)()(1 yyf (4.123)
これよりf(ψ(y)) = y,f’(ψ)ψ’(y) = 1
また,a = f-1(y)なので,a=ψであり,f’(a)ψ’(y) = 1
(4.124)
一般化線形モデルにおいて,誤差関数の微分が
誤差とΦの積で表現可能ということを示した
37
ポイントのまとめ
• ニュートン・ラフソン法を用いた最適化
– 二乗誤差: 閉じた解が求まる
– クロスエントロピー誤差: 閉じた解が求まらない
• ヘッセ行列にパラメータが含まれているため反復する必要
⇒ 反復再重み付け最小二乗
• 多クラスロジスティック回帰
– 誤差関数が凸関数になり,2クラスの場合と同様にパラメータを求めることができる
• プロビット回帰
– 活性化関数を変えてみよう
• 正準連結関数
– 一般化線形モデルの一般化
– なぜ微分が「誤差」と「特徴ベクトル」の積になるのか
38
目次 (再掲)
• 4.4 確率的識別モデル – 固定基底関数 – ロジスティック回帰 – 反復再重み付け最小二乗
• ニュートン・ラフソン法
– 多クラスロジスティック回帰 – プロビット回帰 – 正準連結関数
• おまけ
– バッチ学習と逐次学習 – 凸+凸=凸
39
おしまい