Passive-Aggressive Algorithmメモ
Passive-Aggressive(PA) Algorithm
- Passive-Aggressive
- 心理学とかだと「やれといわれる(受動的)けど実際はやらない(攻撃的)」みたいな意味らしい
- でも今回のは、制約条件を満たすようにできるだけ変化させずに更新する、的なニュアンスみたい
- 以下、オンライン学習する話
- 問題設定(2値分類の場合)
- x : 入力ベクトル
- y : 正解ラベル(1か-1)
- w : 重みベクトル
- max.
- s.t.
- 要は、データが来たら、損失がないような一番変化の少ない重みwに更新する、を繰り返す
- lossには、ヒンジ損失を用いる
- : y(w*x)>=1
- : otherwise
回帰問題への適用
- PAは回帰問題へも適用することができる
- (1,2),(2,4),(3,6)と来たら(4,?)は何でしょう?みたいな問題
- 問題設定(回帰の場合)
- : 実数値
- lossに、ε-insensitiveヒンジ損失を用いる
- : |w*x_t-y_t|<=ε
- : otherwise
- 1回ごとの更新式は、
- は上記と同じ
- : 正解の実数値
- : 現在の重みwで計算したときの実数値
多クラス問題への適用
- 多クラス問題へも適用することができる
- kクラスあったら、それぞれに対しスコアを計算し、ランキングでクラスを推定する
- 属するクラスは上位に来て、属しないクラスは下位にくる
- 1個の重みベクトルで計算するsingle-prototypeとk個の重みベクトルで計算するmulti-prototypeがある
- 以下、multi-prototypeクラス分類の場合
- 損失関数
- :
- : otherwise
- 更新式
- は上記と同じ
- 要は、分類で一番怪しい2つのラベルを見つけて、良い感じになるように重みをそれぞれ更新するだけ
その他
- 論文では以下の問題についても書かれている
- Uniclass Prediction(単一クラス予測)
- Multi-class single-prototype classification
- Cost-sensitive Multi-class classification
- 構造学習
参考文献
- http://jmlr.csail.mit.edu/papers/volume7/crammer06a/crammer06a.pdf
- http://nlp.ist.i.kyoto-u.ac.jp/member/nakazawa/pubdb/other/MIRA.pdf
- http://www.r.dl.itc.u-tokyo.ac.jp/~nakagawa/SML1/online-L1.pdf
- http://d.hatena.ne.jp/echizen_tm/20110120/1295547335
- http://d.hatena.ne.jp/kisa12012/20110625/1309003409
- http://d.hatena.ne.jp/kisa12012/20110629/1309339383