Pertanyaan:
Saya ingin memulai diskusi tentang bagaimana orang menetapkan parameter algoritmik ketika tidak ada validasi terhadap groundtruth mungkin (mungkin karena groundtruth tidak dapat diperoleh atau sangat sulit / membosankan untuk diperoleh).
Saya telah membaca banyak makalah dan menerapkan algoritma yang mendasari di mana --- satu set parameter dikatakan telah diatur "secara empiris" --- dan sering saya menemukan bahwa ini adalah yang mempengaruhi generalisasi dari algoritma (meskipun teori yang mendasari metode ini anggun, menarik dan sehat).
Saya akan sangat menghargai jika Anda dapat membagikan pemikiran Anda. Dan, tidak ada jawaban benar atau salah untuk pertanyaan ini. Saya hanya ingin tahu, bagaimana semua orang berurusan dengan ini.
Latar Belakang / Sumber pertanyaan:
Saya adalah seorang ilmuwan komputer yang bekerja di bidang analisis gambar, visi komputer, dan pembelajaran mesin dan pertanyaan ini telah di benak saya untuk sementara waktu karena saya telah menghadapi dilema ini berkali-kali setiap kali saya merancang algoritma baru dan saya menemukan diri saya menghabiskan banyak waktu menyetel parameter.
Juga, saya pikir, pertanyaan saya di sini lebih umum untuk area mana pun dalam algoritma komputasi yang sangat terlibat, dan saya ingin mengundang pemikiran orang-orang dari semua bidang yang terkait.
Saya ingin memberi Anda beberapa contoh konkret, hanya agar itu membantu Anda berpikir:
--- Ambil kasus deteksi fitur (misalkan gumpalan melingkar atau poin yang menonjol). Anda menjalankan beberapa filter (parameter kebutuhan) pada skala yang berbeda (parameter skala) dan mungkin ambang respon (parameter ambang batas). Biasanya tidak mungkin untuk mendapatkan groundtruth untuk divalidasi dan karenanya secara otomatis menyetel parameter Anda dalam skenario seperti itu.
--- Ambil kerangka komputasi yang melibatkan banyak komponen pemrosesan sinyal. Selalu ada parameter untuk disetel dan biasanya tidak ada groundtruth dan ketika Anda menyetelnya secara subyektif pada subset acak kecil dari dataset Anda, suatu hari nanti Anda akan menemukan kasus yang tidak digeneralisasikan.
Setan parameter ini lebih merepotkan ketika Anda menetapkan parameter untuk beberapa langkah menengah dalam algoritma Anda.
Dan saya sering menemukan, tidak mungkin untuk melemparkan masalah menemukan nilai yang baik untuk parameter ini sebagai masalah optimasi dengan fungsi objektif yang Anda dapat mengambil turunan dan dengan demikian menggunakan algoritma optimasi standar untuk menemukan nilai yang baik.
Juga, dalam banyak skenario mengekspos parameter ini kepada pengguna akhir bukanlah suatu pilihan, karena kita sering mengembangkan aplikasi / perangkat lunak untuk pengguna akhir non-komputasi (katakanlah ahli biologi, dokter) dan mereka biasanya tidak mengerti ketika Anda meminta mereka untuk menyetel kecuali sangat intuitif (seperti ukuran objek sekitar).
Silakan bagikan pemikiran Anda.
sumber
I want to kick up a discussion ...
adalah indikasi yang sangat baik bahwa apa yang Anda minta tidak cocok untuk format * .SE.Jawaban:
Dengan asumsi bahwa ada adalah kebenaran dasar, ( setidaknya secara teoritis ) salah satu cara yang mungkin untuk mengatasi "tediousness" masalah adalah "bootstrap" penciptaan ground truth. Jika Anda sudah memiliki algoritme yang layak yang berfungsi, katakanlah 80% -90% dari semua kasus, Anda dapat menjalankan algoritme Anda pada sejumlah besar instance dan meminta pengguna untuk hanya menandai kesalahan. Pendekatan ini memiliki kekurangannya sendiri, seperti bias terhadap algoritma Anda.
Namun, ada beberapa kasus di mana tidak ada kebenaran mendasar sama sekali, hanya sistem pertukaran yang berbeda. Misalnya, sistem pemrosesan gambar diperlukan untuk menghasilkan gambar yang tajam, akurat warna, dan tidak berisik. Jelas, Anda tidak dapat memiliki semuanya sekaligus. Dalam hal ini, Anda harus menggunakan metrik objektif yang dapat dihitung berdasarkan hasil sistem Anda. (Lihat Imatest , penganalisa DXO untuk pemrosesan gambar).
Setelah Anda memiliki ini, ada metode optimasi multi-tujuan yang dapat membuat pemetaan dari timbal balik (yang jelas bagi pengguna) ke parameter intrinsik.
Dalam hal apa pun, Anda tidak boleh memberikan parameter kepada pengguna yang tidak dapat ia pahami. Jika semuanya gagal, cukup kode-keras parameternya.
sumber
Ini adalah masalah yang sangat, sangat sulit, tetapi ada banyak pekerjaan di daerah ini. Sebagai satu contoh, lihat makalah ini oleh Ramani & Fessler tentang pendekatan SURE. Pendahuluan memiliki gambaran yang bagus tentang metode pemilihan parameter, pastikan untuk memeriksa referensi mereka.
sumber