SVMの正則化項がマージン最大化のために必要な理由

 ラージマージンとマージン最大化について2回ほど書いてきた。
 あの後もSVMとマージンパーセプトロンについてうだうだと考えていたのだが、もうちょっとシンプルな説明を思いついた。
 SVMの特徴はヒンジロスを採用している点と、正則化項があるところである。
 ヒンジロスはもう何度も出てきているが、max(0, 1-ywx)みたいな奴で、1-ywx<=0の時にだけ損失を0とするものである。
 正則化は、wの各要素をできるだけ0に近づけようとする力で、要するに、この力に打ち勝つだけの価値を持つ素性だけが生き残れる。マージンパーセプトロンSVMの大きな違いは、この正則化項のあるなしである。
 前回は、ALMAの論文を持ち出してマージンパーセプトロンは近似的な最大マージンでしかない、と書いたが、そもそもSVMは最大マージンなのか。とりあえず、ヒンジロスだけで正則化項が存在しない場合(つまり、ほぼマージンパーセプトロンだ)を考えてみよう。
 ヒンジロスはywxが1以上の値を取った場合に損失が0になるので、この場合、マージンを最大化せずに損失が0になる例を考える事ができそうである。例えば、以下の図を見ていただきたい。

 この図の○と×はデータを表している。この図の緑は現在のパラメーターにおける識別超平面を表すことにしよう。だいたいy = 0.2x - 3 ぐらいかなぁ。で、ywxは1以上の値をとるだろうか?
 答えは「wには自由度があるのでこの図からはわからない」ということになる。言い換えると、ywxがどちらのデータに対しても1以上の値をとるようなwを考えることができる。
 そうすると、この緑の状態でもう損失は0になってしまっているので、学習はもう進まない。マージンパーセプトロンの場合、ここでおしまいである。
 で、次に正則化項をつけてみよう。正則化項をつけてFOBOSで最適化した場合、各ステップでwのそれぞれの要素の値をちょっと減らして、0まで減らしたらそこでおしまい、ということになる。式で書くと、
 w_{i+1} = sign(w_i) max(|w_i - lambda|, 0)
 となる。(ただし、lambdaは適当な正の実数とする。)つまり、損失が0になった状態で学習を進めると、wの各要素の値はモリモリと小さくなっていく。
 wの各要素の値がモリモリと小さくなっていくと、当たり前だがywxの値はどんどんと小さくなる。そうすると、また損失が正の値を取り、パラメーター更新が発生し、分離超平面が動くことになる。そして正例と負例のせめぎあいが発生し、マージンが最大化される。
 という訳で、正則化はマージン最大化のために本質的に必要な要素である、という事ができる。(ないとマージンが最大化されないことがある。) 
 前回、マージン最大化にはマージンとして0より大きな実数を要求することが必要であると書いたが、今回得られたこの情報を合わせて、マージン最大化には

  • マージンとして0より大きな実数を要求すること
  • 正則化項があること

 の2つが必須である、と言えよう。
 おまけ。私の認識に従って分類表を書くと、以下のような感じになる。

  正則化なし 正則化あり
ywx> 0 パーセプトロン 正則化つきパーセプトロン
ywx>= λ マージンパーセプトロン SVM

 私の認識では、この中でラージマージン、マックスマージンを名乗っていいのはSVMだけで、マージンパーセプトロンはラージマージンである。パーセプトロン正則化つきパーセプトロンはマックスマージンとラージマージンのどちらでもない。SVMがマージン最大化であることは論を待たない。マージンパーセプトロンがラージマージンとしたのは、非常によく似たアルゴリズムであるALMAがラージマージン(論文中の表現では、マックスマージンの近似)であるからだ。
 本稿ではラージマージンについては「マージンを最大化まではしないけど、なんか大きくする感じの奴」という意味合いで使いました。