Berhenti lebih awal karena kehilangan validasi atau akurasi?

10

Saat ini saya sedang melatih jaringan saraf dan saya tidak bisa memutuskan mana yang akan digunakan untuk menerapkan kriteria Berhenti Awal saya: kehilangan validasi atau metrik seperti akurasi / f1ccore / auc / apa pun yang dihitung pada set validasi.

Dalam penelitian saya, saya menemukan artikel yang membela kedua sudut pandang tersebut. Keras tampaknya default untuk kehilangan validasi tetapi saya juga menemukan jawaban yang meyakinkan untuk pendekatan yang berlawanan (misalnya di sini ).

Adakah yang memiliki arahan tentang kapan harus menggunakan lebih baik kehilangan validasi dan kapan harus menggunakan metrik tertentu?

qmeeus
sumber

Jawaban:

5

TLDR; Pantau kerugiannya alih-alih keakuratannya

Saya akan menjawab pertanyaan saya sendiri karena saya pikir jawaban yang diterima tidak tepat dan seseorang mungkin memiliki masalah yang sama suatu hari.

Pertama, izinkan saya dengan cepat mengklarifikasi bahwa menggunakan penghentian dini adalah hal yang normal ketika melatih jaringan saraf (lihat bagian yang relevan dalam buku Pembelajaran Jauh Goodfellow et al, sebagian besar makalah DL, dan dokumentasi untuk panggilan balik EarlyStopping yang keras).

Sekarang, mengenai jumlah yang harus dipantau: lebih memilih kerugian daripada keakuratannya. Mengapa? Hilangnya menghitung seberapa pasti model tentang prediksi (pada dasarnya memiliki nilai mendekati 1 di kelas yang tepat dan mendekati 0 di kelas lainnya). Akurasi hanya menjelaskan jumlah prediksi yang benar. Demikian pula, setiap metrik yang menggunakan prediksi keras dan bukan probabilitas memiliki masalah yang sama.

Jelas, metrik apa pun yang Anda pilih akhirnya, harus dihitung pada set validasi dan bukan set pelatihan (jika tidak, Anda benar-benar kehilangan titik menggunakan EarlyStopping di tempat pertama)

qmeeus
sumber
Jika nilainya antara 0 dan 1, cross_entropykerugian adalah kandidat yang lebih disukai daripada MSEatau MAE. Lihat bagian Wrap-Up dari artikel ini , dan posting ini pada statistik .
Esmailian
@Esmailian ini bukan masalah preferensi; untuk masalah klasifikasi , MSE & MAE sama sekali tidak sesuai.
desertnaut
4

Menurut pendapat saya, ini subjektif dan masalah khusus. Anda harus menggunakan apa pun yang merupakan faktor terpenting dalam pikiran Anda sebagai metrik mengemudi, karena ini mungkin membuat keputusan Anda tentang bagaimana mengubah model yang lebih baik fokus.

Sebagian besar metrik yang dapat dihitung akan dikorelasikan / serupa dalam banyak hal: mis. Jika Anda menggunakan MSE untuk kerugian Anda, lalu merekam MAPE (rata-rata persentase kesalahan) atau kerugian sederhana , mereka akan memberi Anda kurva kehilangan yang sebanding.L1

Misalnya, jika Anda akan melaporkan skor-F1 dalam laporan Anda / ke bos Anda, dll. (Dan dengan asumsi itulah yang benar-benar mereka pedulikan), maka menggunakan metrik itu akan sangat masuk akal. Skor F1, misalnya, memperhitungkan ketepatan dan penarikan kembali, yakni skor menggambarkan hubungan antara dua metrik berbutir halus .

Menyatukan semuanya, menghitung skor selain kerugian normal mungkin bagus untuk tinjauan umum dan untuk melihat bagaimana metrik akhir Anda dioptimalkan selama program iterasi pelatihan. Hubungan itu mungkin bisa memberi Anda wawasan yang lebih dalam tentang masalah tersebut,

Namun, biasanya yang terbaik adalah mencoba beberapa opsi, karena mengoptimalkan kehilangan validasi dapat memungkinkan pelatihan berjalan lebih lama, yang pada akhirnya juga dapat menghasilkan skor F1 yang superior . Ketepatan dan daya ingat mungkin bergoyang di sekitar beberapa minimum lokal, menghasilkan skor F1 yang hampir statis - sehingga Anda akan berhenti berlatih. Jika Anda telah mengoptimalkan kerugian murni, Anda mungkin telah mencatat fluktuasi kerugian yang cukup untuk memungkinkan Anda berlatih lebih lama.

n1k31t4
sumber
Mengapa menggunakan kehilangan validasi memungkinkan pelatihan lebih lama daripada menggunakan metrik? Juga, dapatkah Anda menguraikan perbedaan antara dua opsi? Apakah Anda melihat kasus yang merupakan ide buruk untuk menggunakan metrik alih-alih kerugian?
qmeeus
@ id-2205 - silakan lihat jawaban saya yang diedit.
n1k31t4
poin yang menarik! Saat ini saya menggunakan akurasi untuk berhenti lebih awal tetapi saya akan mencoba menggunakan kehilangan validasi. Saya tidak mengharapkan perubahan apa pun dalam proses pelatihan! Terima kasih atas jawaban Anda
qmeeus
1

Saat ini saya sedang melatih jaringan saraf dan saya tidak bisa memutuskan mana yang akan digunakan untuk menerapkan kriteria Berhenti Awal saya: kehilangan validasi atau metrik seperti akurasi / f1ccore / auc / apa pun yang dihitung pada set validasi.

Jika Anda melatih jaringan yang dalam, saya sangat menyarankan Anda untuk tidak menggunakan pemberhentian awal. Dalam pembelajaran yang mendalam, itu tidak terlalu lazim. Sebagai gantinya, Anda dapat menggunakan teknik lain seperti putus sekolah untuk generalisasi dengan baik. Jika Anda bersikeras itu, memilih kriteria tergantung pada tugas Anda. Jika Anda memiliki data yang tidak seimbang, Anda harus menggunakan F1skor dan mengevaluasinya pada data validasi silang Anda. Jika Anda memiliki data yang seimbang, coba gunakan akurasi pada data validasi silang Anda. Teknik lain sangat tergantung pada tugas Anda.

Saya sangat menyarankan Anda untuk menemukan model yang sesuai dengan data Anda dengan baik dan mempekerjakan drop out setelah itu. Ini adalah hal yang paling biasa digunakan orang untuk model yang mendalam.

Media
sumber
2
Saya menggunakan dropout juga. Namun, saya tidak dapat menemukan alasan mengapa berhenti dini tidak boleh digunakan ...
qmeeus
Pemberhentian awal mencoba menyelesaikan masalah pembelajaran dan generalisasi. Di sisi lain putus sekolah hanya berusaha mengatasi masalah generalisasi.
Media
1
Anda tidak menjawab pertanyaan saya ... Saya tidak menyangkal fakta bahwa dropout berguna dan harus digunakan untuk melindungi dari overfitting, saya tidak bisa setuju lebih banyak tentang itu. Pertanyaan saya adalah: mengapa Anda mengatakan bahwa pemberhentian dini tidak boleh digunakan dengan JST? (bandingkan kalimat pertama Anda: Jika Anda melatih jaringan yang dalam, saya sangat menyarankan Anda untuk tidak menggunakan pemberhentian awal.)
qmeeus
Apakah Anda membaca komentar terakhir saya? Persis menjawab pertanyaan Anda. Ini adalah kutipan terkenal dari pr. Ng di kelas belajarnya yang dalam, kursus kedua. Kasus terakhir adalah tugas yang lebih mudah karena tidak berjuang untuk menyelesaikan tugas multple secara bersamaan.
Media
3
Dan untuk menemukannya dan menemukan set hyperparameter yang tepat, saya menggunakan semacam pencarian grid diarahkan dengan berhenti awal untuk alasan yang saya jelaskan di atas. Poin diambil meskipun dan setelah saya memilih model akhir dan saya akan melatihnya, saya tidak akan menggunakan berhenti awal. Terima kasih atas diskusi yang menarik ini dan atas saran Anda
qmeeus