Apa fungsi kerugian yang harus saya gunakan untuk deteksi biner di deteksi wajah / non-wajah di CNN?


Jawaban:


9

Kehilangan engsel dan cross entropy umumnya ditemukan memiliki hasil yang sama. Berikut ini postingan lain yang membandingkan fungsi kerugian yang berbeda. Apa dampak dari memilih fungsi kerugian yang berbeda dalam klasifikasi untuk memperkirakan kerugian 0-1 .

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


7

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.

Berikut beberapa tautan untuk Anda. Semoga mereka bisa membantu.
https://en.wikipedia.org/wiki/Cross_entropy#Cross-entropy_error_function_and_logistic_regress
http://neuralnetworksanddeeplearning.com/chap3.html
https://www.quora.com/How-do-you-decide-which-loss- fungsi-untuk-digunakan-untuk-mesin-belajar


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.


2

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.


Anda harus memperbarui tautan pertama Anda.
nbro

0

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).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.