Mengapa orang menggunakan teknik Pemrograman Quadratic (seperti SMO) ketika berhadapan dengan SVM kernel? Apa yang salah dengan Keturunan Gradien? Apakah tidak mungkin digunakan dengan kernel atau itu terlalu lambat (dan mengapa?).
Berikut adalah konteks yang lebih sedikit: mencoba memahami SVM sedikit lebih baik, saya menggunakan Gradient Descent untuk melatih classifier SVM linier menggunakan fungsi biaya berikut:
Saya menggunakan notasi berikut:
- adalah bobot fitur model dan adalah parameter biasnya.
- adalah vektor fitur contoh pelatihan .
- adalah kelas target (-1 atau 1) untuk instance .
- adalah jumlah instance pelatihan.
- adalah hiperparameter regularisasi.
Saya mendapatkan vektor gradien (sub) (berkaitan dengan dan ) dari persamaan ini, dan Gradient Descent bekerja dengan baik.
Sekarang saya ingin mengatasi masalah non-linear. Dapatkah saya mengganti semua produk dot dengan dalam fungsi biaya, di mana adalah fungsi kernel (misalnya Gaussian RBF, ), lalu gunakan kalkulus untuk menurunkan a (sub) gradien vektor dan teruskan dengan Gradient Descent? K( u , v )KK( u , v )= e - γ ‖ u - v ‖ 2
Jika terlalu lambat, mengapa begitu? Apakah fungsi biaya tidak cembung? Atau apakah itu karena perubahan gradien terlalu cepat (itu bukan Lipschitz kontinu) sehingga algoritme terus melompat melintasi lembah selama penurunan, sehingga konvergen sangat lambat? Tetapi meskipun begitu, bagaimana bisa lebih buruk daripada kompleksitas waktu Pemrograman Quadratic, yaitu ? Jika itu masalah minimum lokal, tidak bisakah Stochastic GD dengan simulasi anil mengatasi mereka?