Genel olarak, k(x,y) işlevi, iki temel özelliği karşıladığında geçerli bir çekirdek işlevidir (çekirdek hilesi anlamında):
simetri: k(x,y)=k(y,x)
pozitif yarı tanımlayıcılık.
Referans: Sayfa 4 / http://www.cs.berkeley.edu/~jordan/courses/281B-spring04/lectures/lec3.pdf
Simetriyi kontrol etmek genellikle muayene ile basittir. Analitik olarak pozitif yarı-kesinliğin doğrulanması bazen oldukça tüylü olabilir. Bu gerçeği kontrol etmek için iki strateji düşünebilirim:
- (1) "İç ürün" temsilini inceleme
düşünün . Biraz bulabilir miyiz cp ( a ) öyle ki k ( x , y ) = φ ( x ) T φ ( y ) ? O Biraz matematik gösterileri e x + y = e x e y , böylece izin φ ( a ) = e bir ve bitti.k(x,y)=ex+yϕ(a)k(x,y)=ϕ(x)Tϕ(y)ex+y=exeyϕ(a)=ea
Eğer şanslıysanız, değeriniz bu analize uygun olacaktır. Değilse, seçenek (2) 'ye başvurabilirsiniz:k()
- (2) Rastgele simülasyon ile pozitif kesinliğin kontrol edilmesi.
dim vektörleri k ( → x , → y ) = ∑ D d = 1 dak ( x d , y d ) üzerindeki fonksiyonu ele alalım , burada her x → x , → y vektörü negatif olmamalı ve bir toplam olmalıdır. Bu geçerli bir çekirdek mi?Dk(x⃗ ,y⃗ )=∑Dd=1min(xd,yd)x⃗ ,y⃗
Bunu simülasyon ile kontrol edebiliriz. Bir dizi çizim rasgele vektörler { → x i } K i = 1 ve Gram matrisi oluşturmak K burada K i j = k ( → x i , → x j ) . Sonra K'nın pozitif (yarı) kesin olup olmadığını kontrol edin .N{x⃗ i}Ni=1KKij=k(x⃗ i,x⃗ j)K
Bunu sayısal olarak yapmanın en iyi yolu, matrisin özdeğerlerini bulmak (scipy veya matlab gibi mevcut iyi sayısal kütüphaneler kullanarak) ve en küçük öz değerin 0'dan büyük veya ona eşit olduğunu doğrulamaktır . Evet, matris ise Aksi psd, görebilmek do not geçerli bir çekirdek var.K
Örnek MATLAB / Oktav kodu:
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) ) );
Bu çok basit bir test, ama dikkatli olun . Sınama başarısız olursa, çekirdeğin geçerli olmadığından emin olabilirsiniz , ancak geçerse çekirdek hala geçerli olmayabilir .
Kaç tane rastgele matris ürettiğim önemli değil ve ve D ne olursa olsun , bu çekirdek testi geçiyor, bu yüzden muhtemelen yarı yarı-pozitiftir (aslında, bu iyi bilinen histogram kesişim çekirdeğidir ve kanıtlanmıştır. geçerli).ND
Ancak, üzerindeki aynı test, verdiğim her denemede başarısız olur (en az 20). Bu yüzden kesinlikle geçersiz ve doğrulanması oldukça kolaydır.k(x⃗ ,y⃗ )=∑Dd=1max(xd,yd)
Bu ikinci seçeneği gerçekten seviyorum çünkü derlenmiş resmi kanıtlardan çok hızlı ve hata ayıklamak çok daha kolay. Jitendra Malik'in 19. slaydına göre , kavşak çekirdeği 1991'de tanıtıldı, ancak 2005 yılına kadar doğru olmadığı kanıtlandı. Resmi kanıtlar çok zor olabilir!