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が発案 – 人工神経回路網を模した線形識別器
• 参考 – リレー式計算機 富士通FACOM128B (1959年)
• 国産初のリレー式計算機 • 現存する世界最古の計算機
FACOM128B Perceptron
パーセプトロン 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 ← 𝒘𝑡 − 𝜂𝜕
𝜕𝒘𝐸𝑛
• 𝐸𝑛を重み𝒘で微分すると,
𝜕
𝜕𝒘𝐸𝑛 𝒘 = −𝑦𝑛𝒙𝑛
• パーセプトロン規準に対して確率的勾配降下法に基づいて学習していると解釈できる
𝜂の設定方法
• 学習結果は,𝜂の値にけっこう敏感
–試行毎に小さくした方がベター
• よく使われる?方法 (*)
– Basic: 𝜂 =1000
𝑡+1000
– Pegasos: 𝜂 =1
𝑡𝜆 (𝜆は正則化に使われるパラメータ)
– Constant: 𝜂 =定数
(*) sofia-ml http://code.google.com/p/sofia-ml/
cf. Widrow-Hoffの学習規則
• 損失関数が二乗誤差
𝐸 𝒘 =1
2 𝒘𝑇𝒙𝑛 − 𝑦𝑛
2
𝒙𝑛,𝑦𝑛 ∈𝐷
• 重みベクトルの勾配は
𝜕
𝜕𝒘𝐸𝑛 𝒘 = 𝒘𝑇𝒙𝑛 − 𝑦𝑛 𝒙𝑛
• したがって,更新式は
𝒘𝑡+1 ← 𝒘𝑡 − 𝜂 𝒘𝑇𝒙𝑛 − 𝑦𝑛 𝒙𝑛
※ AdaLineとも呼ばれる
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
○
○
○
× ×
× ×
×
𝛾
𝛾
○ ○
×
• 分離超平面のうち,マージンが最大になる超平面を選択
どのようにマージン最大化?
準備
𝒘
𝒙
𝒘𝑇𝒙 + 𝑏 = 0
𝒘𝑇𝒙𝐴 + 𝑏 = 𝒘𝑇𝑥𝐵 + 𝑏 = 0
𝒘𝑇(𝑥𝐴−𝑥𝐵) = 0 よって重みベクトルは決定面と直交
𝒙𝑨
𝒙𝑩
超平面上に存在する𝒙𝐴,𝒙𝐵 を考える
バイアス項を明示的に考えて𝑦 = sign(𝒘𝑇𝒙 + 𝑏)とする
データ点と超平面の距離
• 𝒙 = 𝒙𝐻 + 𝑟𝒘
𝒘 両辺に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)
こちらの宗教の教祖
閑話休題
パーセプトロンにも マージンを使いたい
マージンパーセプトロン
𝒘𝑇𝒙 = 0
○
○
○
× ×
× ×
×
𝛾
𝛾
図解マージンパーセプトロン [Krauth+ 87]
というわけで
これを
𝑦𝑛𝒘𝑇𝒙𝑛
𝐸𝑛
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 𝒘𝑖
これだけ。
(私の) 経験的に
• マージンの値は検証データで調整
• マージンサイズをある程度大きくすると性能が向上する傾向
–ただし,データ依存なので注意
マージンサイズは 非対称にしてもよい
𝒘𝑇𝒙 = 0
○
○
○
×
× ×
×
× 𝛾+
𝛾−
Uneven Margin Perceptron [Li+ 02]
○
ただ,これでは マージン最大化を していない
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 7: 𝑐𝑖 ← 0 8: ELSE 9: 𝑐𝑖 ← 𝑐𝑖 + 1 10: ENDIF 11: ENDFOR
12: RETURN 𝒘0, 𝑐0 , 𝒘1, 𝑐1 , … , 𝒘𝑘 , 𝑐𝑘
間違えたら重み修正 正解したら1UP
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
12: RETURN 1
𝑐𝑖𝑖 𝑐𝑖𝒘𝑖𝑖
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
12: RETURN 1
𝑐𝑖𝑖 𝑐𝑖𝒘𝑖𝑖
その他の重みベクトル保持戦略
• 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
10: RETURN 1
𝑇 𝒘𝑖𝑖
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
10: RETURN 1
𝑇 𝒘𝑖𝑖
[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: 𝜏𝑡 =ℓ𝑡
𝒙𝑡 2+1
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.
おしまい