Mengingat titik data dan label y 1 , … , y n ∈ { - 1 , 1 } , masalah utama hard margin SVM adalah
s.t.
yang merupakan program kuadrat dengan variabel harus dioptimalkan untuk dan i kendala. Dual
s.t.
adalah program kuadratik dengan n + 1 variabel yang akan dioptimalkan untuk dan n ketidaksetaraan dan n kendala kesetaraan.
Ketika menerapkan SVM hard margin, mengapa saya harus memecahkan masalah ganda alih-alih masalah primer? Masalah utama terlihat lebih 'intuitif' bagi saya, dan saya tidak perlu khawatir dengan kesenjangan dualitas, kondisi Kuhn-Tucker dll.
Masuk akal bagi saya untuk memecahkan masalah ganda jika , tapi saya curiga ada alasan yang lebih baik. Apakah ini masalahnya?
Jawaban:
Berdasarkan catatan kuliah yang dirujuk dalam jawaban @ user765195 (terima kasih!), Alasan yang paling jelas tampaknya adalah:
Istilah ini sangat efisien dihitung jika hanya ada beberapa vektor dukungan. Lebih lanjut, karena sekarang kami memiliki produk skalar yang hanya melibatkan vektor data , kami dapat menerapkan trik kernel .
sumber
<x1, x>
danwTx
. Yang pertama digunakan sebagai simbol untuk evaluasi kernel K (x1, x), yang memproyeksikan x1 dan x ke ruang dimensi yang sangat tinggi dan menghitung secara implisit produk skalar dari nilai yang diproyeksikan. Yang terakhir adalah produk skalar normal, jadiw
danx
harus diproyeksikan secara eksplisit, dan kemudian produk skalar dihitung secara eksplisit. Bergantung pada pilihan kernel, perhitungan tunggal yang eksplisit mungkin membutuhkan lebih banyak perhitungan daripada banyak evaluasi kernel.Baca paragraf kedua di halaman 13 dan diskusi melanjutkannya dalam catatan ini:
http://cs229.stanford.edu/notes/cs229-notes3.pdf
sumber
Inilah salah satu alasan mengapa formulasi ganda menarik dari sudut pandang optimasi numerik. Anda dapat menemukan detailnya di koran berikut :
Hsieh, C.-J., Chang, K.-W., Lin, C.-J., Keerthi, SS, dan Sundararajan, S., "Metode keturunan ganda koordinat untuk skala besar linear SVM", Prosiding Konferensi Internasional ke 25 tentang Pembelajaran Mesin, Helsinki, 2008.
Formulasi rangkap melibatkan satu kendala kesetaraan afin tunggal dan kendala terikat.
1. Kendala kesetaraan afin dapat "dihilangkan" dari formulasi ganda.
Ini dapat dilakukan dengan hanya melihat data Anda di R ^ (d + 1) melalui penyisipan R ^ d di R ^ (d + 1) yang memutuskan untuk menambahkan koordinat "1" tunggal ke setiap titik data, yaitu R ^ d ----> R ^ (d +1): (a1, ..., iklan) | ---> (a1, ..., iklan, 1).
Melakukan ini untuk semua poin dalam set pelatihan menampilkan kembali masalah keterpisahan linear dalam R ^ (d + 1) dan menghilangkan istilah konstan w0 dari classifier Anda, yang pada gilirannya menghilangkan kendala kesetaraan afin dari dual.
2. Pada poin 1, dual dapat dengan mudah dilemparkan sebagai masalah optimisasi kuadratik cembung yang batasannya hanya kendala terikat.
3. Masalah ganda sekarang dapat diselesaikan secara efisien, yaitu melalui algoritma penurunan koordinat ganda yang menghasilkan solusi epsilon-optimal di O (log (1 / epsilon)).
Ini dilakukan dengan mencatat bahwa memperbaiki semua alpha kecuali satu menghasilkan solusi bentuk-tertutup. Anda kemudian dapat menggilir semua huruf satu per satu (mis. Memilih satu secara acak, memperbaiki semua huruf lain, menghitung solusi bentuk tertutup). Seseorang dapat menunjukkan bahwa Anda akan mendapatkan solusi yang hampir optimal "agak cepat" (lihat Teorema 1 dalam makalah yang disebutkan sebelumnya).
Ada banyak alasan lain mengapa masalah ganda menarik dari sudut pandang optimisasi, beberapa di antaranya mengeksploitasi fakta bahwa ia hanya memiliki satu kendala kesetaraan afin (kendala yang tersisa semuanya merupakan kendala terikat) sementara yang lain mengeksploitasi pengamatan bahwa pada solusi dari masalah ganda "seringkali sebagian besar alpha" adalah nol (bukan nol nol yang sesuai dengan vektor dukungan).
Anda bisa mendapatkan gambaran umum yang baik dari pertimbangan optimasi numerik untuk SVM dari presentasi Stephen Wright di Computational Learning Workshop (2009).
PS: Saya baru di sini. Permintaan maaf karena tidak pandai menggunakan notasi matematika di situs web ini.
sumber
Menurut pendapat saya dalam catatan kuliah Andrew ng, telah dengan jelas disebutkan bahwa masalah utama 1 / || w ||, adalah masalah yang tidak cembung. Dual adalah masalah cembung dan selalu mudah untuk menemukan fungsi cembung yang optimal.
sumber