47
言語処理のための機械学習入門 4. 分類 (後半) 中川研究室 修士1年 得居 誠也

Ml4nlp 4 2

Embed Size (px)

Citation preview

Page 1: Ml4nlp 4 2

言語処理のための機械学習入門

4. 分類 (後半)

中川研究室 修士1年 得居 誠也

Page 2: Ml4nlp 4 2

メニュー Menu

2

• 4.3 SVM- 線形二値分類器とマージン- 厳密制約下の SVM- 緩和制約下の SVM- 多値分類器への拡張• 4.4 カーネル法- カーネル法の導入- カーネル関数の具体例

• 4.5 対数線形モデル- 対数尤度と正則化- 非線形最適化の手法• 4.6 素性選択- 自己相互情報量- 情報利得

Page 3: Ml4nlp 4 2

SVM とカーネル法

Page 4: Ml4nlp 4 2

SVM Support Vector Machine

•1990年代の終わり頃から NLP において爆発的に使われはじめた線形二値分類器

•マージン最大化に基づく非確率的な手法で, 非常に高い分類性能を持つ

- 特に汎化性能(学習後, 未知のデータを正しく分類する能力)が高い

•カーネル法 (後述) を用いれば非線形分類も可能

4

Page 5: Ml4nlp 4 2

線形二値分類器 Linear Binary Classifier

クラスラベルが {+1, -1} の場合の分類で, 分類に線形関数を用いる. 素性ベクトル x に対して,

f(x) = w · x− b

の正負でラベルを識別する:

y =

�+1, if f(x) ≥ 0,

−1, if f(x) < 0.

w · x = b

分離平面separating plane

w

5

Page 6: Ml4nlp 4 2

訓練データ

のうち,正クラスに属するものを正例, 負クラスに属するものを負例という. w · x = b

分離平面separating plane

D = {(x(1), y(1)), . . . , (x(|D|), y(|D|))}

w

線形二値分類器 Linear Binary Classifier

6

Page 7: Ml4nlp 4 2

マージン最大化 Margin Maximization

•訓練データを正しく分類する分離平面は無数にある➡ 一番いいやつを選びたい

•「ギリギリ分類できてる」はあんまりよくない気がする➡ どのクラスからも遠い位置で分けよう ⇒ マージン最大化

7

Page 8: Ml4nlp 4 2

マージン最大化 Margin Maximization

マージン分離平面から最も近い訓練事例への距離

margin

x+  : 分離平面から最も近い正例,  :  から分離平面に下ろした  垂線の足

|x+ − x∗|.とすると, マージンは

x+

x∗x∗ x+

8

Page 9: Ml4nlp 4 2

マージン最大化 Margin Maximization

x+

x∗

パラメータを適当にスケールして

w · x+ − b = 1

w · x = b

とできる. このときマージンは

|x+ − x∗| =1

|w|w · (x+ − x∗)

=1

|w|

w

これを最大化したい. 代わりに   を最小化しよう.|w|29

Page 10: Ml4nlp 4 2

厳密制約下のSVM Hard Margin SVM

マージンを最大化する際の制約は, 訓練事例を正しく分類できるようにするということ. これは次式で書ける:

y(i)(w · x(i) − b) ≥ 1.

まとめると, 次の最適化問題を解けばよい.

10

min.12

|w|2

s.t. y(i)(w · x(i) − b) ≥ 1 ; ∀i.

Page 11: Ml4nlp 4 2

厳密制約下のSVM Hard Margin SVM

•目的関数は凸.•線形制約なので, 制約を満たす領域は多面体. 特に凸.➡ 凸計画問題

そこで Lagrange 未定乗数法を使って双対問題に持ち込んでみる.

11

min.12

|w|2

s.t. y(i)(w · x(i) − b) ≥ 1 ; ∀i.

Page 12: Ml4nlp 4 2

双対問題 Dual Problem

Lagrange 乗数を とすると, Lagrange 関数は

L(w, b,α) =12

|w|2 −�

i

αi

�y(i)(w · x(i) − b)− 1

�.

αi (≥ 0)

各パラメーターでの偏微分を 0 とすると,

∇wL = w −�

i

αiy(i)x(i) = 0. ∴ w∗ =

i

αiy(i)x(i).

∂L

∂b=

i

αiy(i) = 0.

12

Page 13: Ml4nlp 4 2

Lagrange 関数を整理して, これらを代入すると

L(w∗, b,α) =12

�����w∗ −

i

αiy(i)x(i)

�����

2

− 12

������

i

αiy(i)x(i)

�����

2

+ b�

i

αiy(i) +

i

αi

=− 12

������

i

αiy(i)x(i)

�����

2

+�

i

αi

=− 12

i,j

αiαjy(i)y(j)x(i) · x(j) +

i

αi.13

双対問題 Dual Problem

Page 14: Ml4nlp 4 2

Lagrange の鞍点理論より, この関数を最大化すればよい. つまり次の双対問題を解けばよい.

14

双対問題 Dual Problem

max. − 12

i,j

αiαjy(i)y(j)x(i) · x(j) +

i

αi

s.t.�

i

αiy(i) = 0,

αi ≥ 0 ; ∀i.

Page 15: Ml4nlp 4 2

双対問題にする利点は:•逐次最小最適化 (SMO: Sequential Minimal Optimization) という手法が使える.•主問題では不等式制約が訓練事例の数だけあるのに対し, 双対問題では非負制約と一つの等式制約だけ.•主問題では変数が素性 (特徴) の数だけあるのに対し, 双対問題では訓練事例の数だけある.•あとで説明するカーネル法を適用することができて, 非線形分離器が作れる.

15

双対問題 Dual Problem

Page 16: Ml4nlp 4 2

16

双対問題 Dual Problem

双対問題を解いた場合, 次の線形分離器が得られる:

f(x) =�

i

αiy(i)x(i) · x− b.

•双対問題は には内積 を通じて依存する.•得られる分離器も の形で事例に依存する.

x(i) x(i) · x(j)

x(i) · x

となる訓練例 をサポートベクトルという.- マージンの縁にいる訓練例のこと.αi �= 0 x(i)

Page 17: Ml4nlp 4 2

緩和制約下のSVM Soft Margin SVM

17

•訓練集合が線形分離可能でない場合, 先ほど導出した問題の制約を満たす解は存在しない.•実際に使われるデータの多くは線形分離不可能.•そこで新たに変数を導入して, 線形分離不可能な場合も許容するモデルを作る.

Page 18: Ml4nlp 4 2

緩和制約下のSVM Soft Margin SVM

18

分離制約を, スラック変数    を用いて緩和する:y(i)(w · x(i) − b) ≥ 1− ξi.

ξi (≥ 0)

最適化問題は次のように書き直される.

min.12

|w|2 + C�

i

ξi

s.t. y(i)(w · x(i) − b) ≥ 1− ξi ; ∀i,ξi ≥ 0 ; ∀i.

C : 厳密さをどれだけ重視するかを表す定数.

Page 19: Ml4nlp 4 2

緩和制約下のSVM Soft Margin SVM

19

Lagrange 乗数 , を入れて Lagrange 関数を作る:αi βi

L(w, b, ξ,α,β) =12

|w|2 + C�

i

ξi

−�

i

αi

�y(i)(w · x(i) − b)− 1 + ξi

�−

i

βiξi.

と での偏微分は厳密制約下と同じ. での偏微分はw b ξi

∂L

∂ξi= C − αi − βi

これを 0 とおくと, C = αi + βi.

Page 20: Ml4nlp 4 2

緩和制約下のSVM Soft Margin SVM

20

これらを用いて から主問題の変数を消去すると,L

L =− 12

i,j

αiαjy(i)y(j)x(i) · x(j)

+�

i

αi(1− ξi) + C�

i

ξi −�

i

βiξi

=− 12

i,j

αiαjy(i)y(j)x(i) · x(j) +

i

αi.

, は残らない. を満たせば何でもよい.βi ξi βi = C − αi ≥ 0

Page 21: Ml4nlp 4 2

緩和制約下のSVM Soft Margin SVM

21

まとめると, 制約を緩和した SVM における双対問題は:

素性ベクトルについては内積だけで構成されているという点は厳密制約下と同じ.

max. − 12

i,j

αiαjy(i)y(j)x(i) · x(j) +

i

αi

s.t.�

i

αiy(i) = 0,

0 ≤ αi ≤ C ; ∀i.

Page 22: Ml4nlp 4 2

多値分類器への拡張

22

SVM は二値分類器のための方法なので, 多値分類に用いるには一工夫しなければならない.• one-versus-rest 法 (one-versus-all 法)各クラスごとに一つの分離平面を作る. 複数ラベルが正解となる領域ができる. 一つのラベルだけを割り当てたい場合, 分離平面が一番「遠い」クラスを割り当てる ( の値で比べる).•ペアワイズ法クラス対ごとに一つの分離平面を作る. 実際のクラス割り当ては多数決などで決める. 分離平面はクラス数の 2 乗オーダーに増えるが, 各分離平面はデータの一部のみから作られるので, 結果的に計算量が減ることが多い.

f(x)

Page 23: Ml4nlp 4 2

関数距離 Functional Distance

23

•名前が気持ち悪いけど, のこと.• でも でも は正クラスに分類される. しかし 0 に近い値の場合, 間違っている可能性も高い.•つまり関数距離の絶対値は分類結果の信頼性の尺度になっている.

f(x)xf(x) = 0.0001 f(x) = 1000

Page 24: Ml4nlp 4 2

カーネル法 Kernel Method

24

SVM の性質として, 学習時も識別時も素性ベクトルには内積を通してしか依存しない, ということがある.

➡ 内積が計算できるなら, 素性ベクトル自体はわからなくても SVM が使える.

一般に, 素性ベクトルの内積だけを用いて学習や分類を行う手法をカーネル法といい, その際にデータ対 (大抵, 素性ベクトルより低次元の表現) から内積を計算する関数をカーネル関数という (一般的には事例同士の類似度のようなものを与える).

Page 25: Ml4nlp 4 2

カーネル法 Kernel Method

25

カーネル化された SVM は次のようになる. 訓練事例 に対して,D = {(d(1), y(1)), . . . , (d(|D|), y(|D|))}

得られる分類器は f(d) =�

i

αiy(i)K(d(i), d)− b.

max. − 12

i,j

αiαjy(i)y(j)K(d(i), d(j)) +

i

αi

s.t.�

i

αiy(i) = 0,

αi ≥ 0 ; ∀i.

Page 26: Ml4nlp 4 2

カーネル法 Kernel Method

26

•カーネル関数はデータ d を表現する値 (ベクトルなど) に対して線形でなくてよい.➡ 非線形分離器になっている!•あるいは, 素性ベクトルをナイーブに作るのが計算量的に難しい場合でも, 内積を高速に計算するデータ構造とアルゴリズムがある場合には, SVM も高速に実行することができる.

Page 27: Ml4nlp 4 2

例) 木構造カーネル Tree Kernel

27

•木構造データ (e.g. 構文木, 依存木) に対して, そのあらゆる部分木の頻度を素性とする素性ベクトルの内積.•この素性ベクトルを列挙することは計算量的に困難.•動的計画法を用いることで, 内積を効率よく計算することができる.•似たタイプのカーネルとして, 文字列カーネル (string kernel) というものもある.- 文字列データに対して, そのあらゆる部分文字列の頻度を素性とする素性ベクトルを考える.

Page 28: Ml4nlp 4 2

例) 多項式カーネル Polynomial Kernel

28

•ベクトル形式のデータに対するカーネル:Kpoly(x(i),x(j)) = (x(i) · x(j) + r)d.

•d 次の多項式カーネル, などと呼ぶ.•データ を高次元に移してから内積をとっている. その際, 成分同士の積が素性に入ってくるのがポイント.- がんばって「素性の組み合わせ」という素性を入れた高次元のベクトルを直接使えば同じことが実現できるが, カーネル法の方がメモリーや速度の点で有利.

x

Page 29: Ml4nlp 4 2

例) 動径基底関数カーネル RBF Kernel

29

ベクトルの形のデータに対する次のような関数:

KRBF (x(i),x(j)) = exp(−s|x(i) − x(j)|2).

ただし は正の定数. Gaussian kernel ともいう.s

Page 30: Ml4nlp 4 2

対数線形モデル

Page 31: Ml4nlp 4 2

対数線形モデル Log-linear Model

31

•確率的な分類器で, 与えられた事例があるラベルを持つ確率を得ることができる.•言語処理の文脈では最大エントロピーモデル (maximum entropy model) と呼ばれることも多い.•ナイーブベイズとは異なり, 事例 に対するラベル の条件付き確率 を直接学習する, 確率的識別モデルである. 特に の分布を考えないモデルである.•昨日やった CRF は対数線形モデルの一例.

d y

P (y|d)d

Page 32: Ml4nlp 4 2

対数線形モデル Log-linear Model

32

ここでは今までとは異なり, 素性ベクトルは事例 とラベル の組に対して定まるとし, と書く.

d

y φ(d, y)

対数線形モデルは, 重みベクトル を用いて次のように定義される:

w

P (y|d) =1

Zd,wexp(w · φ(d, y))

where Zd,w =�

y

exp(w · φ(d, y))

分類を行うときは: y∗ = argmaxy

w · φ(d, y).

Page 33: Ml4nlp 4 2

対数線形モデルの学習

33

ナイーブベイズの時とは異なり, の対数尤度を考える.

P (y|d)

log Pcond(D) =�

(d(i),y(i))∈D

log P (y(i)|d(i))

=�

(d(i),y(i))∈D

(w · φ(d(i), y(i))− log Zd(i),w)

Page 34: Ml4nlp 4 2

対数線形モデルの学習

34

過学習を防ぐため, 対数尤度にパラメーターの大きさに応じた罰金項を付け加える.これを正則化 (regularization) といい, 付け加えた項を正則化項 (regularizer) という. SVM のマージン最大化も正則化の一種.先ほどの対数尤度に正則化項を付け加えると,

L(w) =�

(d(i),y(i))∈D

log P (y(i)|d(i))− C

2|w|2.

ただし は正の定数.C

Page 35: Ml4nlp 4 2

対数線形モデルの学習

35

対数尤度や の最大化は解析的に解けないので, 一般的な非線形最適化の近似手法を用いる必要がある.

L(w)

たとえば,•最急勾配法•準ニュートン法•確率的勾配法

Page 36: Ml4nlp 4 2

最急勾配法

36

最小化の文脈では最急降下法 (steepest descent) とも.

次の更新式で近似していく ( は学習率).

wnew = wold + �∇wL(wold).

対数線形モデルでは, 勾配がシンプルな形になる:

∇wL(w) =�

(d(i),y(i))∈D

�φ(d(i), y(i))−

�y φ(d(i), y) exp(w · φ(d(i), y))

Zd(i),w

�− Cw

=�

(d(i),y(i))∈D

�φ(d(i), y(i))−

y

P (y|d(i))φ(d(i), y)

�− Cw

Page 37: Ml4nlp 4 2

準ニュートン法 Quasi-Newton Method

37

ニュートン法では 2 次微分まで考慮して更新を行う. のヘッセ行列を としたとき,

L

H

wnew = wold + �H−1wold∇wL(wold)

しかし逆行列の計算が重たいので, そこも近似することで高速化するのが準ニュートン法.

Page 38: Ml4nlp 4 2

確率的勾配法

38

最小化の文脈では確率的勾配降下法 (SGD, stochastic gradient descent) とも.

最急勾配法ではすべての訓練事例に対する対数尤度の和の勾配を使って更新を行ったが, 確率的勾配法では一部の訓練事例に対する対数尤度の和の勾配のみを使った更新を繰り返す.

(最急勾配法に比べて性能が上がる他, オンライン学習にも用いることができる.)

Page 39: Ml4nlp 4 2

素性選択

Page 40: Ml4nlp 4 2

素性選択 Feature Selection

40

•ラベル付きの訓練データと素性集合が与えられたときに, 自動的にそこから有効な素性を選択することを素性選択 (feature selection) という.•用いる素性を限定することで, 分類器がコンパクトになり, 制限のある計算環境でも分類を行うことができるようになる.ここでは二値の素性を考える. 素性 に対して, この素性が出現した場合は , 出現しない場合は として確率変数 を考える. また はいずれかのクラスを値とする確率変数である.

w

Xw = 1 Xw = 0Xw C

Page 41: Ml4nlp 4 2

41

自己相互情報量 Pointwise Mutual Information

確率変数のある実現値 と, 別の確率変数のある実現値 に対して, 自己相互情報量は次式で定義される:

x

y

PMI(x, y) = logP (x, y)

P (x)P (y).

これは と が同時に起こりやすいかどうかを表す値となる. 単純に を使う場合と違い, 単体での出現確率が高いような や に引きずられない.

x y

x y

P (x, y)

Page 42: Ml4nlp 4 2

42

素性 とクラス に対する PMI をw c

PMI(w, c) = logP (Xw = 1, C = c)

P (Xw = 1)P (C = c)

のように定義すると, 次のような指標が作られる:

Iaverage(w) =�

c

P (c)PMI(w, c),

Imax(w) = maxc

P (c)PMI(w, c).

これらが大きな値を取る素性が有効であるとされる.

自己相互情報量 Pointwise Mutual Information

Page 43: Ml4nlp 4 2

43

PMI の定義は他にもありうる. 例えば, いずれかの素性を値とする確率変数 を考えて,W

PMI(w, c) = logP (W = w,C = c)

P (W = w)P (C = c)

としてもよいし, 各クラス について, クラスが ならば , そうでなければ となるような確率変数 を考えて,

c c

Xc = 1 Xc = 0 Xc

PMI(w, c) = logP (Xw = 1,Xc = 1)

P (Xw = 1)P (Xc = 1)とすることもできる.

自己相互情報量 Pointwise Mutual Information

Page 44: Ml4nlp 4 2

44

自己相互情報量 Pointwise Mutual Information

PMI による素性選択には問題点もある.訓練データ中で 1 回しか出現しなかった素性 とそのときのクラス に対して,

w

c

一方, 訓練データ中 100 文書で出現してそのうち 99 文書でクラスが だったような素性 について,c w�

PMI(w�, c) = log P (C = c|Xw� = 1)− log P (C = c)= log 0.99− log P (C = c). 減ってる...

PMI(w, c) = log P (C = c|Xw = 1)− log P (C = c)= log 1− log P (C = c).

Page 45: Ml4nlp 4 2

情報利得 Information Gain

45

•「ある素性が出現したか否か」という情報を得ることで, クラスに関する曖昧さ (エントロピー) がどのくらい減少するかを表す量.•エントロピーをたくさん減少させる素性は, クラスの特定に貢献しているので, 有効な素性と考えられる.

Page 46: Ml4nlp 4 2

情報利得 Information Gain

46

クラスを表す確率変数を とする. エントロピーは次式で定義される.

C

H(C) = −�

c

P (c) log P (c).

ある素性 が出現した/出現しなかったという情報が与えられたときの条件付きエントロピーは:

w

H(C|Xw = t) = −�

c

P (c|Xw = t) log P (c|Xw = t).

Page 47: Ml4nlp 4 2

情報利得 Information Gain

47

素性 が出現したか否かという情報を得ることによって平均的にエントロピーがどれくらい減少するかという量が情報利得である:

w

IG(w) = H(C)− (P (Xw = 1)H(C|Xw = 1)+ P (Xw = 0)H(C|Xw = 0)).

•PMI 同様, の出現回数が少ないと が不当に大きくなることがあるが, 係数 によりそれが軽減される.•PMI より適切な素性を選択してくれることが多い.

w H(C|Xw = 1)P (Xw = 1)