Pemilihan parameter SVM

9

Adakah metode alternatif yang lebih baik untuk memilih C dan Gamma yang menghasilkan kinerja pelatihan yang lebih baik?

John
sumber

Jawaban:

5

Pencarian kotak lambat karena menghabiskan banyak waktu menyelidiki pengaturan parameter-hiper yang tidak mendekati optimal. Solusi yang lebih baik adalah algoritma simpleks Nelder-Mead , yang tidak memerlukan perhitungan informasi gradien dan mudah untuk diterapkan (harus ada informasi yang cukup pada halaman Wikipedia). Mungkin juga ada beberapa kode java di kotak alat Weka , namun saya bekerja di MATLAB dan belum melihat Weka secara mendetail.

SMO adalah algoritma untuk menemukan parameter model, bukan parameter-hiper.

Dikran Marsupial
sumber
Bisakah Anda memberikan implementasi matlab Anda?
Zach
1
Ada satu di sini theoval.cmp.uea.ac.uk/matlab/#optim tetapi jika Anda sudah memiliki toolbox optimasi maka fminsearch juga merupakan implementasi dari metode Nelder-Mead IIRC.
Dikran Marsupial
5

Metode simpleks Nelder-Mead dapat melibatkan sebanyak mungkin evaluasi fungsi sebagai pencarian kotak sederhana. Biasanya permukaan kesalahan cukup halus dekat dengan nilai parameter optimal yang cukup untuk pencarian grid diikuti oleh yang lebih halus di wilayah yang lebih kecil.

Jika Anda tertarik pada optimasi berbasis gradien dari C dan gamma, ada beberapa metode seperti mengoptimalkan batas batas radius atau mengoptimalkan tingkat kesalahan pada set validasi. Perhitungan gradien dari fungsi objektif melibatkan sesuatu seperti satu kereta SVM tetapi penurunan gradien sederhana mungkin hanya melibatkan beberapa lusin iterasi. (Lihatlah http://olivier.chapelle.cc/ams/ untuk artikel dan implementasi Matlab.)

Innuo
sumber
Dalam pengalaman saya, nelder-mead biasanya lebih cepat dari pencarian grid dan gradient descent hanya sedikit lebih cepat karena memerlukan iterasi yang lebih sedikit, biaya komputasi gradiennya tinggi. Jadi jika Anda memiliki implementasi yang menyediakan gradient descent, gunakan itu, tetapi Nelder-Mead mungkin tidak akan jauh tertinggal. Tentu saja segera setelah Anda memiliki lebih dari dua parameter hiper untuk menyetel penelusuran kotak segera menjadi metode paling lambat. Akan menarik untuk melihat studi tentang efisiensi komparatif dari masing-masing metode.
Dikran Marsupial
Anda benar bahwa jika jumlah parameter lebih dari pasangan, pencarian kotak tidak dapat dilakukan. Tetapi hal yang sama berlaku untuk Nelder-Mead, karena ukuran simpleks ditentukan oleh dimensi.
Innuo
hanya untuk tingkat yang sama seperti untuk gradient descent, menambahkan dimensi ekstra untuk masalah hanya menambahkan satu titik ekstra ke simpleks, jadi seperti gradient descent, ia menskala secara linear secara linear dalam jumlah parameter-hiper. Saya sudah menggunakannya dengan masalah dengan parameter 40+ hiper dan hanya sedikit lebih lambat dari gradient descent (Anda cenderung terlalu pas dalam pemilihan model baik dengan banyak parameter-hiper).
Dikran Marsupial
0

Berikut adalah entri di blog Alex Smola yang terkait dengan pertanyaan Anda

Berikut ini kutipannya:

[...] pilih, katakan 1000 pasangan (x, x ') secara acak dari dataset Anda, hitung jarak semua pasangan tersebut dan ambil median, 0,1 dan 0,9 kuantil. Sekarang pilih λ untuk menjadi kebalikan dari ketiga angka ini. Dengan sedikit validasi silang Anda akan mengetahui yang mana dari ketiganya yang terbaik. Dalam kebanyakan kasus, Anda tidak perlu mencari lebih jauh.

carlosdc
sumber