以下の本を読みます。上巻を読むこともあります。何か問題点がありましたらご指摘いただけますと幸いです。

- 作者: C.M.ビショップ,元田浩,栗田多喜夫,樋口知之,松本裕治,村田昇
- 出版社/メーカー: 丸善出版
- 発売日: 2012/02/29
- メディア: 単行本
- 購入: 6人 クリック: 14回
- この商品を含むブログを見る

第7章は「疎な解を持つカーネルマシン」ですね。

この章のタイトルだけ雰囲気違くない? なんかラノベのタイトルっぽくない?

他人のせいにするなよ!


7.1 節で最初に出てくる2値分類問題は第6章の最終回で参考にした「学習システムの理論と実現」の「第3章 カーネルマシン」で出てくる話とむしろ同じですね。まずカーネル関数のことは忘れて素朴に考えます。いま、モデル を、訓練データ
で学習したいです。ただし
です。なお、訓練データは特徴空間で線形分離可能とします。このとき一般には、特徴空間において
のサンプルたちと
のサンプルたちを分離する超平面は無数に存在します。サンプルたちを分離する超平面が1つあったら、それをほんの少しずらしてもやはりサンプルたちを分離しているでしょうから。訓練データを分離するだけなら無数にある超平面のどれを選んでも違いはありませんが、未知のデータの識別への適用を考えると、あまりサンプルすれすれで分離するような超平面は選びたくないものです。なので、方針として、分離超平面の中でも分離超平面に最も近いサンプルまでの距離が最大であるものを求める解とします。このように学習することを「マージン最大化」といい、そうやって学習したモデルが SVM ですね。なぜマージン最大化するのかは改めて後の節で説明があるようですが、36~37ページの説明によると、クラスごとに Parzen 推定法(分散
のガウスカーネル)で密度推定し、その密度をもとに誤分類率が最小となる超平面を求めると、
の極限でマージン最大超平面と一致するそうです。なぜそうなるかは
を
に近づけるにつれ分離超平面はサポートベクトル以外のデータ点からの影響を受けなくなるから…この後40ページで初めて出てくるサポートベクトルという単語を37ページで使ってきましたね…。

てかその説明いる? マージン最大な分離超平面の方がよさそうだからでよくない?

…僕たちは分類器を学習するとき、何も訓練データにおける損失関数を最小化したいわけではないはずです。未知の点を分類したいはずなんです。であれば、即座に訓練データを分離する超平面を探すのではなく、クラス毎の密度を推定するのが誠実な手順といえると思います。36~37ページの主張は、ある密度推定をしたもとでの誤分類率最小分離超平面の極限がマージン最大分離超平面に一致するというものですから、マージン最大化に正当な意味を与えているでしょう? なぜマージン最大化をしたのかと訊かれたとき、その方がよさそうだから、では回答として曖昧でしょう?

はい。

線形分離可能な仮定のもとでは、点 から分離超平面
までの距離は
なので、解きたいマージン最大化問題は
ですね。どう解きますか、ハヤト?

えっ? 1番近いデータ点までの距離が最大になるように超平面のパラメータ を探すんだよな…
ってのが邪魔だよな。どれがマージン最大な分離超平面に一番近い点かって最初からわかんないし。そこがなければ普通に
についての勾配が求まるんじゃない?

ええ、 は邪魔ですね。そこで、
には定数倍の自由度があることを利用します。
としてしまうんです。そういう
を選ぶと決めるんです。そうすれば先の最大化問題は
となって、邪魔だった
が消えます。

まるっと消えた!? あれでも、その最大化問題って常に をゼロベクトルに近づけろ、みたいなことにならない? てか最大値発散しない?

もちろん、 に入れた制約を無視してはいけません。いま
という値はこれが最小となる
で
とすると決めたので、すべての
で
でなければなりません。この不等式制約の下で
を解きます(二次計画問題)。というか計算上の便利のために
に読み替えます。 このような不等式制約下での最大/最小化問題はラグランジュ乗数法においてラグランジュ乗数に
という制約を入れると解くことができます。かなり見づらいですが2次元の特徴空間で適当な4つのデータ点で計算してみたのが以下のノートです。というか2枚目の1行目までは一般的な話です。1枚目の矢印の直前までは
を最適化しようとしていたんですが、矢印の直後では
を消してしまって
の最適化問題に変換してしまっています。これがマージン最大化問題の双対表現です。



へー、不等式の制約があっても解けるんだ。…ってあれ? 一番下のとこ、最終的にまた不等式の制約がある最大化問題になってない? プロデューサーはこっからどうやって解いたの?

はい、再び二次計画問題になるんです。この解き方は 7.1.1 節で議論するようです。なおプロデューサーさんは上の最大化を場合分けで解こうとしてよくわからなくなり R の optim 関数の力を借りました。

そっか…。


…レプリゼンタ定理って不等式制約あってもいいの?

…すみません、よくわからなかったんです。ただ、マージン最大化問題は、不等式制約付き最大化問題の形の他に、40ページの (7.19) 式の最小化問題の形にもかけるということです。こちらであれば不等式制約がありません。ただ、この という関数は
をとるということで、これは実数値関数とはいえません。レプリゼンタ定理では、ここは実数値関数でなければならないので…ただ、結果的には大丈夫なんだろうとは思います。39ページに戻ると、このマージン最大化問題におけるカーネル関数もまた正定値である必要があるという記述がありますね。正定値だと最大化すべきラグランジュ関数が上に有界になると。PRML においてカーネル関数は個別事例で出てくるので、毎度カーネル関数が満たすべき性質を確認しているのかもしれません。

40ページの、「すべてのデータ点について あるいは
が成り立つ」って?

上のノートだと、右上の白い点には が成り立ち他の3点には
が成り立ちます。
が成り立つというのはすなわちその
番目の点が分離超平面に最も近いということです。最も近いなら
とすると決めたので。上のノートの例だと分離超平面に最も近い点が3点存在します。そしてこの3点の座標のみが分離超平面をどこに引くべきかに影響を及ぼします。右上の白い点は(結果的にですが)分離超平面に影響を及ぼしていません。未知の点に対する予測時に、未知の点とこの点とのカーネルは使わないんです。
というのはそういうことです。逆に予測に影響を及ぼす
である点をサポートベクトルといいます。上のノートの例だと右上の白い点を除いた3点がサポートベクトルです。この例だと全データ4点中3点がサポートベクトルなのでわかりづらいですが、現実の場面では普通全データ数が膨大で、サポートベクトルであるデータ数はそれに比べると僅かになります。これが SVM が「疎な解」たる所以で、予測の計算コスト上とてもうれしい性質です。

あー結果的に右上の白い点は存在しないのと同じなんだな。最初からはわかんないけど。40ページの続きにはバイアスパラメータ の求め方があるな。でも
って双対表現に書き換えるために
を消去したとき
の式で表してたんじゃないの…って違うな。それは
の方だけで
は勝手に消えたのか。プロデューサーってどうやって
求めたの?