Berbagi teknologi

[Machine Learning] 12. Penjelasan prinsip algoritma Support Vector Machine (SVM - Support Vector Machine), salah satu dari sepuluh algoritma teratas

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1·Abstrak

Masukkan deskripsi gambar di sini

Support vector machine (SVM) adalah algoritma pembelajaran terawasi efisien yang banyak digunakan dalam masalah klasifikasi dan regresi. Ini membedakan berbagai kategori titik data dengan menemukan hyperplane optimal dalam ruang fitur. Tujuannya adalah untuk memaksimalkan interval antara dua jenis titik data, sehingga meningkatkan kemampuan generalisasi model. Konsep utama SVM mencakup hyperplane, interval, vektor pendukung, dan fungsi kernel. Fungsi kernel memungkinkan SVM menangani masalah nonlinier dan menemukan hyperplane yang dapat dipisahkan secara linier dengan memetakan data ke ruang berdimensi lebih tinggi. Selain itu, teknik margin lunak dan regularisasi digunakan untuk menangani keterpisahan linier data yang tidak lengkap sekaligus mengontrol kompleksitas model dan mencegah overfitting. Implementasi SVM melibatkan pemilihan fungsi kernel yang sesuai, membangun dan memecahkan masalah pemrograman kuadrat cembung, dan mengevaluasi serta menerapkan model yang dilatih. Keunggulannya adalah modelnya sederhana, mudah diimplementasikan, dan memiliki kemampuan generalisasi yang baik, namun memiliki kompleksitas komputasi yang tinggi, peka terhadap fungsi kernel dan pemilihan parameter, dan mungkin mengalami hambatan kinerja saat memproses kumpulan data skala besar.

2. Perkenalan pribadi

🏘️🏘️个人主页:Menggunakan gunung dan sungai sebagai hadiah
🎖️🎖️:Kreator Rising Star di Bidang Python, Sertifikasi Rising Star CSDN, Mitra Konten CSDN, Blogger Pakar Komunitas Alibaba Cloud, Mentor Program Rising Star, dan Analis Data Pekerjaan.

💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。

Masukkan deskripsi gambar di sini

🐘 希望大家能持续支持,共同向前迈进!😁
Jika menurut Anda artikel tersebut berharga,
欢迎留言💬,点赞👍,收藏🔖并关注我们➕🤝。
🪐💫💫💫💫💫💫💫热门专栏💫💫💫💫💫💫💫🪐
jenisKolom
Dasar-dasar pitonPengantar dasar-dasar Python—versi detail
Python tingkat lanjutPengantar Dasar-dasar Python—Edisi Modul
Python Tingkat LanjutPython网络爬虫从入门到精通🔥🔥🔥
Pengembangan tumpukan penuh webMemulai dengan Dasar-Dasar Django
Pengembangan tumpukan penuh webPengantar Dasar-Dasar HTML dan CSS
Pengembangan tumpukan penuh webMemulai Dasar-Dasar JavaScript
Analisis data PythonPython数据分析项目🔥🔥
pembelajaran mesin机器学习算法🔥🔥
AIAI

3. Konsep dasar

Support Vector Machine (SVM) adalah algoritma pembelajaran mesin yang kuat yang terutama digunakan untuk memecahkan masalah klasifikasi dan regresi. Hal ini didasarkan pada prinsip minimalisasi risiko struktural dalam teori pembelajaran statistik dan membedakan kategori data yang berbeda dengan menemukan batas keputusan yang optimal, yaitu hyperplane, dalam ruang fitur. Pemilihan hyperplane ini bertujuan untuk memaksimalkan jarak terpendek dari titik data ke hyperplane yang disebut dengan margin. Semakin besar intervalnya, biasanya semakin baik kemampuan generalisasi modelnya.

Inti dari SVM adalah support vector, yaitu sekumpulan titik data yang sangat penting untuk menentukan posisi dan arah hyperplane. Jika data tidak dapat dipisahkan secara linier, SVM memetakan data asli ke ruang berdimensi lebih tinggi dengan memperkenalkan fungsi kernel dan menemukan hyperplane yang dapat dipisahkan secara linier di ruang baru ini. Fungsi kernel yang umum digunakan meliputi kernel linier, kernel polinomial, kernel fungsi basis radial (RBF), dll.

Untuk mengatasi noise dan outlier dalam data, SVM memperkenalkan konsep soft margin, yang memungkinkan beberapa titik data salah diklasifikasikan sebagai imbalan atas kinerja generalisasi yang lebih baik. Pada saat yang sama, kompleksitas model dikendalikan melalui ketentuan regularisasi untuk menghindari overfitting. Proses pelatihan SVM biasanya melibatkan penyelesaian masalah pemrograman kuadrat cembung untuk menemukan parameter hyperplane yang optimal.

Lihat gambar di bawah. Dalam lingkungan dua dimensi, titik R, S, G dan titik lain yang dekat dengan garis hitam tengah dapat dianggap sebagai vektor pendukung. Titik tersebut dapat menentukan parameter spesifik pengklasifikasi, yaitu hitam garis.
Masukkan deskripsi gambar di sini

4. Mendukung vektor dan hyperplanes

Vektor dukungan dan hyperplanes adalah konsep inti dalam algoritma support vector machine (SVM). Di bawah ini saya akan menjelaskan kedua konsep tersebut secara detail:

4.1 Pesawat Hiper

Dalam matematika, hyperplane adalah subruang linier yang memiliki satu dimensi lebih rendah dari ruang tempatnya berada. Misalnya, dalam ruang dua dimensi, bidang hiper adalah garis lurus; dalam ruang tiga dimensi, bidang tersebut adalah bidang; dalam ruang dimensi yang lebih tinggi, bidang tersebut masih merupakan batas linier, namun mungkin sulit untuk dipahami secara intuitif.

Dalam SVM, hyperplane digunakan untuk mengklasifikasikan data ke dalam kategori yang berbeda. Untuk ruang dua dimensi, Anda dapat membayangkan hyperplane sebagai garis lurus yang membagi ruang menjadi dua bagian, masing-masing bagian berisi satu kategori titik data. Untuk ruang berdimensi lebih tinggi, hyperplane adalah batas linier berdimensi lebih tinggi yang juga memisahkan titik data.

4.2 Vektor Pendukung

Vektor pendukung adalah titik data yang terletak paling dekat dengan hyperplane. Ini adalah titik data utama yang digunakan oleh SVM selama pelatihan untuk menentukan lokasi hyperplane. Jika Anda menghilangkan salah satu titik ini, posisi dan orientasi hyperplane akan berubah.

Vektor pendukung penting karena menentukan batas (yaitu interval) antar titik data. Tujuan dari SVM adalah untuk menemukan hyperplane yang memaksimalkan jarak (interval) antara support vector terdekat (yaitu titik data yang paling dekat dengan hyperplane) dan hyperplane. Besar kecilnya interval ini merupakan indikator penting kemampuan generalisasi model.

4.3 Trik Kernel

Dalam aplikasi nyata, data mungkin tidak dapat dipisahkan secara linear. Saat ini, SVM dapat menggunakan teknik kernel untuk mengatasi masalah nonlinier. Fungsi kernel dapat memetakan data asli ke ruang berdimensi lebih tinggi dan menemukan hyperplane yang dapat dipisahkan secara linier di ruang baru. Fungsi kernel yang umum digunakan meliputi kernel linier, kernel polinomial, kernel fungsi basis radial (RBF), dll.

4.4 Margin lunak dan regularisasi

Saat menangani data nyata, mungkin tidak mungkin menemukan hyperplane sempurna yang benar-benar memisahkan semua titik data. Pada saat ini, SVM memperkenalkan konsep soft margin, yang memungkinkan beberapa titik data salah diklasifikasikan sebagai imbalan atas kemampuan generalisasi yang lebih baik. Pada saat yang sama, kompleksitas model dikendalikan melalui istilah regularisasi (biasanya norma vektor normal) untuk menghindari overfitting.

Masukkan deskripsi gambar di sini

5. Prinsip algoritma SVM

5.1 Rumus jarak dari titik ke hyperplane

Rumus jarak point-to-hyperplane digunakan untuk menghitung jarak terpendek dari suatu titik ke hyperplane tertentu. Hyperplane dapat dinyatakan dengan persamaan berikut dalam ruang berdimensi n:
Masukkan deskripsi gambar di sini
di dalam:
w adalah vektor normal berdimensi n, tegak lurus terhadap bidang hiper.
x adalah titik berdimensi n yang terletak di ruang angkasa.
b adalah suku bias dari hyperplane.
Jarak vertikal d dari titik x ke hyperplane ini dapat dihitung dengan rumus berikut:
Masukkan deskripsi gambar di sini
这个公式的几何意义是:从点 𝑥 向超平面作垂线,垂足到点 𝑥的距离就是𝑑这个距离也代表了点 𝑥到超平面的“间隔”。在支持向量机中,间隔的大小是非常重要的,因为它与模型的泛化能力有关。SVM的目标是找到这样一个超平面,使得间隔最大化,即所有数据点到这个超平面的距离之和最大。

5.2 Model optimasi interval maksimum

Model optimasi dalam kasus yang dapat dipisahkan secara linier
Ketika data dapat dipisahkan secara linier, yaitu terdapat hyperplane yang dapat memisahkan berbagai kategori titik data dengan sempurna, tujuan SVM adalah menemukan hyperplane sedemikian rupa sehingga dua titik data terdekat (yaitu vektor pendukung) berada ke hyperplane Maksimalkan jarak. Jarak ini disebut margin.
Hyperplane dapat dinyatakan sebagai:
Masukkan deskripsi gambar di sini
Masalah Optimasi Margin Maksimum
Fungsi tujuan SVM adalah memaksimalkan interval, yang dapat dinyatakan sebagai:
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di siniMemperkenalkan pengganda Lagrange
Masukkan deskripsi gambar di sini
masalah ganda
Masukkan deskripsi gambar di sini

6. Variabel kendur

Dalam mendukung mesin vektor (SVM), variabel kendur (Slack Variables) adalah mekanisme yang diperkenalkan untuk menangani situasi pemisahan non-linier dalam kumpulan data. Dalam situasi ideal, jika data dapat dipisahkan secara linier, SVM dapat menemukan hyperplane yang benar-benar memisahkan berbagai kelas titik data sekaligus memaksimalkan margin. Namun, di dunia nyata, banyak kumpulan data yang tidak sepenuhnya dapat dipisahkan secara linier, sehingga memerlukan penggunaan variabel slack agar beberapa titik data dapat salah klasifikasi, sehingga meningkatkan kemampuan generalisasi model.Masukkan deskripsi gambar di sini

6.1 Definisi variabel slack

Masukkan deskripsi gambar di sini

6.2 Modifikasi model optimasi

Masukkan deskripsi gambar di sini
这里的 𝐶是一个正的调节参数,用于控制模型对误分类的惩罚程度。𝐶的值越大,模型对误分类的惩罚越重,越倾向于找到没有误分类的解;𝐶的值越小,模型对误分类的容忍度越高,越容易找到间隔更大的解,即使这意味着更多的误分类。

6.3 Margin lunak dan margin keras

  • Hard Margin: SVM yang tidak memasukkan variabel slack mengharuskan semua titik data berada di luar atau di batas margin, sehingga kesalahan klasifikasi tidak diperbolehkan.
  • Soft Margin: SVM memperkenalkan variabel slack, yang memungkinkan beberapa titik data berada di dalam batas margin, yaitu memungkinkan kesalahan klasifikasi pada tingkat tertentu. Trik kernel dan variabel slack.

6.4 Trik kernel dan variabel slack

Bahkan dalam kasus keterpisahan nonlinier, dengan menggunakan trik kernel untuk memetakan data ke dalam ruang berdimensi tinggi, dikombinasikan dengan variabel slack, SVM masih dapat menemukan hyperplane dengan margin maksimum.

7. Fungsi inti

Fungsi kernel adalah alat penting dalam mendukung mesin vektor (SVM), yang memungkinkan SVM menangani masalah nonlinier secara efektif dalam ruang berdimensi tinggi. Ide dasar dari fungsi kernel adalah memetakan data asli dari ruang berdimensi rendah ke ruang berdimensi tinggi melalui pemetaan, dan mencari keterpisahan linier data dalam ruang berdimensi tinggi tersebut.
Masukkan deskripsi gambar di sini

7.1 Konsep dasar fungsi kernel

Masukkan deskripsi gambar di sini

7.2 Fungsi kernel yang umum digunakan

Masukkan deskripsi gambar di sini

7.3 Peran fungsi kernel

  1. Menangani masalah nonlinier: Dengan memetakan ke ruang berdimensi tinggi, fungsi kernel membuat data yang awalnya tidak dapat dipisahkan secara linier dalam ruang berdimensi rendah dapat dipisahkan secara linier dalam ruang berdimensi tinggi.
  2. Meningkatkan kemampuan ekspresif model: Fungsi kernel yang berbeda dapat menangkap karakteristik data yang berbeda dan meningkatkan kemampuan ekspresif model.
  3. Mengurangi kompleksitas komputasi: Menggunakan fungsi kernel dapat menghindari penghitungan langsung dalam ruang berdimensi tinggi, sehingga mengurangi kompleksitas komputasi.