Tampaknya ada banyak algoritma pembelajaran mesin yang mengandalkan fungsi kernel. SVM dan NN untuk menyebutkan dua. Jadi apa definisi dari fungsi kernel dan apa saja persyaratan agar valid?
Tampaknya ada banyak algoritma pembelajaran mesin yang mengandalkan fungsi kernel. SVM dan NN untuk menyebutkan dua. Jadi apa definisi dari fungsi kernel dan apa saja persyaratan agar valid?
Jawaban:
Untuk x, y pada S, fungsi-fungsi tertentu K (x, y) dapat dinyatakan sebagai produk dalam (biasanya dalam ruang yang berbeda). K sering disebut sebagai fungsi kernel atau kernel. Kata kernel digunakan dalam berbagai cara di seluruh matematika, tetapi ini adalah penggunaan paling umum dalam pembelajaran mesin.
Trik kernel adalah cara memetakan pengamatan dari himpunan umum S ke dalam ruang produk dalam V (dilengkapi dengan norma alaminya), tanpa harus menghitung pemetaan secara eksplisit, dengan harapan bahwa pengamatan akan mendapatkan struktur linear yang bermakna dalam V Ini penting dalam hal efisiensi (menghitung produk titik dalam ruang dimensi yang sangat tinggi, sangat cepat) dan kepraktisan (kita dapat mengonversi algoritma ML linier ke algoritme ML non-linear).
Agar suatu fungsi K dianggap sebagai kernel yang valid, ia harus memenuhi persyaratan Mercer . Ini dalam istilah praktis berarti bahwa kita perlu memastikan matriks kernel (menghitung produk kernel dari setiap titik data yang Anda miliki) akan selalu positif setengah-pasti. Ini akan memastikan bahwa fungsi tujuan pelatihan cembung, properti yang sangat penting.
Dari Williams, Christopher KI, dan Carl Edward Rasmussen. " Proses Gaussian untuk pembelajaran mesin. " MIT Press 2, no. 3 (2006). Halaman 80 .
Juga, kernel = fungsi kernel.
Kernel yang digunakan dalam algoritma pembelajaran mesin biasanya memuaskan lebih banyak properti, seperti semidefinite positif.
Akan mencoba penjelasan yang kurang teknis.
Pertama, mulailah dengan produk titik antara dua vektor. Ini memberi tahu Anda seberapa "mirip" vektor-vektor itu. Jika vektor mewakili titik dalam kumpulan data Anda, produk titik memberi tahu Anda apakah mereka mirip atau tidak.
Tetapi, dalam beberapa (banyak) kasus, produk titik bukanlah metrik kesamaan yang terbaik. Sebagai contoh:
Jadi, alih-alih menggunakan produk titik, Anda menggunakan "kernel" yang hanya fungsi yang mengambil dua poin dan memberi Anda ukuran kesamaan mereka. Saya tidak 100% yakin tentang kondisi teknis apa yang harus dipenuhi suatu fungsi untuk secara teknis menjadi kernel, tetapi ini adalah idenya.
Satu hal yang sangat baik adalah bahwa kernel dapat membantu Anda memasukkan pengetahuan domain Anda ke masalah dalam arti bahwa Anda dapat mengatakan dua poin adalah sama karena alasan xyz yang muncul karena Anda mengetahui tentang domain.