Kernel adalah cara menghitung titik produk dari dua vektor dan y dalam beberapa ruang fitur (mungkin sangat tinggi), yang mengapa fungsi kernel kadang-kadang disebut "produk titik umum".xy
Misalkan kita memiliki pemetaan yang membawa vektor kami di R n beberapa fitur ruang R m . Maka produk titik dari x dan y dalam ruang ini adalahφ( x ) T φ( y ). Kernel adalah fungsikyang sesuai dengan produk titik ini, yaituk( x , y )=φ( x ) T φ( y ).φ:Rn→RmRnRmxyφ(x)Tφ(y)kk(x,y)=φ(x)Tφ(y)
Mengapa ini berguna? Kernel memberikan cara untuk menghitung titik produk di beberapa ruang fitur tanpa mengetahui apa ruang ini dan apa yang .φ
Sebagai contoh, pertimbangkan kernel polinomial sederhana dengan x , y ∈ R 2 . Ini sepertinya tidak sesuai dengan fungsi pemetaan φ , itu hanya fungsi yang mengembalikan bilangan real. Dengan asumsi bahwa x = ( x 1 , x 2 ) dan y = ( y 1 , y 2 ) , mari perluas ekspresi ini:k(x,y)=(1+xTy)2x,y∈R2φx=(x1,x2)y=(y1,y2)
k(x,y)=(1+xTy)2=(1+x1y1+x2y2)2==1+x21y21+x22y22+2x1y1+2x2y2+2x1x2y1y2
Perhatikan bahwa ini tidak lain adalah produk titik antara dua vektor dan(1,y 2 1 ,y 2 2 , √(1,x21,x22,2–√x1,2–√x2,2–√x1x2), danφ(x)=φ(x1,x2)=(1,x 2 1 ,x 2 2 , √(1,y21,y22,2–√y1,2–√y2,2–√y1y2). Jadi kernelk(x,y)=(1+ x Ty)2=φ(x)Tφ(y)menghitung produk titik dalam ruang 6 dimensi tanpa secara eksplisit mengunjungi ruang ini.φ(x)=φ(x1,x2)=(1,x21,x22,2–√x1,2–√x2,2–√x1x2)k(x,y)=(1+xTy)2=φ(x)Tφ(y)
k(x,y)=exp(−γ∥x−y∥2)φ
Akhirnya, saya akan merekomendasikan kursus online "Belajar dari Data" oleh Profesor Yaser Abu-Mostafa sebagai pengantar yang baik untuk metode berbasis kernel. Secara khusus, kuliah "Mendukung Mesin Vektor" , "Metode Kernel" dan "Fungsi Dasar Radial" adalah tentang kernel.
Cara berpikir yang sangat sederhana dan intuitif tentang kernel (setidaknya untuk SVM) adalah fungsi kesamaan. Diberikan dua objek, kernel menghasilkan beberapa skor kesamaan. Objek dapat berupa apa saja mulai dari dua bilangan bulat, dua vektor bernilai nyata, pohon apa pun asalkan fungsi kernel tahu cara membandingkannya.
Contoh yang paling sederhana adalah kernel linear, juga disebut dot-product. Diberikan dua vektor, kesamaannya adalah panjang proyeksi satu vektor pada vektor lainnya.
Contoh kernel lain yang menarik adalah kernel Gaussian. Diberikan dua vektor, kesamaan akan berkurang dengan jari-jari . Jarak antara dua objek adalah "reweighted" oleh parameter radius ini.σ
Keberhasilan belajar dengan kernel (sekali lagi, setidaknya untuk SVM), sangat bergantung pada pilihan kernel. Anda dapat melihat kernel sebagai representasi ringkas dari pengetahuan tentang masalah klasifikasi Anda. Sangat sering masalah khusus.
Saya tidak akan menyebut kernel sebagai fungsi keputusan karena kernel digunakan di dalam fungsi keputusan. Diberikan titik data untuk diklasifikasi, fungsi keputusan memanfaatkan kernel dengan membandingkan titik data itu dengan sejumlah vektor dukungan yang dibobot oleh parameter yang dipelajari . Vektor pendukung berada dalam domain titik data itu dan sepanjang parameter yang dipelajari ditemukan oleh algoritma pembelajaran.α α
sumber
Contoh visual untuk membantu intuisi
Pertimbangkan dataset berikut di mana titik kuning dan biru jelas tidak dapat dipisahkan secara linear dalam dua dimensi.
Jika kita dapat menemukan ruang dimensi yang lebih tinggi di mana titik-titik ini terpisah secara linear , maka kita dapat melakukan hal berikut:
Ada banyak ruang dimensi yang lebih tinggi di mana titik-titik ini terpisah secara linear. Ini salah satu contohnya
Di sinilah trik Kernel berperan. Mengutip jawaban bagus di atas
Jika kita dapat menemukan fungsi kernel yang setara dengan peta fitur di atas, maka kita dapat menyambungkan fungsi kernel dalam SVM linier dan melakukan perhitungan dengan sangat efisien.
Kernel polinomial
Ternyata fitur peta di atas sesuai dengan kernel polinomial terkenal : . Biarkan dan kita dapatkanK(x,x′)=(xTx′)d d=2 x=(x1,x2)T
Memvisualisasikan peta fitur dan garis batas yang dihasilkan
Sumber
sumber
Sangat sederhana (tapi akurat) kernel adalah faktor penimbangan antara dua urutan data. Faktor penimbangan ini dapat menetapkan bobot lebih untuk satu " titik data " pada satu " titik waktu " daripada " titik data " lainnya, atau menetapkan bobot yang sama atau memberikan bobot lebih ke " titik data " lainnya dan seterusnya.
Dengan cara ini, korelasi ( produk titik ) dapat menetapkan lebih banyak "kepentingan" di beberapa titik daripada yang lain dan dengan demikian mengatasi non-linearitas (misalnya ruang non-datar ), informasi tambahan, perataan data , dan sebagainya.
Dengan cara lain kernel adalah cara untuk mengubah dimensi relatif (atau unit dimensi ) dari dua sekuens data untuk mengatasi hal-hal yang disebutkan di atas.
Dengan cara ketiga (terkait dengan dua sebelumnya), kernal adalah cara untuk memetakan atau memproyeksikan satu urutan data ke yang lain secara 1-ke-1 dengan mempertimbangkan informasi atau kriteria yang diberikan (misalnya ruang melengkung, data yang hilang, data pemesanan ulang dan sebagainya). Jadi misalnya kernel yang diberikan dapat meregangkan atau mengecilkan atau memotong atau menekuk satu urutan data agar sesuai atau memetakan 1-ke-1 ke yang lain.
Kernel dapat bertindak seperti Procrustes untuk " paling cocok "
sumber