カーネルになる可能性のある機能は何ですか?


21

機械学習とパターン認識のコンテキストには、Kernel Trickと呼ばれる概念があります。関数がカーネル関数であるかどうかを判断するように求められている問題に直面して、正確に何をすべきですか?最初に、多項式、RBF、ガウスなどの3つまたは4つのカーネル関数の形式であるかどうかを確認する必要がありますか?それから私は何をすることになっていますか?正定であることを示す必要がありますか?誰かがそのような問題の段階的な解決策を示すために例を解決できますか?例えば同じように、あるカーネル関数f(x)=extx(我々はそれがガウス核であるか分からないと仮定)?

回答:


27

一般的に、関数は、2つの重要な特性を満たす場合、(カーネルトリックの意味で有効なカーネル関数です。k(x,y)

  • 対称性: k(x,y)=k(y,x)

  • 正の半正定性。

参照:http ://www.cs.berkeley.edu/~jordan/courses/281B-spring04/lectures/lec3.pdfの4ページ

通常、対称性の検査は検査によって簡単です。肯定的な半正定性を分析的に検証することは、時には非常に困難です。この事実を確認するための2つの戦略を考えることができます。

  • (1)「内積」表現の検査

考えます。ようなを見つけることができますか?ちょっとした計算でであるため、で完了です。 ϕ a k x y = ϕ x T ϕ y e x + y = e x e y ϕ a = e ak(x,y)=ex+yϕ(a)k(x,y)=ϕ(x)Tϕ(y)ex+y=exeyϕ(a)=ea

運がよければ、はこの分析に適しています。そうでない場合は、オプション(2)を使用できます。k()

  • (2)ランダムシミュレーションによる正定性の確認。

上の機能を考慮して -dimベクトル各ベクトル、は非負で、合計が1でなければなりません。これは有効なカーネルですか?k xy= D d = 1 min x dy dxyDkバツy=d=1Dバツdydバツy

これはシミュレーションで確認できます。一連の描画ランダムベクトルをおよびグラムマトリックス構築。次に、が正(半)定であることを確認します。{ x i } N i = 1 K K i j = k x ix jKN{バツ}=1NKKj=kバツバツjK

これを数値的に行う最良の方法は、(scipyやmatlabのような既存の優れた数値ライブラリを使用して)行列の固有値を見つけ、最小の固有値が0以上であることを確認することです。はいの場合、行列はpsd です。それ以外の場合、有効なカーネルがありませK

サンプルのMATLAB / Octaveコード:

D=5;
N=100;

X = zeros(N,D);
for n = 1:N
   xcur = rand(1,D);
   X(n,:) = xcur/sum(xcur);
end

K = zeros(N,N);
for n = 1:N;  for m = 1:N
    K(n,m) = sum( min( X(n,:), X(m,:) ) );
end;  end;

disp( min( eig(K) ) );

これは非常に簡単なテストですが、注意してください。テストが失敗した場合、カーネルが無効であることを確認できますが、合格した場合でもカーネルは有効ではない可能性があります。

と関係なく、生成するランダム行列の数に関係なく、このカーネルはテストに合格するため、おそらく半正定値であることがわかります(実際、これはよく知られているヒストグラム交差カーネルであり、証明されています有効)。DND

ただし、したすべての試行で失敗します(少なくとも20) 。したがって、それは間違いなく無効であり、検証するのは非常に簡単です。kバツy=d=1Dmaバツバツdyd

この2番目のオプションは、コンパイルされた形式的な証明よりも非常に高速でデバッグがはるかに簡単なので、本当に気に入っています。Jitendra Malikのスライド19によると、交差カーネルは1991年に導入されましたが、2005年まで正しいことが証明されていませんでした。形式的な証明は非常に難しい場合があります。


私が理解しているように、2番目の条件は正の正定性のみです。そして、私が言ったことから、SVMアルゴリズムの収束を証明したい場合にのみ必要です。実際には、PSDではないカーネルが多数ありますが、実際にはうまく機能します。
ピーター

@ピーター:はい、あなたは正しいです。それは、明確なだけでなく、*半-*明確にすることができます。それに応じて編集。
マイクヒューズ

SVMドメインでは、PSDカーネルを使用すると、問題が凸になることが保証されるため、最適化により、一意でグローバルに最適なソリューションが実現します。PSDプロパティがなければ、見つかったソリューションが可能な限り最良の状態に近いという保証はありません。しかし、PSDではないが実際には成功しているカーネル(Sigmoidなど)がいくつかあります。この問題に関する適切なリファレンスは、perso.lcpc.fr / tarel.jean-philippe / publis / jpt-icme05.pdfです。
マイクヒューズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.