Dasar-dasar AI

Apa itu Mesin Vektor Dukungan?

mm
Tambahkan Unite.AI ke sumber pilihan Anda di Google

Apa itu Mesin Vektor Dukungan?

Mesin vektor dukungan adalah jenis klasifikasi pembelajaran mesin, yang mungkin merupakan salah satu jenis klasifikasi paling populer. Mesin vektor dukungan sangat berguna untuk tugas prediksi numerik, klasifikasi, dan pengenalan pola.

Mesin vektor dukungan bekerja dengan menggambar batas keputusan antara titik data, dengan tujuan menggambar batas keputusan yang terbaik untuk memisahkan titik data menjadi kelas (atau yang paling umum). Tujuan saat menggunakan mesin vektor dukungan adalah bahwa batas keputusan antara titik data adalah sebesar mungkin sehingga jarak antara titik data yang diberikan dan garis batas adalah maksimal. Itu adalah penjelasan singkat tentang bagaimana mesin vektor dukungan (SVMs) bekerja, tetapi mari kita ambil waktu untuk memahami lebih dalam tentang bagaimana SVMs bekerja dan memahami logika di balik operasinya.

Tujuan Mesin Vektor Dukungan

Bayangkan sebuah grafik dengan sejumlah titik data di atasnya, berdasarkan fitur yang ditentukan oleh sumbu X dan Y. Titik data pada grafik dapat dibagi menjadi dua kelompok yang berbeda, dan kelompok yang titik data miliki menunjukkan kelas titik data. Sekarang, anggaplah kita ingin menggambar garis di grafik yang memisahkan dua kelas dari satu sama lain, dengan semua titik data dalam satu kelas ditemukan di satu sisi garis dan semua titik data yang termasuk dalam kelas lain ditemukan di sisi lain garis. Garis pemisah ini dikenal sebagai hiperbidang.

Anda dapat memikirkan mesin vektor dukungan sebagai membuat “jalan” di seluruh kota, memisahkan kota menjadi distrik di kedua sisi jalan. Semua bangunan (titik data) yang ditemukan di satu sisi jalan termasuk dalam satu distrik.

Tujuan mesin vektor dukungan bukan hanya menggambar hiperbidang dan memisahkan titik data, tetapi juga menggambar hiperbidang yang memisahkan titik data dengan margin terbesar, atau dengan ruang terbesar antara garis pemisah dan titik data yang diberikan. Kembali ke metafor “jalan”, jika seorang perencana kota menggambar rencana untuk sebuah jalan raya, mereka tidak ingin jalan raya itu terlalu dekat dengan rumah atau bangunan lain. Semakin besar margin antara jalan raya dan bangunan di kedua sisi, semakin baik. Semakin besar margin ini, semakin “percaya diri” klasifikator dapat tentang prediksinya. Dalam kasus klasifikasi biner, menggambar hiperbidang yang tepat berarti memilih hiperbidang yang tepat di tengah-tengah dua kelas yang berbeda. Jika batas keputusan/hiperbidang lebih jauh dari satu kelas, maka akan lebih dekat dengan kelas lain. Oleh karena itu, hiperbidang harus menyeimbangkan margin antara dua kelas yang berbeda.

Menghitung Hiperbidang Pemisah

Bagaimana mesin vektor dukungan menentukan hiperbidang pemisah/batas keputusan yang terbaik? Ini dilakukan dengan menghitung hiperbidang yang mungkin menggunakan rumus matematika. Kami tidak akan membahas rumus untuk menghitung hiperbidang dalam detail, tetapi garis dihitung dengan rumus garis/kenaikan yang terkenal:

Y = ax + b

Sementara itu, garis terdiri dari titik, yang berarti setiap hiperbidang dapat digambarkan sebagai: himpunan titik yang sejajar dengan hiperbidang yang diusulkan, seperti yang ditentukan oleh bobot model kali himpunan fitur yang dimodifikasi oleh offset/bias (“d”) yang ditentukan.

SVMs menggambar banyak hiperbidang. Sebagai contoh, garis batas adalah satu hiperbidang, tetapi titik data yang klasifikator pertimbangkan juga berada pada hiperbidang. Nilai untuk x ditentukan berdasarkan fitur dalam dataset. Misalnya, jika Anda memiliki dataset dengan tinggi dan berat banyak orang, fitur “tinggi” dan “berat” akan menjadi fitur yang digunakan untuk menghitung “X”. Margin antara hiperbidang yang diusulkan dan “vektor dukungan” (titik data) yang ditemukan di kedua sisi garis pemisah dihitung dengan rumus berikut:

W * X – b

Sementara Anda dapat membaca lebih lanjut tentang matematika di balik SVMs, jika Anda mencari pemahaman yang lebih intuitif tentang mereka, cukup tahu bahwa tujuan adalah memaksimalkan jarak antara hiperbidang pemisah/batas keputusan yang diusulkan dan hiperbidang lain yang sejajar dengan itu (dan di mana titik data ditemukan).

Foto: ZackWeinberg via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Klasifikasi Multikelas

Proses yang dijelaskan sejauh ini berlaku untuk tugas klasifikasi biner. Namun, klasifikator SVM juga dapat digunakan untuk tugas klasifikasi non-biner. Ketika melakukan klasifikasi SVM pada dataset dengan tiga atau lebih kelas, lebih dari satu garis pemisah digunakan. Sebagai contoh, jika tugas klasifikasi memiliki tiga kelas bukan dua, dua garis pemisah akan digunakan untuk memisahkan titik data menjadi kelas dan wilayah yang terdiri dari satu kelas akan jatuh di antara dua garis pemisah bukan satu. Alih-alih hanya menghitung jarak antara dua kelas dan batas keputusan, klasifikator harus mempertimbangkan margin antara batas keputusan dan kelas yang berbeda dalam dataset.

Pemisahan Non-Linear

Proses yang dijelaskan di atas berlaku untuk kasus di mana data dapat dipisahkan secara linear. Perlu diingat bahwa, dalam kenyataan, dataset hampir tidak pernah dapat dipisahkan secara linear, yang berarti bahwa saat menggunakan klasifikator SVM, Anda sering perlu menggunakan dua teknik yang berbeda: batas lembut dan trik kernel. Pertimbangkan situasi di mana titik data dari kelas yang berbeda bercampur, dengan beberapa contoh milik satu kelas berada di “kluster” kelas lain. Bagaimana Anda dapat membuat klasifikator menangani contoh-contoh ini?

Satu taktik yang dapat digunakan untuk menangani dataset yang tidak dapat dipisahkan secara linear adalah penerapan klasifikator SVM dengan batas lembut. Klasifikator dengan batas lembut bekerja dengan menerima beberapa titik data yang salah klasifikasikan. Ia akan mencoba menggambar garis yang memisahkan kluster titik data dari satu sama lain, karena kluster tersebut berisi sebagian besar contoh yang termasuk dalam kelas mereka. Klasifikator SVM dengan batas lembut mencoba membuat garis pemisah yang seimbang antara dua tuntutan klasifikator: akurasi dan margin. Ia akan mencoba meminimalkan kesalahan klasifikasi sambil juga memaksimalkan margin.

Toleransi kesalahan SVM dapat disesuaikan melalui manipulasi hyperparameter yang disebut “C”. Nilai C mengontrol berapa banyak vektor dukungan yang klasifikator pertimbangkan saat menggambar batas keputusan. Nilai C adalah hukuman yang diterapkan pada kesalahan klasifikasi, yang berarti bahwa semakin besar nilai C, semakin sedikit vektor dukungan yang klasifikator pertimbangkan dan semakin sempit margin.

Trik kernel mengubah data secara non-linear dan mengubahnya. Foto: Shiyu Ju via Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Trik kernel bekerja dengan menerapkan transformasi non-linear pada fitur dalam dataset. Trik kernel mengambil fitur yang ada dalam dataset dan membuat fitur baru melalui penerapan fungsi matematika non-linear. Hasil dari penerapan transformasi non-linear ini adalah batas keputusan non-linear. Karena klasifikator SVM tidak lagi terbatas pada menggambar batas keputusan linear, ia dapat mulai menggambar batas keputusan yang melengkung yang lebih baik menggambarkan distribusi vektor dukungan yang sebenarnya dan mengurangi kesalahan klasifikasi. Dua kernel non-linear SVM yang paling populer adalah Fungsi Basis Radial dan Polinomial. Fungsi polinomial membuat kombinasi polinomial dari semua fitur yang ada, sementara Fungsi Basis Radial membuat fitur baru dengan mengukur jarak antara titik pusat/titik ke semua titik lain.

Blogger dan programmer dengan spesialisasi di Machine Learning dan Deep Learning topik. Daniel berharap untuk membantu orang lain menggunakan kekuatan AI untuk kebaikan sosial.