Dalam machine learning, kernel Radial Basis Function (RBF) adalah salah satu fungsi kernel yang sering digunakan, terutama pada algoritma Support Vector Machine (SVM). Kernel ini membantu dalam memecahkan masalah klasifikasi dan regresi dengan memetakan data yang tidak dapat dipisahkan secara linier ke ruang dimensi yang lebih tinggi, di mana data tersebut menjadi lebih mudah dipisahkan.
Apa Itu Kernel?
Sebelum membahas lebih dalam tentang kernel RBF, penting untuk memahami apa itu kernel secara umum. Dalam machine learning, fungsi kernel digunakan untuk mengubah data yang tidak dapat dipisahkan secara linier di ruang dimensi rendah menjadi data yang dapat dipisahkan di ruang dimensi tinggi. Sederhananya, kernel merupakan bentuk dari distribusi data. Sehingga ketika kita membuat sebuah garis pemisah yang mengikuti distribusi tersebut, kita akang sangat mudah mengklasifikasikannya.
Fungsi kernel pada dasarnya memungkinkan algoritma seperti SVM untuk melakukan pemisahan yang kompleks tanpa perlu menghitung eksplisit transformasi dimensi yang lebih tinggi. Kita tidak akan membahas lebih jauh lagi mengenai kernel, jika kalian masih butuh penjelasan, kalian bisa baca artikel lengkapnya dibawah ini:
Baca Juga: Apa Itu Kernel disini
Mengenal Kernel RBF
RBF adalah salah satu jenis fungsi kernel yang berbasis pada jarak antara dua titik, sering kali diukur menggunakan jarak Euclidean. Fungsi kernel RBF menganggap bahwa semakin dekat suatu titik dengan titik pusat, maka nilai fungsi (f(x)) kernel akan semakin tinggi. Sebaliknya, jika titik tersebut semakin jauh dari pusat, nilai fungsi kernel akan semakin rendah.
Rumus umum untuk fungsi kernel RBF adalah sebagai berikut:
Dimana
- x dan x' adalah dua vektor fitur (titik data) dalam ruang input.
- gamma (y) adalah parameter yang mengontrol seberapa besar pengaruh suatu titik data terhadap yang lainnya. Semakin besar nilai gamma (y), semakin pendek jangkauan pengaruhnya.
Salah satu contoh hasil visualisasi model klasifikasi data menggunakan kernel RBF pada algoritma SVM dapat kalian lihat pada gambar dibawah ini:
Cara Kerja Kernel RBF
- Data yang Tidak Linier: Misalkan kita memiliki dua kelas data yang berada dalam distribusi yang tidak linier (misalnya, titik-titik dari dua kelas yang dikelompokkan dalam pola melingkar). Di ruang dua dimensi, tidak ada hyperplane (garis lurus) yang bisa memisahkan kedua kelas ini secara efektif.
- Penggunaan Kernel RBF: Untuk mengatasi masalah ini, SVM menggunakan kernel RBF. Kernel ini memetakan data dari ruang dimensi rendah (misalnya, ruang 2D) ke ruang dimensi yang lebih tinggi (ruang 3D) di mana pemisahan antara dua kelas menjadi lebih jelas. Kernel RBF bekerja dengan menghitung jarak antara titik data dan pusatnya (basis radial), dan memetakan titik-titik yang terletak lebih dekat dengan pusat akan mendapatkan nilai yang lebih besar, sedangkan yang lebih jauh mendapatkan nilai yang lebih kecil.
- Pemetaan ke Ruang Dimensi Tinggi: Dalam ruang dimensi yang lebih tinggi, kernel RBF memungkinkan SVM untuk menemukan hyperplane yang memisahkan data. Data yang sebelumnya tidak bisa dipisahkan di ruang dimensi rendah, sekarang dapat dipisahkan oleh hyperplane di ruang dimensi yang lebih tinggi. Proses ini dilakukan tanpa harus secara eksplisit menghitung koordinat dalam dimensi yang lebih tinggiâproses ini dikenal sebagai trik kernel.
- Klasifikasi dengan Hyperplane: Setelah data dipetakan ke ruang dimensi tinggi, SVM membangun hyperplane yang memisahkan dua kelas dengan margin terbesar. Hyperplane ini bekerja dengan cara memilih beberapa titik penting dari data yang disebut support vectors, yang menentukan batas pemisahan.
- Penyesuaian Parameter gamma (y) dan regularisasi (c):
- Gamma (y) dalam kernel RBF mengontrol seberapa jauh pengaruh dari satu titik data terhadap titik-titik lain. Nilai gamma yang lebih tinggi berarti pengaruh dari satu titik data terbatas hanya pada titik-titik yang sangat dekat, sedangkan nilai gamma yang lebih rendah berarti pengaruh titik data meluas ke area yang lebih jauh.
- C adalah parameter regularisasi dalam SVM yang menentukan keseimbangan antara memaksimalkan margin dan mengurangi kesalahan klasifikasi. Jika C besar, SVM akan fokus pada klasifikasi yang akurat pada data pelatihan, yang berpotensi menyebabkan overfitting. Jika C kecil, SVM akan memperbolehkan beberapa titik data berada di sisi yang salah dari hyperplane demi meningkatkan margin.
Ilustrasi terkait bagaimana kernel RBF melakukan pemetaan ulang data ke dimensi yang lebih tinggi dapat dilihat pada gambar berikut:
Dari gambar diatas dapat dilihat bahwa data yang tadinya disusun pada ruang dimensi 2, kemudian ditingkatkan menjadi dimensi 3. Setelah itu RBF akan mencari hyperplane (garis pemisah) terbaik antara label pada data-data tersebut dengan memanipulasi nilai gamma dan regularisasi. Jika tidak ditemukan, bisa jadi data akan ditingkatkan pada dimensi yang lebih tinggi lagi.
Namun jika kalian menggunakan SVM dengan SK-Learn, biasanya nilai gamma, C, dan tingkat dimensi RBF sudah harus kalian input dari awal membangun model. Sehingga satu-satunya cara untuk mendapatkan model terbaik adalah dengan melakukan tuning pada parameter gamma, C, dan dimensi RBF.
Kelebihan Kernel RBF
Kernel RBF sangat disukai oleh para engineer atau researcher yang menggunakan machine learning. Hal ini karena banyak fleksibilitas dan keunggulan yang disediakan. Antara lain:
- Kemampuan untuk Menangani Data Non-Linier: Fungsi kerbel RBF sangat efektif untuk menangani data yang tidak dapat dipisahkan secara linier. Dengan memproyeksikan data ke ruang dimensi yang lebih tinggi, kernel ini memungkinkan pemisahan yang lebih akurat.
- Fleksibilitas: Kernel RBF memiliki parameter yang dapat diatur, seperti gamma (y), yang memungkinkan penyesuaian model agar dapat menyesuaikan berbagai jenis data.
- Kinerja yang Baik pada Berbagai Tipe Data: Kerbel RBF bekerja dengan baik pada berbagai tipe data, baik yang terdistribusi secara linier maupun non-linier.
Kekurangan Kernel RBF
Namun kernel RBF juga memiliki beberapa kekurangan, antara lain:
- Pemilihan Parameter yang Rumit: Salah satu tantangan utama dalam menggunakan kernel RBF adalah menemukan parameter gamma(y) dan regularisasi yang optimal. Proses ini biasanya memerlukan cross-validation dan hyperparameter tuning dan dapat memakan waktu
- Overfitting: Jika nilai gamma (y) terlalu besar, model bisa menjadi sangat kompleks dan berisiko mengalami overfitting, di mana model terlalu spesifik dengan data pelatihan dan kurang baik dalam memprediksi data baru.
Menangani Kekurangan RBF
Meskipun terdapat kekurangan, kernel RBF tetap menjadi primadona. Namun perlu diperhatikan bahwa tidak semua data cocok dengan kernel RBF. Siapa tau data yang kita miliki terdistribusi secara linearn, polynom atau bahkan gaussian. So, dalam hal ini ketika kalian mendapati bahwa akurasi kalian rendah padahal sudah menggunakan RBF, kalian bisa perhatikan ulang aspek-aspek berikut:
- Pastikan data kalian benar terdistribusi secara radial (non linear).
- Coba uji coba kernal lain terlebih dahulu (bisa menggunakan pipeline atau ganti ganti manual), jika pada kernel lainnya model kalian bekerja lebih baik, artinya data yang kalian miliki tidak terdistribusi secara radial.
- Gunakan cross validation untuk mengetahui apakah model bekerja dengan buruk untuk seluruh data atau hanya pada data pada tingkatan (fold) tertentu saja.
- Lakukan hyperparameter tuning menggunakan Halving Gridsearch untuk mengetahui parameter gamma dan regularisasi terbaik.
Kesimpulan
Kernel RBF merupakan salah satu alat yang sangat bermanfaat dalam machine learning, khususnya dalam menangani data yang tidak dapat dipisahkan secara linier. Kemampuan kernel ini untuk memetakan data ke ruang dimensi tinggi membuatnya efektif dalam memecahkan berbagai masalah klasifikasi dan regresi.