Nyström yaklaşımını, sorularınızın cevaplarını daha net hale getirecek şekilde elde edelim.
Nyström'deki temel varsayım, çekirdek fonksiyonunun rütbe olduğu yönündedir. m. (Gerçekten yaklaşık rütbe olduğunu varsayıyoruzm, ama basitlik için tam olarak rütbe olduğunu varsayalımmŞimdilik.) Bu, herhangi bir çekirdek matrisinin en fazla rütbeye sahip olacağı anlamına gelirm, ve özellikle
K=⎡⎣⎢⎢k (x1,x1)⋮k (xn,x1)...⋱...k (x1,xn)⋮k (xn,xn)⎤⎦⎥⎥,
rütbe
m. Bu nedenle var
m sıfır olmayan özdeğerler ve özdeğer kompozisyonunu yazabiliriz
K gibi
K= UΛUT
içinde saklanan özvektörlerle
U, şekil
n × mve özdeğerler
Λ, bir
m × m Diyagonal matris.
Hadi seçelim m elemanlar, genellikle rastgele ama muhtemelen diğer şemalara göre - bu basitleştirilmiş versiyonda önemli olan tek şey K11tam rütbeli olmak. Yaptıktan sonra, noktaları yeniden etiketleyin, böylece çekirdek matrisini bloklar halinde elde edelim:
K= [K11K21KT21K22] ,
burada her girişi değerlendiriyoruz
K11 (hangisi
m × m) ve
K21 (
( n - m ) × m), ancak içindeki herhangi bir girişi değerlendirmek istemiyorum
K22.
Şimdi, öz-kompozisyonunu bu blok yapısına göre ayırabiliriz:
K= UΛUT= [U1U2] Λ[U1U2]T= [U1ΛUT1U2ΛUT1U1ΛUT2U2ΛUT2] ,
nerede
U1 dır-dir
m × m ve
U2 dır-dir
( n - m ) × m. Ama şimdi
K11=U1ΛUT1. Böylece bulabiliriz
U1 ve
Λ bilinen matrisi oluşturan özdeğer
K11.
Ayrıca biliyoruz ki K21=U2ΛUT1. Burada, bu denklemdeki her şeyi biliyoruz,U2, yani hangi özdeğerleri ima ettiğimizi çözebiliriz: her iki tarafı da sağa çarparak ( ΛUT1)- 1=U1Λ- 1 almak
U2=K21U1Λ- 1.
Şimdi değerlendirmemiz gereken her şeye sahibiz
K22:
K22=U2ΛUT2= (K21U1Λ- 1) Λ(K21U1Λ- 1)T=K21U1(Λ- 1Λ )Λ- 1UT1KT21=K21U1Λ- 1UT1KT21=K21K- 111KT21= (K21K-1211)(K21K-1211)T.(*)(**)
(*) 'Da, tanım olarak gördüğünüz Nyström gömmesinin bir sürümünü bulduk. Bu bize blok için ima ettiğimiz etkili çekirdek değerlerini söylerK22.
(**) 'de, özellik matrisinin K21K-1211, hangi şekil ( n - m ) × m, bu empoze edilen çekirdek değerlerine karşılık gelir. KullanırsakK1211 için m puan, bir dizi var mboyutlu özellikler
Φ =⎡⎣⎢K1211K21K-1211⎤⎦⎥.
Bunu hızlı bir şekilde doğrulayabiliriz
Φ doğru çekirdek matrisine karşılık gelir:
ΦΦT=⎡⎣⎢K1211K21K-1211⎤⎦⎥⎡⎣⎢K1211K21K-1211⎤⎦⎥T=⎡⎣⎢K1211K1211K21K-1211K1211K1211K-1211KT21K21K-1211K-1211KT21⎤⎦⎥= [K11K21KT21K21K- 111KT21]= K.
Yani, tek yapmamız gereken düzenli öğrenme modelimizi mboyutlu özellikler Φ. Bu , öğrenme sorununun çekirdeklendirilmiş sürümü ile tam olarak aynı olacaktır (yaptığımız varsayımlar altında)K.
Şimdi, tek bir veri noktası için x, özellikleri Φ karşılık vermek
ϕ ( x ) = [k ( x ,x1)...k ( x ,xm)]K-1211.
Bir nokta için
x 2. bölümde vektör
[k ( x ,x1)...k ( x ,xm)] sadece ilgili satır
K21, böylece bunları biriktirmek bize
K21K-1211 - yani
ϕ ( x ) bölüm 2'deki noktaları kabul eder. Aynı zamanda bölüm 1'de de çalışır: işte, vektör
K11, bu yüzden onları istiflemek
K11K−1211=K1211, yine katılıyorum
Φ. Yani ... eğitim sırasında görülmeyen bir test noktası için hala doğru
xnew. Sadece aynı şeyi yapıyorsun:
Φtest=Ktest,1K−1211.
Çünkü çekirdeğin rütbe olduğunu varsaydık
m, matris
[KtrainKtest,trainKtrain,testKtest] aynı zamanda
mve yeniden inşası
Ktest hala tam olarak aynı mantıkla
K22.
Yukarıda, çekirdek matrisinin
Koldu
tam sıralaması
m. Bu genellikle böyle olmaz; örneğin bir Gauss çekirdeği için,
Kher
zaman rütbe
nO olacak öyle, ama ikincisi özdeğerler genellikle oldukça hızlı düşüyorlar
yakın bir sıralama matrisine
mve bizim
K21 veya
Ktest,1gerçek değerlere
yakın olacak ama tam olarak aynı olmayacak. Daha fazla rekonstrüksiyon olacaklar.
K11 buna ulaşır
K genel olarak, bu yüzden doğru seçimi
m puan pratikte önemlidir.
Ayrıca, K11herhangi bir sıfır özdeğeri varsa, tersleri psödoinverslerle değiştirebilirsiniz ve her şey hala çalışır; sadece değiştirK21 ile yeniden yapılanma K21K†11K11.
İsterseniz özdeğer kompozisyonu yerine SVD kullanabilirsiniz; dan beriKpsd, onlar aynı şey, ancak SVD çekirdek matrisinde biraz daha sağlamdan hafif sayısal hataya ve benzeri olabilir, bu yüzden scikit-learn bunu yapar. scikit-learn'un gerçek uygulaması bunu kullanıyor olsa da,max(λi,10−12) yalancı ters yerine.