0
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• バイアス項は? –...
パーセプトロン
パーセプトロン [Rosenblatt 58]• 1957年にF. Rosenblattが発案  – 人工神経回路網を模した線形識別器        Perceptron                           FACOM128B•...
パーセプトロン INPUT: ( ,  ) ∈ , , OUTPUT: 1: Initialize 0 = ,  = 02: FOR  in 0 to 3: Obtain random sample ( ,  ) from 4: IF    ≤...
パーセプトロン INPUT: ( ,  ) ∈ , , OUTPUT: 1: Initialize 0 = ,  = 02: FOR  in 0 to                   間違ったら重みを修正3: Obtain random s...
修正? どうやって?
図解パーセプトロン  = 0                       ○               ×                       ○               ×                           ○...
なぜ  を足すか?
パーセプトロン規準• Perceptron criterion• 「誤った場合の」損失関数         = −                                          , ∈
確率的勾配法• ひとつずつ与えられるデータに対して重みを逐  次更新                                  +1 ←  −                                 •  を重みで微分すると, ...
の設定方法• 学習結果は,の値にけっこう敏感 – 試行毎に小さくした方がベター• よく使われる?方法 (*)                   1000 –   Basic:  =                 +1000         ...
cf. Widrow-Hoffの学習規則                                                    ※ AdaLineとも呼ばれる• 損失関数が二乗誤差             1       =  ...
Widrow-Hoffのパーセプトロン規準                       0
さて
パーセプトロン規準             0
どこかで見たぞ、この形
ヒンジ損失         1
ヒンジ損失とは                              0                 ≥ 1• ℓ(;  ,  ) =                        1 −        otherwise   – マー...
どこで使うんだっけ...
サポートベクターマシン
Support Vector Machines (SVM)• 定式化                          全データに対してヒンジ損失が                               ゼロになるように重みを学習 – m...
マージン最大化学習• 分離超平面のうち,マージンが最大になる超  平面を選択    = 0                    ○                         ○       ○                      ...
どのようにマージン最大化?
準備バイアス項を明示的に考えて = sign(  + )とする超平面上に存在する , を考える  +  =   +  = 0 ( − ) = 0 よって重みベクトルは決定面と直交    +  = 0                       ...
データ点と超平面の距離                       •  =  +              両辺にwをかけてbを足すと                                                      ...
内積の定義から解釈•   =              •             =            – ベクトルの超平面への垂直方向の長さ     – バイアス項bとの大小で+1か-1を判別                      ...
SVMのマージン最大化• ヒンジ損失の等式を満たしている事例がある  とすると,最低限確保すべきマージンは    + =1なので,          +        1•    =             →        (これを最大化!)...
マージン最大化学習が嬉しい理由• 未知データに対して高い汎化性能を示すため – 経験的にも理論的にも• VC理論に基づく理論的背景 (超適当) – 学習手法の複雑さ (VC次元) で汎化性能を評価   • 複雑な学習手法 = 同じ性能を出すため...
Vladimir Vapnik先生• 統計論的学習理論,VC理論の教祖  – VC = Vapnik-Cherbonenkis• ATT 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    ≤...
マージンパーセプトロン INPUT: ( ,  ) ∈ , , , OUTPUT: 1: Initialize 0 = ,  = 02: FOR  in 0 to 3: Obtain random sample ( ,  ) from 4: I...
マージンパーセプトロン INPUT: ( ,  ) ∈ , , , OUTPUT: 1: Initialize 0 = ,  = 02: FOR  in 0 to 3: Obtain random sample ( ,  ) from 4: I...
これだけ。
(私の) 経験的に• マージンの値は検証データで調整• マージンサイズをある程度大きくすると性能  が向上する傾向 – ただし,データ依存なので注意
マージンサイズは非対称にしてもよい
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: Obt...
Voted Perceptron   INPUT: ( ,  ) ∈ , , OUTPUT: 0 , 0 , 1 , 1 , … ,  , 1: Initialize 0 = ,  = 0,  = 02: FOR  in 0 to       ...
Voted Perceptron   INPUT: ( ,  ) ∈ , , OUTPUT: 0 , 0 , 1 , 1 , … ,  , 1: Initialize 0 = ,  = 0,  = 02: FOR  in 0 to 3: Obt...
Voted Perceptronによる分類                 =           sign( )                                         =0          重み付き投票      ...
計算量が多い • 重みベクトルと重要度を全部覚える必要あり – 誤り回数に比例して容量コストが高くなる• そこで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 ( ...
Averaged Perceptron   INPUT: ( ,  ) ∈ , , OUTPUT: 1: Initialize 0 = ,  = 0,  = 02: FOR  in 0 to 3: Obtain random sample ( ...
その他の重みベクトル保持戦略• Committee Perceptron [Elsas+ 06]   – あらかじめ決められた数だけ,「重要度の高い重み     ベクトル」 (committee weight vector) を保持• Pock...
違う文脈で重みベクトルの 平均を取る方法も提案  こっちの方が早い&有名
Averaged Perceptron INPUT: ( ,  ) ∈ , , OUTPUT: 1: Initialize 0 = ,  = 02: FOR  in 0 to 3: Obtain random sample ( ,  ) fro...
Averaged Perceptron INPUT: ( ,  ) ∈ , , OUTPUT: 1: Initialize 0 = ,  = 02: FOR  in 0 to 3: Obtain random sample ( ,  ) fro...
[Carvalho+ 06]では[Collins 02]を引用していないけれど,やっていることは実質同じ
経験上• オンライン学習の重みベクトルの平均を取っ  て悪さをすることはない• たぶん,一般的にもそう思われているはず
しかし、やっぱり思い通りの 性能が出ないこともある
Online Passive-Aggressive
Passive-Aggressive (PA) [Crammer 06]• サンプルのヒンジ損失を0にするように重みを修正  – 重みベクトルの変更は最小に (マージン最大化)   +1 = argmin  −           2   s....
Passive-Aggressive INPUT: ( ,  ) ∈ , OUTPUT: 1: Initialize 0 = 2: FOR  in 0 to 3: Obtain random sample ( ,  ) from 4:     ...
PAの特徴• PAではサンプル毎に誤りをゼロにする重みを閉  じた解で求める – PA: 必ず当該サンプルにフィットする – パーセプトロン: 学習率を使って徐々にフィット• オーバーフィッティングやノイズの影響を避ける  ためには誤りを許容す...
評価実験• 20news group での分類精度の比較 – OLL†のページから実験結果を引用              † http://code.google.com/p/oll/wiki/OllMainJa
オンライン学習に 関する雑想
バッチ学習 vs. オンライン学習• 情報量としてはバッチ学習の方が断然多い – 普通に考えればバッチ学習>オンライン学習• オンライン学習がうまく行くケース – 高次元で疎なベクトルの場合  • 各サンプルの損失の和≒全サンプルの損失 – ノ...
実装は簡単,理論は難解• オンライン学習の理論的裏付けは難解 – 実装は簡単• バッチ学習は反対 – 一般的に理論は簡単,実装は難解
余談: 渡辺慧氏のアイディア• 渡辺慧「認識とパタン」 岩波新書 (1978年)• マージン最大化学習のアイディアを記述 – Vapnik先生とどちらが早かったんだろうか?
まとめ
本日のまとめ• パーセプトロン   – パーセプトロン規準• SVM   – ヒンジ損失   – マージン最大化• パーセプトロン亜種   –   Margin Perceptron   –   Voted Perceptron   –   A...
お伝えしたかったこと• パーセプトロンを軸に楽しい仲間をぽぽぽ  ぽーんできる! – 損失と最適化の方法 – SVMとの関連 – マージン最大化 – どこを改善するか• 実装は超簡単 – 重み更新部分だけ変えればよい
参考になる資料やツール• 資料  – 岡野原大輔. 大規模データを基にした自然言語処理. SIG-FPAIシュートリアル.    2009       • http://hillbig.cocolog-nifty.com/do/2009/03/...
長時間ご清聴ありがとうございました  次回作にご期待ください
References•   [Rosenblatt 58] F. Rosenblatt, “The Perceptron: A Probabilistic Model for Information    Storage and Organiz...
おしまい
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
Upcoming SlideShare
Loading in...5
×

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

10,116

Published on

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

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

No Downloads
Views
Total Views
10,116
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
132
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide

Transcript of "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. おしまい
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×