Jawaban Ryan Zotti menjelaskan motivasi di balik pemaksimalan batas keputusan, jawaban carlosdc memberikan beberapa persamaan dan perbedaan sehubungan dengan pengklasifikasi lain. Saya akan memberikan jawaban ini ikhtisar matematis singkat tentang bagaimana SVM dilatih dan digunakan.
Notasi
Berikut ini, skalar dilambangkan dengan huruf miring italic (misalnya, ), vektor dengan huruf tebal lebih rendah (misalnya, ), dan matriks dengan huruf miring italic (misalnya, ). adalah transposisi dari , dan .y,bw,xWwTw∥w∥=wTw
Membiarkan:
- x menjadi vektor fitur (yaitu, input SVM). , di mana adalah dimensi dari vektor fitur.x∈Rnn
- y menjadi kelas (yaitu, output dari SVM). , yaitu tugas klasifikasi adalah biner.y∈{−1,1}
- w dan menjadi parameter SVM: kita perlu mempelajarinya menggunakan set pelatihan.b
- (x(i),y(i)) menjadi sampel dalam dataset. Anggaplah kita memiliki sampel di set pelatihan.ithN
Dengan , seseorang dapat mewakili batas keputusan SVM sebagai berikut:n=2
Kelas ditentukan sebagai berikut:y
y(i)={−11 if wTx(i)+b≤−1 if wTx(i)+b≥1
yang dapat ditulis lebih ringkas sebagai .y(i)(wTx(i)+b)≥1
Tujuan
SVM bertujuan untuk memenuhi dua persyaratan:
SVM harus memaksimalkan jarak antara dua batas keputusan. Secara matematis, ini berarti kami ingin memaksimalkan jarak antara hyperplane yang ditentukan oleh dan hyperplane yang didefinisikan oleh . Jarak ini sama dengan . Ini berarti kami ingin menyelesaikan . Setara kita ingin
.wTx+b=−1wTx+b=12∥w∥maxw2∥w∥minw∥w∥2
SVM juga harus mengklasifikasikan dengan benar semua , yang berartix(i)y(i)(wTx(i)+b)≥1,∀i∈{1,…,N}
Yang membawa kita ke masalah optimisasi kuadrat berikut:
minw,bs.t.∥w∥2,y(i)(wTx(i)+b)≥1∀i∈{1,…,N}
Ini adalah SVM hard-margin , karena masalah optimisasi kuadratik ini mengakui solusi jika data terpisah secara linear.
Seseorang dapat mengendurkan kendala dengan memperkenalkan apa yang disebut variabel slack . Perhatikan bahwa setiap sampel himpunan pelatihan memiliki variabel kendur sendiri. Ini memberi kami masalah optimasi kuadrat berikut:ξ(i)
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTx(i)+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Ini adalah SVM soft-margin . adalah hiperparameter yang disebut penalti dari istilah kesalahan . ( Apa pengaruh C dalam SVM dengan kernel linear? Dan rentang pencarian mana untuk menentukan parameter optimal SVM? ).C
Seseorang dapat menambahkan lebih banyak fleksibilitas dengan memperkenalkan fungsi yang memetakan ruang fitur asli ke ruang fitur dimensi yang lebih tinggi. Ini memungkinkan batas keputusan non-linear. Masalah optimasi kuadrat menjadi:ϕ
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTϕ(x(i))+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Optimasi
Masalah optimisasi kuadrat dapat diubah menjadi masalah optimisasi lain bernama masalah ganda Lagrangian (masalah sebelumnya disebut primal ):
maxαs.t.minw,b∥w∥2+C∑i=1Nα(i)(1−wTϕ(x(i))+b)),0≤α(i)≤C,∀i∈{1,…,N}
Masalah optimisasi ini dapat disederhanakan (dengan mengatur beberapa gradien ke ) ke:0
maxαs.t.∑i=1Nα(i)−∑i=1N∑j=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),0≤α(i)≤C,∀i∈{1,…,N}
w tidak muncul sebagai (seperti yang dinyatakan oleh teorema representer ).w=∑Ni=1α(i)y(i)ϕ(x(i))
Karenanya kami mempelajari menggunakan dari set pelatihan.α(i)(x(i),y(i))
(FYI: Mengapa repot dengan masalah ganda saat memasang SVM? Jawaban singkat: komputasi lebih cepat + memungkinkan untuk menggunakan trik kernel, meskipun ada beberapa metode yang baik untuk melatih SVM di awal seperti contoh lihat {1})
Membuat prediksi
Setelah dipelajari, seseorang dapat memprediksi kelas sampel baru dengan vektor fitur sebagai berikut:α(i)xtest
ytest=sign(wTϕ(xtest)+b)=sign(∑i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)
Penjumlahan bisa tampak luar biasa, karena itu berarti kita harus menjumlahkan semua sampel pelatihan, tetapi sebagian besar adalah (lihat Mengapa Pengganda lagrange jarang untuk SVM? ) Jadi dalam praktiknya ini bukan masalah. (perhatikan bahwa seseorang dapat membuat kasus khusus di mana semua ) iff adalah vektor dukungan . Ilustrasi di atas memiliki 3 vektor dukungan.∑Ni=1α(i)0α(i)>0α(i)=0x(i)
Trik kernel
Kita dapat mengamati bahwa masalah optimisasi menggunakan hanya di produk dalam . Fungsi yang memetakan ke produk dalam yang disebut sebuah kernel , alias fungsi kernel, sering dilambangkan dengan .ϕ(x(i))ϕ(x(i))Tϕ(x(j))(x(i),x(j))ϕ(x(i))Tϕ(x(j))k
Orang dapat memilih sehingga produk dalam efisien untuk dihitung. Ini memungkinkan untuk menggunakan ruang fitur yang berpotensi tinggi dengan biaya komputasi yang rendah. Itu disebut trik kernel . Agar fungsi kernel valid , yaitu dapat digunakan dengan trik kernel, ia harus memenuhi dua properti utama . Ada banyak fungsi kernel untuk dipilih . Sebagai catatan tambahan, trik kernel dapat diterapkan ke model pembelajaran mesin lainnya , dalam hal ini mereka disebut sebagai kernel .k
Melangkah lebih jauh
Beberapa QA menarik di SVM:
Tautan lain:
Referensi: