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

11,362 views
11,457 views

Published on

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

Published in: Technology
0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
11,362
On SlideShare
0
From Embeds
0
Number of Embeds
4,391
Actions
Shares
0
Downloads
134
Comments
0
Likes
14
Embeds 0
No embeds

No notes for slide

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

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

×