Apa fungsi kerugian yang harus saya gunakan untuk deteksi biner di deteksi wajah / non-wajah di CNN?
11
Saya ingin menggunakan pembelajaran mendalam untuk melatih deteksi biner wajah / non-wajah, kerugian apa yang harus saya gunakan, saya pikir itu adalah SigmoidCrossEntropyLoss atau Hinge-loss .
Apakah itu benar, tetapi saya juga bertanya-tanya apakah saya harus menggunakan softmax tetapi hanya dengan dua kelas?
Apakah itu benar, tetapi saya juga bertanya-tanya apakah saya harus menggunakan softmax tetapi hanya dengan dua kelas?
Softmax bukan kerugian tetapi fungsi normalisasi, itu sering digunakan bersama dengan cross entropy loss, yang pada dasarnya setara dengan SigmoidCrossEntropyLoss. Lihat juga Entri Silang atau Log Kemungkinan di lapisan Output
Secara umum, ketika Anda memiliki masalah di mana sampel hanya dapat milik satu kelas di antara sekumpulan kelas, Anda mengatur lapisan terakhir menjadi lapisan soft-max. Ini memungkinkan Anda untuk menafsirkan output sebagai probabilitas. Ketika menggunakan lapisan soft-max, cross entropy umumnya bekerja dengan sangat baik, karena istilah logaritmik dalam cross-entropy membatalkan dataran tinggi yang ada dalam fungsi soft-max, oleh karena itu mempercepat proses pembelajaran (pikirkan poin yang jauh dari pada fungsi sigmoid).0
Dalam kasus Anda, Anda memiliki tugas klasifikasi biner, oleh karena itu layer output Anda bisa menjadi sigmoid standar (di mana output mewakili probabilitas sampel uji menjadi wajah). Kerugian yang akan Anda gunakan adalah binary cross-entropy. Dengan pengaturan ini, Anda dapat membayangkan memiliki regresi logistik di lapisan terakhir dari jaringan saraf Anda.
Bisakah Anda menjelaskan regresi logistik pada lapisan terakhir DNN? Saya telah membaca posting tetapi tidak dapat benar-benar melihat manfaatnya sigmoid(sebagai aktivasi lapisan terakhir). Terima kasih
bit_scientist
2
Anda pasti dapat menggunakan softmax dengan hanya 2 kelas "Face" dan "Not Face" dan mengartikan output softmax sebagai skor kepercayaan, yang merupakan fitur yang bagus untuk mendapatkan intuisi tentang deep net Anda.
Cobalah softmax 2-kelas dan kehilangan engsel biner. Ada makalah baru-baru ini Belajar Dalam menggunakan Linear Support Vector Machines menggunakan SVM bukan classifier softmax di atas jaring yang dalam dan ada beberapa hasil yang menjanjikan di sana.
Biasanya kerugian logaritmik akan menjadi pilihan yang lebih disukai, digunakan dalam kombinasi dengan hanya satu unit output. Kehilangan logaritmik juga disebut entropi silang biner karena ini merupakan kasus khusus dari entropi silang yang hanya bekerja pada dua kelas.
Secara teoritis, sebuah softmax dengan 2 kelas dapat ditulis ulang sebagai sigmoid, karenanya tidak boleh ada perbedaan dalam hasil antara keduanya. Secara praktis, seperti yang disebutkan @dontloo, jumlah parameter di lapisan output akan menjadi dua kali lipat (tidak yakin apakah ini dapat menyebabkan masalah overfitting), dan tentu saja Anda akan memiliki 2 skor untuk dua kelas (Wajah dan Non_Face).
sigmoid
(sebagai aktivasi lapisan terakhir). Terima kasihAnda pasti dapat menggunakan softmax dengan hanya 2 kelas "Face" dan "Not Face" dan mengartikan output softmax sebagai skor kepercayaan, yang merupakan fitur yang bagus untuk mendapatkan intuisi tentang deep net Anda.
Cobalah softmax 2-kelas dan kehilangan engsel biner. Ada makalah baru-baru ini Belajar Dalam menggunakan Linear Support Vector Machines menggunakan SVM bukan classifier softmax di atas jaring yang dalam dan ada beberapa hasil yang menjanjikan di sana.
sumber
Biasanya kerugian logaritmik akan menjadi pilihan yang lebih disukai, digunakan dalam kombinasi dengan hanya satu unit output. Kehilangan logaritmik juga disebut entropi silang biner karena ini merupakan kasus khusus dari entropi silang yang hanya bekerja pada dua kelas.
sumber
Secara teoritis, sebuah softmax dengan 2 kelas dapat ditulis ulang sebagai sigmoid, karenanya tidak boleh ada perbedaan dalam hasil antara keduanya. Secara praktis, seperti yang disebutkan @dontloo, jumlah parameter di lapisan output akan menjadi dua kali lipat (tidak yakin apakah ini dapat menyebabkan masalah overfitting), dan tentu saja Anda akan memiliki 2 skor untuk dua kelas (Wajah dan Non_Face).
sumber