Pertanyaan ini mungkin terlalu terbuka untuk mendapatkan jawaban yang pasti, tetapi mudah-mudahan tidak.
Algoritma pembelajaran mesin, seperti SVM, GBM, Random Forest dll, umumnya memiliki beberapa parameter gratis yang, di luar beberapa pedoman praktis, perlu disetel ke setiap kumpulan data. Ini umumnya dilakukan dengan semacam teknik re-sampling (bootstrap, CV dll) agar sesuai dengan set parameter yang memberikan kesalahan generalisasi terbaik.
Pertanyaan saya adalah, bisakah Anda melangkah terlalu jauh di sini? Orang-orang berbicara tentang melakukan pencarian kisi-kisi seperti itu, tetapi mengapa tidak memperlakukan ini sebagai masalah pengoptimalan dan menelusuri set parameter yang terbaik? Saya bertanya tentang beberapa mekanisme ini dalam pertanyaan ini , tetapi belum mendapat banyak perhatian. Mungkin pertanyaan itu ditanyakan dengan buruk, tetapi mungkin pertanyaan itu sendiri merupakan pendekatan yang buruk yang biasanya tidak dilakukan orang?
Yang menggangguku adalah kurangnya regularisasi. Saya mungkin menemukan dengan pengambilan sampel ulang bahwa jumlah pohon terbaik untuk tumbuh dalam GBM untuk kumpulan data ini adalah 647 dengan kedalaman interaksi 4, tetapi seberapa yakin saya bahwa ini akan benar untuk data baru (dengan asumsi populasi baru identik dengan set pelatihan)? Dengan tidak ada nilai wajar untuk 'menyusut' ke (atau jika Anda mau, tidak ada informasi sebelumnya yang informatif) pengambilan sampel kembali sepertinya yang terbaik yang bisa kami lakukan. Aku hanya tidak mendengar pembicaraan tentang ini, jadi itu membuatku bertanya-tanya apakah ada sesuatu yang aku lewatkan.
Jelas ada biaya komputasi besar yang terkait dengan melakukan banyak iterasi untuk memeras setiap bit terakhir dari daya prediksi dari model, jadi jelas ini adalah sesuatu yang akan Anda lakukan jika Anda punya waktu / kasar untuk melakukan optimasi dan setiap bit peningkatan kinerja sangat berharga.
Jawaban:
Ada jawaban pasti untuk pertanyaan ini yaitu "ya, tentu mungkin untuk memakai kriteria pemilihan model berdasarkan validasi silang dan berakhir dengan model yang generalisasinya buruk! ". Dalam pandangan saya, ini tampaknya tidak dihargai secara luas, tetapi merupakan jebakan substansial dalam penerapan metode pembelajaran mesin, dan merupakan fokus utama penelitian saya saat ini; Saya telah menulis dua makalah tentang masalah ini sejauh ini
GC Cawley dan NLC Talbot, Over-fitting dalam pemilihan model dan bias seleksi selanjutnya dalam evaluasi kinerja, Journal of Machine Learning Research, 2010. Penelitian, vol. 11, hlm. 2079-2107, Juli 2010. ( www )
yang menunjukkan bahwa pemasangan terlalu banyak dalam pemilihan model adalah masalah besar dalam pembelajaran mesin (dan Anda bisa mendapatkan perkiraan kinerja yang sangat bias jika Anda mengambil jalan pintas dalam pemilihan model selama evaluasi kinerja) dan
GC Cawley dan NLC Talbot, Mencegah over-fitting dalam pemilihan model melalui regularisasi Bayesian dari hyper-parameter, Journal of Machine Learning Research, volume 8, halaman 841-861, April 2007. ( www )
di mana kriteria pemilihan model berbasis validasi silang diregulasi untuk mencoba pemasangan berlebih yang tepat dalam pemilihan model (yang merupakan masalah utama jika Anda menggunakan kernel dengan banyak parameter-hiper).
Saya sedang menulis makalah tentang pemilihan model berbasis pencarian grid saat ini, yang menunjukkan bahwa memang mungkin untuk menggunakan grid yang terlalu baik di mana Anda berakhir dengan model yang secara statistik lebih rendah daripada model yang dipilih oleh banyak kisi kasar (itu adalah pertanyaan tentang StackExchange yang mengilhami saya untuk mencari kisi-kisi).
Semoga ini membantu.
PS Evaluasi kinerja yang tidak ergonomis dan pemilihan model yang andal memang bisa mahal secara komputasi, tetapi menurut pengalaman saya ini sangat bermanfaat. Validasi silang bersarang, di mana validasi silang luar digunakan untuk estimasi kinerja dan validasi silang dalam untuk pemilihan model adalah pendekatan dasar yang baik.
sumber
Validasi silang dan bootstrap telah terbukti memberikan perkiraan tingkat kesalahan yang hampir tidak bias dan dalam beberapa kasus lebih akurat oleh bootstrap melalui cross-validasi. Masalah dengan metode lain seperti penggantian adalah dengan memperkirakan kesalahan pada kumpulan data yang sama yang Anda paskan dengan classifier, Anda dapat terlalu meremehkan tingkat kesalahan dan mungkin mengarah ke algoritma yang menyertakan terlalu banyak parameter dan tidak akan memprediksi nilai di masa depan seakurat suatu algoritma cocok untuk satu set kecil parameter. Kunci dari penggunaan metode statistik adalah bahwa data yang Anda miliki untuk mengelompokkan pengklasifikasi adalah tipikal dari data yang akan Anda lihat di masa depan di mana kelas-kelasnya hilang dan harus diprediksi oleh pengklasifikasi. Jika Anda berpikir bahwa data masa depan bisa sangat berbeda maka metode statistik tidak dapat membantu dan saya tidak
sumber
Saya menduga satu jawaban di sini adalah bahwa, dalam konteks optimasi, apa yang Anda coba temukan adalah minimum global pada
noisy
fungsi biaya. Jadi, Anda memiliki semua tantangan optimisasi global multi-dimensi plus komponen stokastik yang ditambahkan ke fungsi biaya.Banyak pendekatan untuk menghadapi tantangan minimum lokal dan ruang pencarian yang mahal sendiri memiliki parameter yang mungkin perlu disetel, seperti metode anil simulasi atau metode monte carlo.
Dalam alam semesta yang ideal dan tidak terikat secara komputasi, saya kira Anda dapat mencoba untuk menemukan minimum global ruang parameter Anda dengan batas ketat yang sesuai pada bias dan varian estimasi fungsi kesalahan Anda. Apakah skenario regularisasi ini tidak akan menjadi masalah karena Anda dapat mencicipi ulang sampel iklan tanpa batas.
Di dunia nyata saya curiga Anda dapat dengan mudah menemukan diri Anda dalam minimum lokal.
Seperti yang Anda sebutkan, ini adalah masalah terpisah, tetapi ini masih membuat Anda terbuka untuk overfitting karena masalah pengambilan sampel yang terkait dengan data yang tersedia untuk Anda dan hubungannya dengan distribusi ruang sampel yang mendasarinya.
sumber
Ini sangat tergantung pada algoritme, tetapi Anda tentu bisa - meskipun dalam kebanyakan kasus itu hanya akan membuang-buang upaya.
Jadi, yah, (berdasarkan praktik yang ada dalam jurnal yang bagus) penuh, validasi eksternal pemilihan parameter bukanlah sesuatu yang harus Anda lakukan dengan keras (tidak seperti memvalidasi pemilihan fitur), tetapi hanya jika optimisasi bersifat sepintas dan pengklasifikasi agak tidak sensitif terhadap parameter.
sumber
Ya, parameter dapat "dilengkapi" ke pelatihan dan set tes selama crossvalidation atau bootstrap. Namun, ada beberapa metode untuk mencegah hal ini. Metode sederhana pertama adalah, Anda membagi dataset Anda menjadi 3 partisi, satu untuk pengujian (~ 20%), satu untuk menguji parameter yang dioptimalkan (~ 20%) dan satu untuk menyesuaikan pengklasifikasi dengan parameter yang ditetapkan. Ini hanya mungkin jika Anda memiliki dataset yang cukup besar. Dalam kasus lain, crossvalidation ganda disarankan.
Romain François dan Florent Langrognet, "Validasi Salib Ganda untuk Klasifikasi Berbasis Model", 2006
sumber