先回、カーネル法でカーネル関数の定義を確認しました。今回は正則化最小二乗法の誤差関数を式変形する過程でカーネル関数が現れるっていうことを確認します。
さて、線形回帰における正則化最小二乗法の誤差関数は
でした。式(1)は、
のように展開できます。途中の式は最小二乗法の解の導出の式(6)~(7)とほとんど同じですので省略します。
ここで誤差関数の勾配はベクトルの微分より、
と計算できますから、とすると
と変形できます(式(5)は右辺にもが入っているので、解が求まったわけではありません)。ここで
とおくと、
となります。これを式(2)に代入すると、
となります。の式をで書き換えたことを双対表現と呼ぶそうです。呼び方はいいんですが、1つ1つ式を追っていけば、式(9)となることはそんなに難しい計算ではありません。
ここで式(9)に多数現れているを考えます。とはそもそも何だったかというと、個の訓練データを行で並べたものでした。列はモデルの次元です。そしての成分は、番目のデータと番目のデータの内積となっています。特徴ベクトルの内積をカーネル関数と定義しましたので、とすれば、
のようにカーネル関数を使って書くことができます。
さて、式(10)を式(9)に代入すれば、
となります。式(11)を最小とするは、を解けば良いので、であることに注意すれば、ベクトルの微分より
となりますから、
と求められます。
さて、正則化最小二乗法で求めたかったのは新たな入力に対する予測値でした。
とモデル化していましたので、式(7)より
となります。
ですから、式(18)の予測値はカーネル関数と係数の線形結合となっていることがわかります。
で、これの何が嬉しいのかというと。行列は訓練データ数の正方行列となりますので、式(16)による解はモデルがいかに高次元になってもの行列演算です。一方、通常の正則化最小二乗法では、モデルの次元が高くなればなるほど計算量が増えていきます。極端な話、100万次元のモデルを考えると100万×100万の行列を扱わないといけないのでもはや計算不可能です。しかしカーネル法を使えば、100万次元のモデルだろうが訓練データ数が現実的な数字なら計算可能になります。この辺の高次元の話の恩恵はあんまり実感が沸かないというか、これが必要となる場面がまだ具体的に想像できませんが、、、。次回カーネル法を使って線形回帰を解いてみたいと思います。→カーネル法による正則化最小二乗法(2)