SlideShare a Scribd company logo
1 of 92
Download to read offline
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 = ������, ������ = 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 ������������
パーセプトロン
 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 ������������
修正? どうやって?
図解パーセプトロン

������������ ������ = 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 = ������, ������ = 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 ������������
マージンパーセプトロン
 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 ������������
マージンパーセプトロン
 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 ������������
これだけ。
(私の) 経験的に
• マージンの値は検証データで調整
• マージンサイズをある程度大きくすると性能
  が向上する傾向
 – ただし,データ依存なので注意
マージンサイズは
非対称にしてもよい
Uneven Margin Perceptron [Li+ 02]

   ������������ ������ = 0             ○
                                     ○

                                         ○
                                             ○
                 × ×                 ������+

                  ×
                       ×       ������−
                  ×
ただ,これでは
マージン最大化を
  していない
Voted Perceptron
Voted Perceptron [Freund+ 99]
• 投票型パーセプトロン (と呼ばれることもある)

• マージン最大化学習を行うパーセプトロンア
  ルゴリズム
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 , … , ������������ , ������������
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 , … , ������������ , ������������
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 , … , ������������ , ������������
Voted Perceptronによる分類
            ������

    ������ =          ������������ sign(������������ ������)
                              ������
           ������=0          重み付き投票


           ������ = sign ������


   マージン最大化学習を実現
     性能が高い (らしい)
計算量が多い 
• 重みベクトルと重要度を全部覚える必要あり
 – 誤り回数に比例して容量コストが高くなる


• そこでvoted perceptronを近似的に実現
Averaged Perceptron
Averaged Perceptron [Carvalho+ 06]

• 基本的な考え方はVoted Perceptron
• 重みを全て保持せずに重要度で平均
 – 重みの総和と重要度の総和を保持しておけば,
   保持する重みベクトルの容量は2倍程度
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               ������ ������������ ������������
              ������ ������������
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               ������ ������������ ������������
              ������ ������������
その他の重みベクトル保持戦略
• 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 = ������, ������ = 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
                 ������   ������ ������������
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
                 ������   ������ ������������
[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 ������������ = ℓ������ / ������������ 2
5:       ������������+1 ← ������������ + ������������ ������������ ������������
6: ENDFOR
7: 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.
おしまい

More Related Content

What's hot

今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
Shinya Shimizu
 
初めてのグラフカット
初めてのグラフカット初めてのグラフカット
初めてのグラフカット
Tsubasa Hirakawa
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
Miyoshi Yuya
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
Miyoshi Yuya
 

What's hot (20)

ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
 
ガウス過程入門
ガウス過程入門ガウス過程入門
ガウス過程入門
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめ
 
Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
 
Fisher Vectorによる画像認識
Fisher Vectorによる画像認識Fisher Vectorによる画像認識
Fisher Vectorによる画像認識
 
[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展
 
Hyperoptとその周辺について
Hyperoptとその周辺についてHyperoptとその周辺について
Hyperoptとその周辺について
 
初めてのグラフカット
初めてのグラフカット初めてのグラフカット
初めてのグラフカット
 
モンテカルロサンプリング
モンテカルロサンプリングモンテカルロサンプリング
モンテカルロサンプリング
 
学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」
 
潜在クラス分析
潜在クラス分析潜在クラス分析
潜在クラス分析
 
強化学習における好奇心
強化学習における好奇心強化学習における好奇心
強化学習における好奇心
 
単純ベイズ法による異常検知 #ml-professional
単純ベイズ法による異常検知  #ml-professional単純ベイズ法による異常検知  #ml-professional
単純ベイズ法による異常検知 #ml-professional
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 

Viewers also liked

はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
Naoki Yanai
 

Viewers also liked (9)

PRML 4.1 Discriminant Function
PRML 4.1 Discriminant FunctionPRML 4.1 Discriminant Function
PRML 4.1 Discriminant Function
 
ぼくの実装した最弱のディープラーニング
ぼくの実装した最弱のディープラーニングぼくの実装した最弱のディープラーニング
ぼくの実装した最弱のディープラーニング
 
はじぱた7章F5up
はじぱた7章F5upはじぱた7章F5up
はじぱた7章F5up
 
20150803.山口大学講演
20150803.山口大学講演20150803.山口大学講演
20150803.山口大学講演
 
無限と計算可能性と対角線論法
無限と計算可能性と対角線論法無限と計算可能性と対角線論法
無限と計算可能性と対角線論法
 
20150803.山口大学集中講義
20150803.山口大学集中講義20150803.山口大学集中講義
20150803.山口大学集中講義
 
単純パーセプトロン
単純パーセプトロン単純パーセプトロン
単純パーセプトロン
 
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
はじめてでもわかるベイズ分類器 -基礎からMahout実装まで-
 
決定木学習
決定木学習決定木学習
決定木学習
 

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

プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
 

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

TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
 
Cv 14th
Cv 14thCv 14th
Cv 14th
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
Positive-Unlabeled Learning with Non-Negative Risk Estimator
Positive-Unlabeled Learning with Non-Negative Risk EstimatorPositive-Unlabeled Learning with Non-Negative Risk Estimator
Positive-Unlabeled Learning with Non-Negative Risk Estimator
 
Machine Learning Seminar (1)
Machine Learning Seminar (1)Machine Learning Seminar (1)
Machine Learning Seminar (1)
 
Icml2011 reading-sage
Icml2011 reading-sageIcml2011 reading-sage
Icml2011 reading-sage
 
Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会
 
アンサンブル学習
アンサンブル学習アンサンブル学習
アンサンブル学習
 
CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算
 
秘密分散法の数理
秘密分散法の数理秘密分散法の数理
秘密分散法の数理
 
双対性
双対性双対性
双対性
 
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
 
関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ関数の最小値を求めることから機械学習へ
関数の最小値を求めることから機械学習へ
 
PFI Christmas seminar 2009
PFI Christmas seminar 2009PFI Christmas seminar 2009
PFI Christmas seminar 2009
 
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5
 
Dive into XGBoost.pdf
Dive into XGBoost.pdfDive into XGBoost.pdf
Dive into XGBoost.pdf
 
WUPC2012
WUPC2012WUPC2012
WUPC2012
 
6 Info Theory
6 Info Theory6 Info Theory
6 Info Theory
 
虫食算を作るアルゴリズム 公表Ver
虫食算を作るアルゴリズム 公表Ver虫食算を作るアルゴリズム 公表Ver
虫食算を作るアルゴリズム 公表Ver
 

More from sleepy_yoshi

SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and RecommendationSEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
sleepy_yoshi
 

More from sleepy_yoshi (20)

KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on TwitterKDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
 
KDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking MeasuresKDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking Measures
 
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじPRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじ
 
PRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじPRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじ
 
PRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじPRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじ
 
PRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじPRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじ
 
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelsICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic models
 
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and RecommendationSEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-
 
PRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじPRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじ
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
PRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじPRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじ
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
 
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじPRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじ
 
PRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじPRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじ
 
SIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to RankSIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to Rank
 
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
 
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
 
PRML復々習レーン#3 前回までのあらすじ
PRML復々習レーン#3 前回までのあらすじPRML復々習レーン#3 前回までのあらすじ
PRML復々習レーン#3 前回までのあらすじ
 
SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)SVM実践ガイド (A Practical Guide to Support Vector Classification)
SVM実践ガイド (A Practical Guide to Support Vector Classification)
 

Recently uploaded

Recently uploaded (10)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

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

  • 1. TokyoNLP #5 パーセプトロンで 楽しい仲間がぽぽぽぽ~ん 2011-04-23 Yoshihiko Suhara @sleepy_yoshi
  • 2. 自己紹介 • ゆとり (@sleepy_yoshi) • 情報検索とか機械学習とか • ブログ: 睡眠不足?! – http://d.hatena.ne.jp/sleepy_yoshi/ • 平気で間違ったことを言うのでご注意を
  • 3. おねがいとおことわり • 発表者の頭がいつも以上にぽぽぽぽ~んしてま す • 変なテンションについてゆけない方は静かにお 休みください • なお,救急車や警察は呼ばないでください • しつこいネタにも大きな声でお笑いください
  • 6. 本日の目的 • パーセプトロンという最もシンプルな手法を軸 に,自然言語処理に利用される機械学習手 法を楽しく紹介 • キーワード – オンライン学習 – マージン最大化学習 – カーネル法
  • 8. パーセプ トロン オンライン マージン カーネル 学習 最大化 法
  • 9. 今日話さないこと • カーネル法 • 構造学習 • 本日紹介する手法を抑えておけば基本事項 は簡単に理解可能
  • 11. なんでパーセプトロン? • NLPでは大規模,高次元データに対するオン ライン学習手法がよく使われている • それらを紹介する手がかりとしてパーセプトロ ンを選んでみました – 本発表ではパーセプトロン = 単層パーセプトロン • 尐し歴史的背景も追いかけられるし
  • 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 ������������
  • 21. パーセプトロン規準 • Perceptron criterion • 「誤った場合の」損失関数 ������ ������ = − ������������ ������������ ������������ ������������ ,������������ ∈������
  • 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 ← ������������ − ������ ������������ ������������ − ������������ ������������
  • 25. Widrow-Hoffのパーセプトロン規準 ������������ 0 ������������ ������������ ������������
  • 27. パーセプトロン規準 ������������ 0 ������������ ������������ ������������
  • 29. ヒンジ損失 ������������ 1 ������������ ������������ ������������
  • 30. ヒンジ損失とは 0 ������������ ������������ ������������ ≥ 1 • ℓ(������; ������������ , ������������ ) = 1 − ������������ ������������ ������������ otherwise – マージンが1より大きいとき損失0 – そうでないときは誤りに対して線形に損失を付与
  • 33. Support Vector Machines (SVM) • 定式化 全データに対してヒンジ損失が ゼロになるように重みを学習 – minimize ������ 2 – subject to ������������ ������������ ������������ ≥ 1 ∀������ ヒンジ損失の発生を許容 • ソフトマージンの場合, – minimize ������ 2 + ������ ������ ������������ – subject to ������������ ������������ ������������ ≥ 1 − ������������ ∀������
  • 34. マージン最大化学習 • 分離超平面のうち,マージンが最大になる超 平面を選択 ������������ ������ = 0 ○ ○ ○ ○ × ○ × × × ������ × ������ ×
  • 36. 準備 バイアス項を明示的に考えて������ = sign(������������ ������ + ������)とする 超平面上に存在する������������ ,������������ を考える ������������ ������������ + ������ = ������������ ������������ + ������ = 0 ������������ (������������ −������������ ) = 0 よって重みベクトルは決定面と直交 ������������ ������ + ������ = 0 ������������ ������������ ������ ������
  • 37. データ点と超平面の距離 ������ • ������ = ������������ + ������ 両辺にwをかけてbを足すと ������ ������ ������ ������������ ������ • ������ ������ + ������ = ������ ������������ + ������ + ������ ������ • ������������ ������ + ������ = ������ ������ ������������ ������+������ • ������ = ������ ������������ ������ + ������ = 0 ������ ������ ������ ������ ������ ������������
  • 38. 内積の定義から解釈 • ������������ ������ = ������������������������ ������ ������ ������������ ������ • = ������������������������ ������ ������ – ベクトル������の超平面への垂直方向の長さ – バイアス項bとの大小で+1か-1を判別 b ������ ������
  • 39. SVMのマージン最大化 • ヒンジ損失の等式を満たしている事例がある とすると,最低限確保すべきマージンは ������������ ������ + ������=1なので, ������������ ������+������ 1 • ������ = → (これを最大化!) ������ ������ – 制約 ������������ ������������ ������������ ≥ 1 のため,むやみに小さくはできない • ヒンジ損失 + L2ノルム最小化
  • 40. マージン最大化学習が嬉しい理由 • 未知データに対して高い汎化性能を示すため – 経験的にも理論的にも • VC理論に基づく理論的背景 (超適当) – 学習手法の複雑さ (VC次元) で汎化性能を評価 • 複雑な学習手法 => 同じ性能を出すためにより多くの訓練データが 必要 – 線形識別モデルの複雑さは,特徴空間に比例 => 次元の呪いを受ける  – ただし線形識別モデルでマージン最大化学習を行う場合は, マージンの大きさとデータ点を含む超球の半径で汎化性能 を評価可能 ⇒次元の呪いを受けない!! 
  • 41. Vladimir Vapnik先生 • 統計論的学習理論,VC理論の教祖 – VC = Vapnik-Cherbonenkis • AT&T Labs => NEC Lab. America ご尊顔 聖典
  • 43.
  • 47. 図解マージンパーセプトロン [Krauth+ 87] ������������ ������ = 0 ○ ○ ○ × × × ������ × ������ ×
  • 49. これを ������������ 0 ������������ ������������ ������������
  • 50. こうする ������������ ������ ������������ ������������ ������������
  • 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 ������������
  • 55. (私の) 経験的に • マージンの値は検証データで調整 • マージンサイズをある程度大きくすると性能 が向上する傾向 – ただし,データ依存なので注意
  • 57. Uneven Margin Perceptron [Li+ 02] ������������ ������ = 0 ○ ○ ○ ○ × × ������+ × × ������− ×
  • 60. Voted Perceptron [Freund+ 99] • 投票型パーセプトロン (と呼ばれることもある) • マージン最大化学習を行うパーセプトロンア ルゴリズム
  • 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 ������ マージン最大化学習を実現 性能が高い (らしい)
  • 65. 計算量が多い  • 重みベクトルと重要度を全部覚える必要あり – 誤り回数に比例して容量コストが高くなる • そこでvoted perceptronを近似的に実現
  • 67. Averaged Perceptron [Carvalho+ 06] • 基本的な考え方はVoted Perceptron • 重みを全て保持せずに重要度で平均 – 重みの総和と重要度の総和を保持しておけば, 保持する重みベクトルの容量は2倍程度
  • 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 ������ ������ ������������
  • 75. 経験上 • オンライン学習の重みベクトルの平均を取っ て悪さをすることはない • たぶん,一般的にもそう思われているはず
  • 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では割とこういうタスクが多いのがオンライン 学習が流行っている理由?
  • 84. 実装は簡単,理論は難解 • オンライン学習の理論的裏付けは難解 – 実装は簡単 • バッチ学習は反対 – 一般的に理論は簡単,実装は難解
  • 85. 余談: 渡辺慧氏のアイディア • 渡辺慧「認識とパタン」 岩波新書 (1978年) • マージン最大化学習のアイディアを記述 – Vapnik先生とどちらが早かったんだろうか?
  • 87. 本日のまとめ • パーセプトロン – パーセプトロン規準 • SVM – ヒンジ損失 – マージン最大化 • パーセプトロン亜種 – Margin Perceptron – Voted Perceptron – Averaged Perceptron – 他 • Passive-Aggressive
  • 88. お伝えしたかったこと • パーセプトロンを軸に楽しい仲間をぽぽぽ ぽーんできる! – 損失と最適化の方法 – SVMとの関連 – マージン最大化 – どこを改善するか • 実装は超簡単 – 重み更新部分だけ変えればよい
  • 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.