tokyonlp#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

92
TokyoNLP #5 パーセプトロンで 楽しい仲間がぽぽぽぽ~ん 2011-04-23 Yoshihiko Suhara @sleepy_yoshi

Upload: sleepyyoshi

Post on 07-Jul-2015

10.049 views

Category:

Technology


1 download

DESCRIPTION

2011-04-23 TokyoNLP#5 発表資料

TRANSCRIPT

Page 1: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

TokyoNLP #5 パーセプトロンで

楽しい仲間がぽぽぽぽ~ん

2011-04-23

Yoshihiko Suhara

@sleepy_yoshi

Page 2: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

自己紹介

• ゆとり (@sleepy_yoshi)

• 情報検索とか機械学習とか

• ブログ: 睡眠不足?! – http://d.hatena.ne.jp/sleepy_yoshi/

• 平気で間違ったことを言うのでご注意を

Page 3: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

おねがいとおことわり

• 発表者の頭がいつも以上にぽぽぽぽ~んしてます

• 変なテンションについてゆけない方は静かにお休みください

• なお,救急車や警察は呼ばないでください

• しつこいネタにも大きな声でお笑いください

Page 4: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

ネタだと思ったでしょ?

Page 5: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

けっこうマジなんですww

Page 6: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

本日の目的

• パーセプトロンという最もシンプルな手法を軸に,自然言語処理に利用される機械学習手法を楽しく紹介

• キーワード

–オンライン学習

–マージン最大化学習

– カーネル法

Page 7: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

想い

Page 8: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

パーセプトロン

オンライン学習

マージン 最大化

カーネル法

Page 9: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

今日話さないこと

• カーネル法

• 構造学習

• 本日紹介する手法を抑えておけば基本事項は簡単に理解可能

Page 10: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

さて

Page 11: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

なんでパーセプトロン?

• NLPでは大規模,高次元データに対するオンライン学習手法がよく使われている

• それらを紹介する手がかりとしてパーセプトロンを選んでみました

–本発表ではパーセプトロン = 単層パーセプトロン

• 尐し歴史的背景も追いかけられるし

Page 12: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

準備

Page 13: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

線形識別モデル

• 二値分類の線形識別モデルを考える

–モデルはM次元の重みベクトル𝒘

– M次元の特徴ベクトル𝒙に対する予測𝑦 は,

𝑦 = +1 if 𝒘𝑇𝒙 > 0−1 otherwise

• バイアス項は?

–必ず1になるM+1次元目の特徴を考えればよい

Page 14: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

パーセプトロン

Page 15: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

パーセプトロン [Rosenblatt 58]

• 1957年にF. Rosenblattが発案 – 人工神経回路網を模した線形識別器

• 参考 – リレー式計算機 富士通FACOM128B (1959年)

• 国産初のリレー式計算機 • 現存する世界最古の計算機

FACOM128B Perceptron

Page 16: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

パーセプトロン INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂 OUTPUT: 𝒘 1: Initialize 𝒘0 = 𝟎, 𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 0 THEN

5: 𝒘𝑖+1 ← 𝒘𝑖 + 𝜂 𝑦𝑡𝒙𝑡 6: 𝑖 ← 𝑖 + 1 7: ENDIF 8: ENDFOR 9: RETURN 𝒘𝑖

Page 17: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

パーセプトロン INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂 OUTPUT: 𝒘 1: Initialize 𝒘0 = 𝟎, 𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 0 THEN

5: 𝒘𝑖+1 ← 𝒘𝑖 + 𝜂 𝑦𝑡𝒙𝑡 6: 𝑖 ← 𝑖 + 1 7: ENDIF 8: ENDFOR 9: RETURN 𝒘𝑖

間違ったら重みを修正

Page 18: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

修正? どうやって?

Page 19: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

𝒘𝑇𝒙 = 0

○ ×

×

× ×

×

図解パーセプトロン

間違ったら修正

Page 20: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

なぜ𝜂𝑦𝑛𝒙𝑛を足すか?

Page 21: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

パーセプトロン規準

• Perceptron criterion

• 「誤った場合の」損失関数

𝐸 𝒘 = − 𝑦𝑛𝒘𝑇𝒙𝑛

𝒙𝑛,𝑦𝑛 ∈𝐷

Page 22: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

確率的勾配法

• ひとつずつ与えられるデータに対して重みを逐次更新

𝒘𝑡+1 ← 𝒘𝑡 − 𝜂𝜕

𝜕𝒘𝐸𝑛

• 𝐸𝑛を重み𝒘で微分すると,

𝜕

𝜕𝒘𝐸𝑛 𝒘 = −𝑦𝑛𝒙𝑛

• パーセプトロン規準に対して確率的勾配降下法に基づいて学習していると解釈できる

Page 23: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

𝜂の設定方法

• 学習結果は,𝜂の値にけっこう敏感

–試行毎に小さくした方がベター

• よく使われる?方法 (*)

– Basic: 𝜂 =1000

𝑡+1000

– Pegasos: 𝜂 =1

𝑡𝜆 (𝜆は正則化に使われるパラメータ)

– Constant: 𝜂 =定数

(*) sofia-ml http://code.google.com/p/sofia-ml/

Page 24: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

cf. Widrow-Hoffの学習規則

• 損失関数が二乗誤差

𝐸 𝒘 =1

2 𝒘𝑇𝒙𝑛 − 𝑦𝑛

2

𝒙𝑛,𝑦𝑛 ∈𝐷

• 重みベクトルの勾配は

𝜕

𝜕𝒘𝐸𝑛 𝒘 = 𝒘𝑇𝒙𝑛 − 𝑦𝑛 𝒙𝑛

• したがって,更新式は

𝒘𝑡+1 ← 𝒘𝑡 − 𝜂 𝒘𝑇𝒙𝑛 − 𝑦𝑛 𝒙𝑛

※ AdaLineとも呼ばれる

Page 25: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Widrow-Hoffのパーセプトロン規準

𝑦𝑛𝒘𝑇𝒙𝑛

𝐸𝑛

0

Page 26: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

さて

Page 27: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

パーセプトロン規準

𝑦𝑛𝒘𝑇𝒙𝑛

𝐸𝑛

0

Page 28: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

どこかで見たぞ、この形

Page 29: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

ヒンジ損失

𝑦𝑛𝒘𝑇𝒙𝑛

𝐸𝑛

1

Page 30: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

ヒンジ損失とは

• ℓ(𝒘; 𝒙𝑛, 𝑦𝑛) = 0 𝑦𝑛𝒘

𝑇𝒙𝑛 ≥ 1

1 − 𝑦𝑛𝒘𝑇𝒙𝑛 otherwise

–マージンが1より大きいとき損失0

–そうでないときは誤りに対して線形に損失を付与

Page 31: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

どこで使うんだっけ...

Page 32: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

サポートベクターマシン

Page 33: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Support Vector Machines (SVM)

• 定式化

– minimize 𝒘 2

– subject to 𝑦𝑛𝒘𝑇𝒙𝑛 ≥ 1 ∀𝑛

• ソフトマージンの場合,

– minimize 𝒘 2 + 𝐶 𝜉𝑛𝑛

– subject to 𝑦𝑛𝒘𝑇𝒙𝑛 ≥ 1 − 𝜉𝑛 ∀𝑛

全データに対してヒンジ損失がゼロになるように重みを学習

ヒンジ損失の発生を許容

Page 34: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

マージン最大化学習

𝒘𝑇𝒙 = 0

× ×

× ×

×

𝛾

𝛾

○ ○

×

• 分離超平面のうち,マージンが最大になる超平面を選択

Page 35: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

どのようにマージン最大化?

Page 36: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

準備

𝒘

𝒙

𝒘𝑇𝒙 + 𝑏 = 0

𝒘𝑇𝒙𝐴 + 𝑏 = 𝒘𝑇𝑥𝐵 + 𝑏 = 0

𝒘𝑇(𝑥𝐴−𝑥𝐵) = 0 よって重みベクトルは決定面と直交

𝒙𝑨

𝒙𝑩

超平面上に存在する𝒙𝐴,𝒙𝐵 を考える

バイアス項を明示的に考えて𝑦 = sign(𝒘𝑇𝒙 + 𝑏)とする

Page 37: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

データ点と超平面の距離

• 𝒙 = 𝒙𝐻 + 𝑟𝒘

𝒘 両辺にwをかけてbを足すと

• 𝒘𝑻𝒙 + 𝑏 = 𝒘𝑇𝒙𝐻 + 𝑏 + 𝑟𝒘𝑇𝒘

𝒘

• 𝒘𝑇𝒙 + 𝑏 = 𝑟 𝒘

• 𝑟 =𝒘𝑇𝒙+𝑏

𝒘

𝒘

𝒙

𝒘𝑇𝒙 + 𝑏 = 0

𝒙𝐻

𝑟𝒘

𝒘

Page 38: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

内積の定義から解釈

• 𝒘𝑇𝒙 = 𝑐𝑜𝑠𝜃 𝒘 𝒙

•𝒘𝑇𝒙

𝒘= 𝑐𝑜𝑠𝜃 𝒙

–ベクトル𝒙の超平面への垂直方向の長さ

–バイアス項bとの大小で+1か-1を判別

𝜃 𝜃

b

Page 39: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

SVMのマージン最大化

• ヒンジ損失の等式を満たしている事例があるとすると,最低限確保すべきマージンは𝒘𝑇𝒙 + 𝑏=1なので,

• 𝑟 =𝒘𝑇𝒙+𝑏

𝒘→

1

𝒘 (これを最大化!)

– 制約 𝑦𝑛𝒘𝑇𝒙𝑛 ≥ 1 のため,むやみに小さくはできない

• ヒンジ損失 + L2ノルム最小化

Page 40: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

マージン最大化学習が嬉しい理由

• 未知データに対して高い汎化性能を示すため – 経験的にも理論的にも

• VC理論に基づく理論的背景 (超適当)

– 学習手法の複雑さ (VC次元) で汎化性能を評価 • 複雑な学習手法 => 同じ性能を出すためにより多くの訓練データが必要

– 線形識別モデルの複雑さは,特徴空間に比例 => 次元の呪いを受ける

– ただし線形識別モデルでマージン最大化学習を行う場合は,マージンの大きさとデータ点を含む超球の半径で汎化性能を評価可能 ⇒次元の呪いを受けない!!

Page 41: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Vladimir Vapnik先生

• 統計論的学習理論,VC理論の教祖

– VC = Vapnik-Cherbonenkis

• AT&T Labs => NEC Lab. America

ご尊顔 聖典

Page 42: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Thomas Bayes (1702-1761)

こちらの宗教の教祖

Page 43: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
Page 44: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

閑話休題

Page 45: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

パーセプトロンにも マージンを使いたい

Page 46: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

マージンパーセプトロン

Page 47: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

𝒘𝑇𝒙 = 0

× ×

× ×

×

𝛾

𝛾

図解マージンパーセプトロン [Krauth+ 87]

Page 48: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

というわけで

Page 49: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

これを

𝑦𝑛𝒘𝑇𝒙𝑛

𝐸𝑛

0

Page 50: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

こうする

𝑦𝑛𝒘𝑇𝒙𝑛

𝐸𝑛

𝛾

Page 51: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

パーセプトロン INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂 OUTPUT: 𝒘 1: Initialize 𝒘0 = 𝟎, 𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 0 THEN

5: 𝒘𝑖+1 ← 𝒘𝑖 + 𝜂 𝑦𝑡𝒙𝑡 6: 𝑖 ← 𝑖 + 1 7: ENDIF 8: ENDFOR 9: RETURN 𝒘𝑖

Page 52: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

マージンパーセプトロン INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂, 𝛾 OUTPUT: 𝒘 1: Initialize 𝒘0 = 𝟎, 𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 𝛾 THEN

5: 𝒘𝑖+1 ← 𝒘𝑖 + 𝜂 𝑦𝑡𝒙𝑡 6: 𝑖 ← 𝑖 + 1 7: ENDIF 8: ENDFOR 9: RETURN 𝒘𝑖

Page 53: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

マージンパーセプトロン INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂, 𝛾 OUTPUT: 𝒘 1: Initialize 𝒘0 = 𝟎, 𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 𝛾 THEN

5: 𝒘𝑖+1 ← 𝒘𝑖 + 𝜂 𝑦𝑡𝒙𝑡 6: 𝑖 ← 𝑖 + 1 7: ENDIF 8: ENDFOR 9: RETURN 𝒘𝑖

Page 54: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

これだけ。

Page 55: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

(私の) 経験的に

• マージンの値は検証データで調整

• マージンサイズをある程度大きくすると性能が向上する傾向

–ただし,データ依存なので注意

Page 56: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

マージンサイズは 非対称にしてもよい

Page 57: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

𝒘𝑇𝒙 = 0

×

× ×

×

× 𝛾+

𝛾−

Uneven Margin Perceptron [Li+ 02]

Page 58: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

ただ,これでは マージン最大化を していない

Page 59: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Voted Perceptron

Page 60: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Voted Perceptron [Freund+ 99]

• 投票型パーセプトロン (と呼ばれることもある)

• マージン最大化学習を行うパーセプトロンアルゴリズム

Page 61: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Voted Perceptron INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂

OUTPUT: 𝒘0, 𝑐0 , 𝒘1, 𝑐1 , … , 𝒘𝑘, 𝑐𝑘

1: Initialize 𝒘0 = 𝟎, 𝑖 = 0, 𝑐𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 0 THEN

5: 𝒘𝑖+1 ← 𝒘𝑖 + 𝜂 𝑦𝑡𝒙𝑡 6: 𝑖 ← 𝑖 + 1 7: 𝑐𝑖 ← 0 8: ELSE 9: 𝑐𝑖 ← 𝑐𝑖 + 1 10: ENDIF 11: ENDFOR

12: RETURN 𝒘0, 𝑐0 , 𝒘1, 𝑐1 , … , 𝒘𝑘 , 𝑐𝑘

Page 62: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Voted Perceptron INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂

OUTPUT: 𝒘0, 𝑐0 , 𝒘1, 𝑐1 , … , 𝒘𝑘, 𝑐𝑘

1: Initialize 𝒘0 = 𝟎, 𝑖 = 0, 𝑐𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 0 THEN

5: 𝒘𝑖+1 ← 𝒘𝑖 + 𝜂 𝑦𝑡𝒙𝑡 6: 𝑖 ← 𝑖 + 1 7: 𝑐𝑖 ← 0 8: ELSE 9: 𝑐𝑖 ← 𝑐𝑖 + 1 10: ENDIF 11: ENDFOR

12: RETURN 𝒘0, 𝑐0 , 𝒘1, 𝑐1 , … , 𝒘𝑘 , 𝑐𝑘

修正した重み全てと その重要度を返す

Page 63: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Voted Perceptron INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂

OUTPUT: 𝒘0, 𝑐0 , 𝒘1, 𝑐1 , … , 𝒘𝑘, 𝑐𝑘

1: Initialize 𝒘0 = 𝟎, 𝑖 = 0, 𝑐𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 0 THEN

5: 𝒘𝑖+1 ← 𝒘𝑖 + 𝜂 𝑦𝑡𝒙𝑡 6: 𝑖 ← 𝑖 + 1 7: 𝑐𝑖 ← 0 8: ELSE 9: 𝑐𝑖 ← 𝑐𝑖 + 1 10: ENDIF 11: ENDFOR

12: RETURN 𝒘0, 𝑐0 , 𝒘1, 𝑐1 , … , 𝒘𝑘 , 𝑐𝑘

間違えたら重み修正 正解したら1UP

Page 64: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Voted Perceptronによる分類

𝑠 = 𝑐𝑖 sign(𝒘𝑖𝑇𝒙)

𝑘

𝑖=0

𝑦 = sign 𝑠

重み付き投票

マージン最大化学習を実現 性能が高い (らしい)

Page 65: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

計算量が多い

• 重みベクトルと重要度を全部覚える必要あり

–誤り回数に比例して容量コストが高くなる

• そこでvoted perceptronを近似的に実現

Page 66: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Averaged Perceptron

Page 67: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Averaged Perceptron [Carvalho+ 06]

• 基本的な考え方はVoted Perceptron

• 重みを全て保持せずに重要度で平均

–重みの総和と重要度の総和を保持しておけば,保持する重みベクトルの容量は2倍程度

Page 68: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Averaged Perceptron INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂 OUTPUT: 𝒘 1: Initialize 𝒘0 = 𝟎, 𝑖 = 0, 𝑐𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 0 THEN

5: 𝒘𝑖+1 ← 𝒘𝑖 + 𝜂 𝑦𝑡𝒙𝑡 6: 𝑖 ← 𝑖 + 1 7: 𝑐𝑖 ← 0 8: ELSE 9: 𝑐𝑖 ← 𝑐𝑖 + 1 10: ENDIF 11: ENDFOR

12: RETURN 1

𝑐𝑖𝑖 𝑐𝑖𝒘𝑖𝑖

Page 69: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Averaged Perceptron INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂 OUTPUT: 𝒘 1: Initialize 𝒘0 = 𝟎, 𝑖 = 0, 𝑐𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 0 THEN

5: 𝒘𝑖+1 ← 𝒘𝑖 + 𝜂 𝑦𝑡𝒙𝑡 6: 𝑖 ← 𝑖 + 1 7: 𝑐𝑖 ← 0 8: ELSE 9: 𝑐𝑖 ← 𝑐𝑖 + 1 10: ENDIF 11: ENDFOR

12: RETURN 1

𝑐𝑖𝑖 𝑐𝑖𝒘𝑖𝑖

Page 70: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

その他の重みベクトル保持戦略

• Committee Perceptron [Elsas+ 06] – あらかじめ決められた数だけ,「重要度の高い重みベクトル」 (committee weight vector) を保持

• Pocket Perceptron [Gallant 90]

– 一番長生きした重みベクトル (longest survivor) の重みを利用

• Selective Voting [Li 00] – 最初のB試行については重要度を0とする

– 𝑖. 𝑒. , 𝑐𝑖 = 0 for 𝑖 < 𝐵

Page 71: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

違う文脈で重みベクトルの 平均を取る方法も提案

こっちの方が早い&有名

Page 72: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Averaged Perceptron INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂 OUTPUT: 𝒘 1: Initialize 𝒘0 = 𝟎, 𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 0 THEN

5: 𝒘𝑡+1 ← 𝒘𝑡 + 𝜂 𝑦𝑡𝒙𝑡 6: ELSE 7: 𝒘𝑡+1 ← 𝒘𝑡 8: ENDIF 9: ENDFOR

10: RETURN 1

𝑇 𝒘𝑖𝑖

Page 73: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Averaged Perceptron INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇, 𝜂 OUTPUT: 𝒘 1: Initialize 𝒘0 = 𝟎, 𝑖 = 0 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫

4: IF 𝑦𝑡𝒘𝑖𝑇𝒙𝑡 ≤ 0 THEN

5: 𝒘𝑡+1 ← 𝒘𝑡 + 𝜂 𝑦𝑡𝒙𝑡 6: ELSE 7: 𝒘𝑡+1 ← 𝒘𝑡 8: ENDIF 9: ENDFOR

10: RETURN 1

𝑇 𝒘𝑖𝑖

Page 74: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

[Carvalho+ 06]では[Collins 02]を引用していないけれど,やっていることは実質同じ

Page 75: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

経験上

• オンライン学習の重みベクトルの平均を取って悪さをすることはない

• たぶん,一般的にもそう思われているはず

Page 76: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

しかし、やっぱり思い通りの 性能が出ないこともある

Page 77: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Online Passive-Aggressive

Page 78: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Passive-Aggressive (PA) [Crammer 06]

• サンプルのヒンジ損失を0にするように重みを修正 – 重みベクトルの変更は最小に (マージン最大化)

𝒘𝑡+1 = argmin 𝒘𝑡 −𝒘 2 s. t. ℓ(𝒘; 𝑦𝑛, 𝒙𝑛) = 0

ℓ(𝒘; 𝒙𝑛, 𝑦𝑛) = 0 𝑦𝑛𝒘

𝑇𝒙𝑛 ≥ 1

1 − 𝑦𝑛𝒘𝑇𝒙𝑛 otherwise

• 更新 (*)

𝒘𝑡+1 ← 𝒘𝑡 + 𝜏𝑡𝑦𝑛𝒙𝑛 where 𝜏𝑡 =ℓ𝑡

𝒙𝑛2

(*) Lagrange乗数法を使って極値を求めると閉じた解が導出できる

Page 79: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

Passive-Aggressive INPUT: (𝒙𝑛, 𝑦𝑛) ∈ 𝑫, 𝑇 OUTPUT: 𝒘 1: Initialize 𝒘0 = 𝟎 2: FOR 𝑡 in 0 to 𝑇 3: Obtain random sample (𝒙𝑡 , 𝑦𝑡) from 𝑫 4: calculate 𝜏𝑡 = ℓ𝑡/ 𝒙𝑡

2 5: 𝒘𝑡+1 ← 𝒘𝑡 + 𝜏𝑡𝑦𝑡𝒙𝑡 6: ENDFOR 7: RETURN 𝒘𝑇

Page 80: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

PAの特徴

• PAではサンプル毎に誤りをゼロにする重みを閉じた解で求める – PA: 必ず当該サンプルにフィットする

– パーセプトロン: 学習率を使って徐々にフィット

• オーバーフィッティングやノイズの影響を避けるためには誤りを許容する項を導入 – PA-I : 𝜏𝑡 = min 𝐶, ℓ𝑡/ 𝒙𝑡

2

– PA-II: 𝜏𝑡 =ℓ𝑡

𝒙𝑡 2+1

2𝐶

Page 81: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

評価実験

• 20news group での分類精度の比較

– OLL†のページから実験結果を引用

† http://code.google.com/p/oll/wiki/OllMainJa

Page 82: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

オンライン学習に 関する雑想

Page 83: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

バッチ学習 vs. オンライン学習

• 情報量としてはバッチ学習の方が断然多い – 普通に考えればバッチ学習>オンライン学習

• オンライン学習がうまく行くケース

– 高次元で疎なベクトルの場合 • 各サンプルの損失の和≒全サンプルの損失

– ノイズが多く含まれている場合

• NLPでは割とこういうタスクが多いのがオンライン学習が流行っている理由?

Page 84: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

実装は簡単,理論は難解

• オンライン学習の理論的裏付けは難解

–実装は簡単

• バッチ学習は反対

–一般的に理論は簡単,実装は難解

Page 85: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

余談: 渡辺慧氏のアイディア

• 渡辺慧「認識とパタン」 岩波新書 (1978年)

• マージン最大化学習のアイディアを記述

– Vapnik先生とどちらが早かったんだろうか?

Page 86: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

まとめ

Page 87: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

本日のまとめ

• パーセプトロン – パーセプトロン規準

• SVM – ヒンジ損失 – マージン最大化

• パーセプトロン亜種 – Margin Perceptron – Voted Perceptron – Averaged Perceptron – 他

• Passive-Aggressive

Page 88: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

お伝えしたかったこと

• パーセプトロンを軸に楽しい仲間をぽぽぽぽーんできる! –損失と最適化の方法

– SVMとの関連

–マージン最大化

–どこを改善するか

• 実装は超簡単 –重み更新部分だけ変えればよい

Page 89: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

参考になる資料やツール

• 資料 – 岡野原大輔. 大規模データを基にした自然言語処理. SIG-FPAIシュートリアル.

2009 • http://hillbig.cocolog-nifty.com/do/2009/03/post-3acb.html

– 岡野原大輔. 超高速テキスト処理のためのアルゴリズムとデータ構造. NLP2010チュートリアル • http://www.ss.cs.tut.ac.jp/nlp2011/nlp2010_tutorial_okanohara.pdf

– 中澤敏明. MIRA (Margin Infused Relaxed Algorithm) • http://www-lab25.kuee.kyoto-u.ac.jp/~nakazawa/pubdb/other/MIRA.pdf

• ツール – OLL: オンライン学習ライブラリ

• http://code.google.com/p/oll/wiki/OllMainJa

– sofia-ml • http://code.google.com/p/sofia-ml/

– Vowpal Wabbit • http://hunch.net/~vw/

Page 90: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

長時間ご清聴ありがとうございました

次回作にご期待ください

Page 91: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

References

• [Rosenblatt 58] F. Rosenblatt, “The Perceptron: A Probabilistic Model for Information

Storage and Organization in the Brain”, Cornell Aeronautical Laboratory, Psychological Review, vol.65(6), pp. 386–408, 1958.

• [Krauth+ 87] W. Krauth, M. Mezard, “Learning algorithms with optimal stability in neural networks”, Journal of Physics A 20, pp.745-752, 1987.

• [Li 02] Y. Li, H. Zaragoza, R. Herbrich, J. Shawe-Taylor, Jaz S. Kandola, “The Perceptron Algorithm with Uneven Margins”, ICML 2002.

• [Carvalho+ 06] V. R. Carvalho and W. W. Cohen, “Single-pass online learning: performance, voting schemes and online feature selection”, KDD 2006.

• [Elsas+ 08] J. L. Elsas, V. R. Carvalho, J. G. Carbonell, “Fast learning of document ranking functions with the committee perceptron”, WSDM 2008.

• [Gallant 90] S. I. Gallant, “Perceptron-based learning algorithms”, IEEE Transactions on Neural Networks, vol.1(2), pp.179-191, 1990.

• [Li 00] Y. Li, “Selective Voting for Perception-like Online Learning”, ICML 2000. • [Collins 02] M. Collins, "Discriminative Training Methods for Hidden Markov Models:

Theory and Experiments with Perceptron Algorithms", EMNLP 2002. • [Crammer 06] K. Crammer, O. Dekel. J. Keshet, S. Shalev-Shwartz, Y. Singer, "Online

Passive-Aggressive Algorithms.", Journal of Machine Learning Research, 2006.

Page 92: TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん

おしまい