• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
 

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

on

  • 9,341 views

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

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

Statistics

Views

Total Views
9,341
Views on SlideShare
5,986
Embed Views
3,355

Actions

Likes
9
Downloads
121
Comments
0

10 Embeds 3,355

http://d.hatena.ne.jp 3318
http://webcache.googleusercontent.com 13
url_unknown 12
http://www.slideshare.net 3
https://twitter.com 2
http://www.feedspot.com 2
http://plus.url.google.com 2
http://translate.googleusercontent.com 1
http://cache.yahoofs.jp 1
http://192.168.33.10 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • TokyoNLP #5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん 2011-04-23 Yoshihiko Suhara @sleepy_yoshi
    • 自己紹介• ゆとり (@sleepy_yoshi)• 情報検索とか機械学習とか• ブログ: 睡眠不足?! – http://d.hatena.ne.jp/sleepy_yoshi/• 平気で間違ったことを言うのでご注意を
    • おねがいとおことわり• 発表者の頭がいつも以上にぽぽぽぽ~んしてま す• 変なテンションについてゆけない方は静かにお 休みください• なお,救急車や警察は呼ばないでください• しつこいネタにも大きな声でお笑いください
    • ネタだと思ったでしょ?
    • けっこうマジなんですww
    • 本日の目的• パーセプトロンという最もシンプルな手法を軸 に,自然言語処理に利用される機械学習手 法を楽しく紹介• キーワード – オンライン学習 – マージン最大化学習 – カーネル法
    • 想い
    • パーセプ トロンオンライン マージン カーネル 学習 最大化 法
    • 今日話さないこと• カーネル法• 構造学習• 本日紹介する手法を抑えておけば基本事項 は簡単に理解可能
    • さて
    • なんでパーセプトロン?• NLPでは大規模,高次元データに対するオン ライン学習手法がよく使われている• それらを紹介する手がかりとしてパーセプトロ ンを選んでみました – 本発表ではパーセプトロン = 単層パーセプトロン• 尐し歴史的背景も追いかけられるし
    • 準備
    • 線形識別モデル• 二値分類の線形識別モデルを考える – モデルはM次元の重みベクトル – M次元の特徴ベクトルに対する予測は, = +1 if > 0 −1 otherwise• バイアス項は? – 必ず1になるM+1次元目の特徴を考えればよい
    • パーセプトロン
    • パーセプトロン [Rosenblatt 58]• 1957年にF. Rosenblattが発案 – 人工神経回路網を模した線形識別器 Perceptron FACOM128B• 参考 – リレー式計算機 富士通FACOM128B (1959年) • 国産初のリレー式計算機 • 現存する世界最古の計算機
    • パーセプトロン INPUT: ( , ) ∈ , , OUTPUT: 1: Initialize 0 = , = 02: FOR in 0 to 3: Obtain random sample ( , ) from 4: IF ≤ 0 THEN 5: +1 ← + 6: ← + 17: ENDIF8: ENDFOR9: RETURN
    • パーセプトロン INPUT: ( , ) ∈ , , OUTPUT: 1: Initialize 0 = , = 02: FOR in 0 to 間違ったら重みを修正3: Obtain random sample ( , ) from 4: IF ≤ 0 THEN 5: +1 ← + 6: ← + 17: ENDIF8: ENDFOR9: RETURN
    • 修正? どうやって?
    • 図解パーセプトロン = 0 ○ × ○ × ○ × × × 間違ったら修正
    • なぜ を足すか?
    • パーセプトロン規準• Perceptron criterion• 「誤った場合の」損失関数 = − , ∈
    • 確率的勾配法• ひとつずつ与えられるデータに対して重みを逐 次更新 +1 ← − • を重みで微分すると, = − • パーセプトロン規準に対して確率的勾配降下法 に基づいて学習していると解釈できる
    • の設定方法• 学習結果は,の値にけっこう敏感 – 試行毎に小さくした方がベター• よく使われる?方法 (*) 1000 – Basic: = +1000 1 – Pegasos: = (は正則化に使われるパラメータ) – Constant: =定数 (*) sofia-ml http://code.google.com/p/sofia-ml/
    • cf. Widrow-Hoffの学習規則 ※ AdaLineとも呼ばれる• 損失関数が二乗誤差 1 = − 2 2 , ∈• 重みベクトルの勾配は = − • したがって,更新式は +1 ← − −
    • Widrow-Hoffのパーセプトロン規準 0
    • さて
    • パーセプトロン規準 0
    • どこかで見たぞ、この形
    • ヒンジ損失 1
    • ヒンジ損失とは 0 ≥ 1• ℓ(; , ) = 1 − otherwise – マージンが1より大きいとき損失0 – そうでないときは誤りに対して線形に損失を付与
    • どこで使うんだっけ...
    • サポートベクターマシン
    • Support Vector Machines (SVM)• 定式化 全データに対してヒンジ損失が ゼロになるように重みを学習 – minimize 2 – subject to ≥ 1 ∀ ヒンジ損失の発生を許容• ソフトマージンの場合, – minimize 2 + – subject to ≥ 1 − ∀
    • マージン最大化学習• 分離超平面のうち,マージンが最大になる超 平面を選択 = 0 ○ ○ ○ ○ × ○ × × × × ×
    • どのようにマージン最大化?
    • 準備バイアス項を明示的に考えて = sign( + )とする超平面上に存在する , を考える + = + = 0 ( − ) = 0 よって重みベクトルは決定面と直交 + = 0
    • データ点と超平面の距離 • = + 両辺にwをかけてbを足すと • + = + + • + = +• = + = 0
    • 内積の定義から解釈• = • = – ベクトルの超平面への垂直方向の長さ – バイアス項bとの大小で+1か-1を判別 b
    • SVMのマージン最大化• ヒンジ損失の等式を満たしている事例がある とすると,最低限確保すべきマージンは + =1なので, + 1• = → (これを最大化!) – 制約 ≥ 1 のため,むやみに小さくはできない• ヒンジ損失 + L2ノルム最小化
    • マージン最大化学習が嬉しい理由• 未知データに対して高い汎化性能を示すため – 経験的にも理論的にも• VC理論に基づく理論的背景 (超適当) – 学習手法の複雑さ (VC次元) で汎化性能を評価 • 複雑な学習手法 => 同じ性能を出すためにより多くの訓練データが 必要 – 線形識別モデルの複雑さは,特徴空間に比例 => 次元の呪いを受ける  – ただし線形識別モデルでマージン最大化学習を行う場合は, マージンの大きさとデータ点を含む超球の半径で汎化性能 を評価可能 ⇒次元の呪いを受けない!! 
    • Vladimir Vapnik先生• 統計論的学習理論,VC理論の教祖 – VC = Vapnik-Cherbonenkis• AT&T Labs => NEC Lab. America ご尊顔 聖典
    • こちらの宗教の教祖Thomas Bayes (1702-1761)
    • 閑話休題
    • パーセプトロンにもマージンを使いたい
    • マージンパーセプトロン
    • 図解マージンパーセプトロン [Krauth+ 87] = 0 ○ ○ ○ × × × × ×
    • というわけで
    • これを 0
    • こうする
    • パーセプトロン INPUT: ( , ) ∈ , , OUTPUT: 1: Initialize 0 = , = 02: FOR in 0 to 3: Obtain random sample ( , ) from 4: IF ≤ 0 THEN 5: +1 ← + 6: ← + 17: ENDIF8: ENDFOR9: RETURN
    • マージンパーセプトロン INPUT: ( , ) ∈ , , , OUTPUT: 1: Initialize 0 = , = 02: FOR in 0 to 3: Obtain random sample ( , ) from 4: IF ≤ THEN 5: +1 ← + 6: ← + 17: ENDIF8: ENDFOR9: RETURN
    • マージンパーセプトロン INPUT: ( , ) ∈ , , , OUTPUT: 1: Initialize 0 = , = 02: FOR in 0 to 3: Obtain random sample ( , ) from 4: IF ≤ THEN 5: +1 ← + 6: ← + 17: ENDIF8: ENDFOR9: RETURN
    • これだけ。
    • (私の) 経験的に• マージンの値は検証データで調整• マージンサイズをある程度大きくすると性能 が向上する傾向 – ただし,データ依存なので注意
    • マージンサイズは非対称にしてもよい
    • Uneven Margin Perceptron [Li+ 02] = 0 ○ ○ ○ ○ × × + × × − ×
    • ただ,これではマージン最大化を していない
    • Voted Perceptron
    • Voted Perceptron [Freund+ 99]• 投票型パーセプトロン (と呼ばれることもある)• マージン最大化学習を行うパーセプトロンア ルゴリズム
    • Voted Perceptron INPUT: ( , ) ∈ , , OUTPUT: 0 , 0 , 1 , 1 , … , , 1: Initialize 0 = , = 0, = 02: FOR in 0 to 3: Obtain random sample ( , ) from 4: IF ≤ 0 THEN 5: +1 ← + 6: ← + 17: ← 08: ELSE9: ← + 110: ENDIF11: ENDFOR12: RETURN 0 , 0 , 1 , 1 , … , ,
    • Voted Perceptron INPUT: ( , ) ∈ , , OUTPUT: 0 , 0 , 1 , 1 , … , , 1: Initialize 0 = , = 0, = 02: FOR in 0 to 修正した重み全てと3: Obtain random sample ( , ) from その重要度を返す 4: IF ≤ 0 THEN5: +1 ← + 6: ← + 17: ← 08: ELSE9: ← + 110: ENDIF11: ENDFOR12: RETURN 0 , 0 , 1 , 1 , … , ,
    • Voted Perceptron INPUT: ( , ) ∈ , , OUTPUT: 0 , 0 , 1 , 1 , … , , 1: Initialize 0 = , = 0, = 02: FOR in 0 to 3: Obtain random sample ( , ) from 4: IF ≤ 0 THEN 5: +1 ← + 間違えたら重み修正6: ← + 1 正解したら1UP7: ← 08: ELSE9: ← + 110: ENDIF11: ENDFOR12: RETURN 0 , 0 , 1 , 1 , … , ,
    • Voted Perceptronによる分類 = sign( ) =0 重み付き投票 = sign マージン最大化学習を実現 性能が高い (らしい)
    • 計算量が多い • 重みベクトルと重要度を全部覚える必要あり – 誤り回数に比例して容量コストが高くなる• そこでvoted perceptronを近似的に実現
    • Averaged Perceptron
    • Averaged Perceptron [Carvalho+ 06]• 基本的な考え方はVoted Perceptron• 重みを全て保持せずに重要度で平均 – 重みの総和と重要度の総和を保持しておけば, 保持する重みベクトルの容量は2倍程度
    • Averaged Perceptron INPUT: ( , ) ∈ , , OUTPUT: 1: Initialize 0 = , = 0, = 02: FOR in 0 to 3: Obtain random sample ( , ) from 4: IF ≤ 0 THEN 5: +1 ← + 6: ← + 17: ← 08: ELSE9: ← + 110: ENDIF11: ENDFOR 112: RETURN
    • Averaged Perceptron INPUT: ( , ) ∈ , , OUTPUT: 1: Initialize 0 = , = 0, = 02: FOR in 0 to 3: Obtain random sample ( , ) from 4: IF ≤ 0 THEN 5: +1 ← + 6: ← + 17: ← 08: ELSE9: ← + 110: ENDIF11: ENDFOR 112: RETURN
    • その他の重みベクトル保持戦略• Committee Perceptron [Elsas+ 06] – あらかじめ決められた数だけ,「重要度の高い重み ベクトル」 (committee weight vector) を保持• Pocket Perceptron [Gallant 90] – 一番長生きした重みベクトル (longest survivor) の重 みを利用• Selective Voting [Li 00] – 最初のB試行については重要度を0とする – . . , = 0 for <
    • 違う文脈で重みベクトルの 平均を取る方法も提案 こっちの方が早い&有名
    • Averaged Perceptron INPUT: ( , ) ∈ , , OUTPUT: 1: Initialize 0 = , = 02: FOR in 0 to 3: Obtain random sample ( , ) from 4: IF ≤ 0 THEN 5: +1 ← + 6: ELSE7: +1 ← 8: ENDIF9: ENDFOR 110: RETURN
    • Averaged Perceptron INPUT: ( , ) ∈ , , OUTPUT: 1: Initialize 0 = , = 02: FOR in 0 to 3: Obtain random sample ( , ) from 4: IF ≤ 0 THEN 5: +1 ← + 6: ELSE7: +1 ← 8: ENDIF9: ENDFOR 110: RETURN
    • [Carvalho+ 06]では[Collins 02]を引用していないけれど,やっていることは実質同じ
    • 経験上• オンライン学習の重みベクトルの平均を取っ て悪さをすることはない• たぶん,一般的にもそう思われているはず
    • しかし、やっぱり思い通りの 性能が出ないこともある
    • Online Passive-Aggressive
    • Passive-Aggressive (PA) [Crammer 06]• サンプルのヒンジ損失を0にするように重みを修正 – 重みベクトルの変更は最小に (マージン最大化) +1 = argmin − 2 s. t. ℓ(; , ) = 0 0 ≥ 1 ℓ(; , ) = 1 − otherwise• 更新 (*) ℓ +1 ← + where = 2 (*) Lagrange乗数法を使って極値を求めると閉じた解が導出できる
    • Passive-Aggressive INPUT: ( , ) ∈ , OUTPUT: 1: Initialize 0 = 2: FOR in 0 to 3: Obtain random sample ( , ) from 4: calculate = ℓ / 25: +1 ← + 6: ENDFOR7: RETURN
    • PAの特徴• PAではサンプル毎に誤りをゼロにする重みを閉 じた解で求める – PA: 必ず当該サンプルにフィットする – パーセプトロン: 学習率を使って徐々にフィット• オーバーフィッティングやノイズの影響を避ける ためには誤りを許容する項を導入 – PA-I : = min , ℓ / 2 ℓ – PA-II: = 1 2 +2
    • 評価実験• 20news group での分類精度の比較 – OLL†のページから実験結果を引用 † http://code.google.com/p/oll/wiki/OllMainJa
    • オンライン学習に 関する雑想
    • バッチ学習 vs. オンライン学習• 情報量としてはバッチ学習の方が断然多い – 普通に考えればバッチ学習>オンライン学習• オンライン学習がうまく行くケース – 高次元で疎なベクトルの場合 • 各サンプルの損失の和≒全サンプルの損失 – ノイズが多く含まれている場合• NLPでは割とこういうタスクが多いのがオンライン 学習が流行っている理由?
    • 実装は簡単,理論は難解• オンライン学習の理論的裏付けは難解 – 実装は簡単• バッチ学習は反対 – 一般的に理論は簡単,実装は難解
    • 余談: 渡辺慧氏のアイディア• 渡辺慧「認識とパタン」 岩波新書 (1978年)• マージン最大化学習のアイディアを記述 – Vapnik先生とどちらが早かったんだろうか?
    • まとめ
    • 本日のまとめ• パーセプトロン – パーセプトロン規準• SVM – ヒンジ損失 – マージン最大化• パーセプトロン亜種 – Margin Perceptron – Voted Perceptron – Averaged Perceptron – 他• Passive-Aggressive
    • お伝えしたかったこと• パーセプトロンを軸に楽しい仲間をぽぽぽ ぽーんできる! – 損失と最適化の方法 – SVMとの関連 – マージン最大化 – どこを改善するか• 実装は超簡単 – 重み更新部分だけ変えればよい
    • 参考になる資料やツール• 資料 – 岡野原大輔. 大規模データを基にした自然言語処理. 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/
    • 長時間ご清聴ありがとうございました 次回作にご期待ください
    • 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.
    • おしまい