オンライン学習

オンライン学習全般
・データを保持しなくて良いという性質が有効なシーンがある.
 →(1)セキュリティ,プライバシーの問題上データを保持することができない場合
  (2)データが多いために保持することが困難な場合
・汎化性能の評価などが比較的容易(リグレット解析)
・教師データの順序により学習結果が異なる
・半正定値行列はメモリ量も計算量も多いため,代わりにた対角行列が使わる場合が多い.
 (対角成分が全て正の実数からなる対角行列は自動的に半正定値行列でもあるから,正の
  実数を要素に持つ対角行列ってことかな)


パーセプトロン
・線形分離器
・学習則は,識別を誤った際の分離平面との距離の総和を目的関数とし,
 この目的関数を最小化する重みベクトルwを求める.
・オンライン学習の場合には,誤判定した時の点と分離平面の距離に学習率を掛けたものを
 足すことで分離平面を動かす.
 →確率的勾配法として導出されるけど,これが最適解に行くことの保証は目的関数の凸性が
  必要.距離の和って凸性があるのかがよく分からない.


サポートベクトルマシン(SVM
・各クラスの内,分離平面と最も近い点をサポートベクトルと定義し,サポートベクトルと分離平面との
 距離をマージンと定義する.
・ハードSVMとソフトSVMがあるが,ハードSVMは完全に線形分離可能な問題を扱うのに対して,ソフトSVM
 線形分離できずに,判定を誤った時にペナルティを考えるもの.実用上はソフトSVMが全てなんだと思う.

多クラス問題は?
SVM,パーセプトロン,ロジスティック回帰で頑張るなら,複数の2クラス分類問題に分割して考える.
 一つの方法は1対他の分類器をクラス数分用意して,それを利用する.今ひとつの方法は,全ての組合せ数分,
 つまり,NクラスならN(N-1)/2個の2分類学習器を作って,それで多数決.
・多クラス分類を扱うモデル,決定木,K-近傍,ベイズなどの学習器を使う.

その他
・L1ノルムはマンハッタン距離(各要素毎の差の絶対値の和)
・L2ノルムはユークリッド距離
・w^T・xはwを法線ベクトルとする平面と,点xの距離と見ることができる
 (線形分離器の重みベクトルwを分離平面の法線ベクトルと見るので良くでてくる)
・バイアス項と分離平面の係数項は意味が異なるので,別の学習率で学習する学習アルゴリズムも存在する.
SVMやロジスティック回帰には正則化項と呼ばれる|W|^2の項を含んでいる.これは過学習を避けるため.
 過学習の判定は困難だが,一般的には学習データに極端にマッチする状態として捉えれば,重みが極端に
 大きな値になる場合が過学習に陥っている状態と考える事ができる.
 それを抑えるために,重みのノルムを目的関数に入れ込むことでこれに対処しようと言うのが正則化の考え方.
正則化のもう一つの効果として,L1ノルムなどのような原点で尖る関数を正則化項として入れると,
 もともと関与の薄い変数は0で局所解に陥ることが多くなり,多くの説明変数の重みが0となるような
 疎な解を得ることができるようになる.疎な解はモデル式の理解をする上でも,モデルをメモリに保持する
 のが容易になる意味でも重要である.
 *重要な点として,原点で最小であるのではなく,L1ノルムのように極端に変化する,尖ることが重要(らしい)
  だからL2ノルムとかだとうまくいかない(らしい.納得できてない)