More Related Content Similar to TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん (20) More from sleepy_yoshi (20) TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん1. TokyoNLP #5
パーセプトロンで
楽しい仲間がぽぽぽぽ~ん
2011-04-23
Yoshihiko Suhara
@sleepy_yoshi
8. パーセプ
トロン
オンライン マージン カーネル
学習 最大化 法
13. 線形識別モデル
• 二値分類の線形識別モデルを考える
– モデルはM次元の重みベクトル������
– M次元の特徴ベクトル������に対する予測������は,
������ = +1 if ������������ ������ > 0
−1 otherwise
• バイアス項は?
– 必ず1になるM+1次元目の特徴を考えればよい
15. パーセプトロン [Rosenblatt 58]
• 1957年にF. Rosenblattが発案
– 人工神経回路網を模した線形識別器
Perceptron
FACOM128B
• 参考
– リレー式計算機 富士通FACOM128B (1959年)
• 国産初のリレー式計算機
• 現存する世界最古の計算機
16. パーセプトロン
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 ������������
17. パーセプトロン
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 ������������
22. 確率的勾配法
• ひとつずつ与えられるデータに対して重みを逐
次更新
������
������������+1 ← ������������ − ������ ������������
������������
• ������������ を重み������で微分すると,
������
������������ ������ = −������������ ������������
������������
• パーセプトロン規準に対して確率的勾配降下法
に基づいて学習していると解釈できる
23. ������の設定方法
• 学習結果は,������の値にけっこう敏感
– 試行毎に小さくした方がベター
• よく使われる?方法 (*)
1000
– Basic: ������ =
������+1000
1
– Pegasos: ������ = (������は正則化に使われるパラメータ)
������������
– Constant: ������ =定数
(*) sofia-ml http://code.google.com/p/sofia-ml/
24. cf. Widrow-Hoffの学習規則
※ AdaLineとも呼ばれる
• 損失関数が二乗誤差
1
������ ������ = ������������ ������������ − ������������ 2
2
������������ ,������������ ∈������
• 重みベクトルの勾配は
������
������������ ������ = ������������ ������������ − ������������ ������������
������������
• したがって,更新式は
������������+1 ← ������������ − ������ ������������ ������������ − ������������ ������������
27. パーセプトロン規準
������������
0
������������ ������������ ������������
30. ヒンジ損失とは
0 ������������ ������������ ������������ ≥ 1
• ℓ(������; ������������ , ������������ ) =
1 − ������������ ������������ ������������ otherwise
– マージンが1より大きいとき損失0
– そうでないときは誤りに対して線形に損失を付与
33. Support Vector Machines (SVM)
• 定式化 全データに対してヒンジ損失が
ゼロになるように重みを学習
– minimize ������ 2
– subject to ������������ ������������ ������������ ≥ 1 ∀������
ヒンジ損失の発生を許容
• ソフトマージンの場合,
– minimize ������ 2 + ������ ������ ������������
– subject to ������������ ������������ ������������ ≥ 1 − ������������ ∀������
36. 準備
バイアス項を明示的に考えて������ = sign(������������ ������ + ������)とする
超平面上に存在する������������ ,������������ を考える
������������ ������������ + ������ = ������������ ������������ + ������ = 0
������������ (������������ −������������ ) = 0 よって重みベクトルは決定面と直交
������������ ������ + ������ = 0
������������
������������
������
������
37. データ点と超平面の距離
������
• ������ = ������������ + ������ 両辺にwをかけてbを足すと
������
������ ������ ������������ ������
• ������ ������ + ������ = ������ ������������ + ������ + ������
������
• ������������ ������ + ������ = ������ ������
������������ ������+������
• ������ =
������
������������ ������ + ������ = 0
������
������
������ ������
������
������������
38. 内積の定義から解釈
• ������������ ������ = ������������������������ ������ ������
������������ ������
• = ������������������������ ������
������
– ベクトル������の超平面への垂直方向の長さ
– バイアス項bとの大小で+1か-1を判別
b
������ ������
39. SVMのマージン最大化
• ヒンジ損失の等式を満たしている事例がある
とすると,最低限確保すべきマージンは
������������ ������ + ������=1なので,
������������ ������+������ 1
• ������ = → (これを最大化!)
������ ������
– 制約 ������������ ������������ ������������ ≥ 1 のため,むやみに小さくはできない
• ヒンジ損失 + L2ノルム最小化
40. マージン最大化学習が嬉しい理由
• 未知データに対して高い汎化性能を示すため
– 経験的にも理論的にも
• VC理論に基づく理論的背景 (超適当)
– 学習手法の複雑さ (VC次元) で汎化性能を評価
• 複雑な学習手法 => 同じ性能を出すためにより多くの訓練データが
必要
– 線形識別モデルの複雑さは,特徴空間に比例
=> 次元の呪いを受ける
– ただし線形識別モデルでマージン最大化学習を行う場合は,
マージンの大きさとデータ点を含む超球の半径で汎化性能
を評価可能
⇒次元の呪いを受けない!!
51. パーセプトロン
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 ������������
52. マージンパーセプトロン
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 ������������
53. マージンパーセプトロン
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 ������������
61. 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 , … , ������������ , ������������
62. 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 , … , ������������ , ������������
63. 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 正解したら1UP
7: ������������ ← 0
8: ELSE
9: ������������ ← ������������ + 1
10: ENDIF
11: ENDFOR
12: RETURN ������0 , ������0 , ������1 , ������1 , … , ������������ , ������������
64. Voted Perceptronによる分類
������
������ = ������������ sign(������������ ������)
������
������=0 重み付き投票
������ = sign ������
マージン最大化学習を実現
性能が高い (らしい)
68. 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
1
12: RETURN ������ ������������ ������������
������ ������������
69. 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
1
12: RETURN ������ ������������ ������������
������ ������������
70. その他の重みベクトル保持戦略
• Committee Perceptron [Elsas+ 06]
– あらかじめ決められた数だけ,「重要度の高い重み
ベクトル」 (committee weight vector) を保持
• Pocket Perceptron [Gallant 90]
– 一番長生きした重みベクトル (longest survivor) の重
みを利用
• Selective Voting [Li 00]
– 最初のB試行については重要度を0とする
– ������. ������. , ������������ = 0 for ������ < ������
72. 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
1
10: RETURN
������ ������ ������������
73. 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
1
10: RETURN
������ ������ ������������
78. Passive-Aggressive (PA) [Crammer 06]
• サンプルのヒンジ損失を0にするように重みを修正
– 重みベクトルの変更は最小に (マージン最大化)
������������+1 = argmin ������������ − ������ 2 s. t. ℓ(������; ������������ , ������������ ) = 0
0 ������������ ������������ ������������ ≥ 1
ℓ(������; ������������ , ������������ ) =
1 − ������������ ������������ ������������ otherwise
• 更新 (*)
ℓ������
������������+1 ← ������������ + ������������ ������������ ������������ where ������������ =
������������ 2
(*) Lagrange乗数法を使って極値を求めると閉じた解が導出できる
79. 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 ������ ������
80. PAの特徴
• PAではサンプル毎に誤りをゼロにする重みを閉
じた解で求める
– PA: 必ず当該サンプルにフィットする
– パーセプトロン: 学習率を使って徐々にフィット
• オーバーフィッティングやノイズの影響を避ける
ためには誤りを許容する項を導入
– PA-I : ������������ = min ������, ℓ������ / ������������ 2
ℓ������
– PA-II: ������������ = 1
������������ 2 +2������
81. 評価実験
• 20news group での分類精度の比較
– OLL†のページから実験結果を引用
† http://code.google.com/p/oll/wiki/OllMainJa
83. バッチ学習 vs. オンライン学習
• 情報量としてはバッチ学習の方が断然多い
– 普通に考えればバッチ学習>オンライン学習
• オンライン学習がうまく行くケース
– 高次元で疎なベクトルの場合
• 各サンプルの損失の和≒全サンプルの損失
– ノイズが多く含まれている場合
• NLPでは割とこういうタスクが多いのがオンライン
学習が流行っている理由?
87. 本日のまとめ
• パーセプトロン
– パーセプトロン規準
• SVM
– ヒンジ損失
– マージン最大化
• パーセプトロン亜種
– Margin Perceptron
– Voted Perceptron
– Averaged Perceptron
– 他
• Passive-Aggressive
89. 参考になる資料やツール
• 資料
– 岡野原大輔. 大規模データを基にした自然言語処理. 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/
91. 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.