Manifold regularisasi menggunakan grafik laplacian di SVM

8

Saya mencoba menerapkan Manifold Regularization di Support Vector Machines (SVMs) di Matlab. Saya mengikuti instruksi di kertas oleh Belkin et al. (2006), ada persamaan di dalamnya:

f=argminfHki=1lV(xi,yi,f)+γAfA2+γIfI2

di mana V adalah beberapa fungsi kerugian dan γA adalah bobot norma fungsi dalam RHKS (atau norma ambien), menegakkan kondisi kehalusan pada solusi yang mungkin, dan γI adalah bobot norma fungsi di manifold dimensi rendah (atau norma intrinsik), yang berlaku mulus di sepanjang sampel M. Pengatur ambien membuat masalah dengan baik, dan kehadirannya dapat sangat membantu dari sudut pandang praktis ketika asumsi manifold berlaku pada tingkat yang lebih rendah .

Telah ditunjukkan dalam Belkin et al. (2006) yang f mengakui ekspansi dalam hal n titik S, f(x)=i=1nαik(xi,x) Fungsi keputusan yang membedakan antara kelas +1 dan -1 adalah y(x)=sign(f(x)) .

Masalahnya di sini adalah, saya mencoba untuk melatih SVM menggunakan LIBSVM di MATLAB tapi saya tidak ingin memodifikasi kode asli, jadi saya telah menemukan versi precomputed dari LIBSVM yang alih-alih mengambil data input, dan grup output sebagai parameter. , dapatkan Kernal matrix dikomputasi dan kelompok keluaran dan melatih model SVM. Saya mencoba memberi makan dengan matriks Kernel yang diregulasi (Gram Matrix) dan biarkan ia melakukan sisanya.

Saya mencoba menemukan formula yang mengatur Kernal dan sampai pada ini: Mendefinisikan sebagai matriks identitas dengan dimensi yang sama dengan Kernel Matrix,IK

G=2γAI+2γILKI

Gram=KG

Di mana adalah Matriks Grafik Laplacian, adalah Matriks Kernel dan adalah matriks identitas. Dan dihitung dengan menggunakan perkalian dalam dari dua matriks dan .LKIGramKG

Apakah ada orang yang dapat membantu saya mengetahui bagaimana ini dihitung?

Moh
sumber
1
@Sveltely Nothing
Moh

Jawaban:

6

Meskipun saya tidak mengujinya , membaca artikel, masalah optimisasi, baik untuk SVM dan LapSVM , diberikan sebagai:

β=maxβRli=1lβi12βTQβ
tunduk pada:
i=1lβiyi=00βi1l, with i=1,,l

Untuk SVM :

QSVM=Y(K2γ)YαSVM=Yβ2γ

Sementara untuk LapSVM kami memiliki yang berikut (tanda kurung ditambahkan untuk membuat hubungan lebih jelas):

QLapSVM=Y(JK(2γAI+2γI(l+u)2LK)1JT)YαLapSVM=(2γAI+2γI(l+u)2LK)1JTYβ

Kita dapat mendefinisikan jika:

QSVM*QLapSVM

{γSVM*=1/2KSVM*=JKLapSVM(2γAI+2γI(l+u)2LKLapSVM)1JT

Terakhir:

αLapSVM=KLapSVM(2γAI+2γI(l+u)2LKLapSVM)1JTαSVM*

Saya dapat mengkonfirmasi bahwa itu berfungsi. Lihat contoh ini dengan kernel Gaussian, dan bagaimana kelas virginicamulai merayap ke dalam data yang tidak berlabel ketika dibandingkan dengan , yang merupakan SVM standar.γI=2500γI=0

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Pembakar
sumber