Saya memiliki masalah klasifikasi di mana piksel akan dilabeli dengan label lunak (yang menunjukkan probabilitas) daripada label 0,1 yang sulit. Sebelumnya dengan 0,1 pixel pelabelan keras fungsi kehilangan entropi silang (sigmoidCross entropyLossLayer dari Caffe) memberikan hasil yang layak. Apakah saya tetap menggunakan lapisan sigmoid cross entropy loss (dari Caffe) untuk masalah klasifikasi lunak ini?
classification
loss-functions
saikat
sumber
sumber
Jawaban:
Jawabannya adalah ya, tetapi Anda harus mendefinisikannya dengan cara yang benar.
Cross entropy didefinisikan pada distribusi probabilitas, bukan pada nilai tunggal. Untuk distribusi diskrithal dan q , ini:
Ketika cross entropy loss digunakan dengan label kelas 'keras', apa yang sebenarnya berarti ini adalah memperlakukanhal sebagai distribusi empiris bersyarat atas label kelas. Ini adalah distribusi di mana probabilitasnya adalah 1 untuk label kelas yang diamati dan 0 untuk semua yang lain.q adalah distribusi kondisional (probabilitas label kelas, input yang diberikan) yang dipelajari oleh classifier. Untuk satu titik data yang diamati dengan inputx0 dan kelas y0 , kita dapat melihat bahwa ekspresi di atas berkurang menjadi hilangnya log standar (yang akan dirata-rata pada semua titik data):
Sini,saya{ ⋅ } adalah fungsi indikator, yaitu 1 ketika argumennya benar atau 0 sebaliknya (inilah yang dilakukan distribusi empiris). Jumlahnya diambil dari set label kelas yang mungkin.
Dalam kasus label 'lunak' seperti yang Anda sebutkan, label itu bukan lagi identitas kelas itu sendiri, tetapi probabilitas atas dua kelas yang mungkin. Karena itu, Anda tidak dapat menggunakan ekspresi standar untuk kehilangan log. Namun, konsep cross entropy masih berlaku. Bahkan, tampaknya lebih alami dalam hal ini.
Mari kita panggil kelasy , yang bisa 0 atau 1. Dan, katakanlah label lunak s ( x ) memberikan probabilitas bahwa kelasnya 1 (diberi input yang sesuai x ). Jadi, label lunak mendefinisikan distribusi probabilitas:
Pengklasifikasi juga memberikan distribusi pada kelas, diberi input:
Sini,c ( x ) adalah probabilitas estimasi classifier bahwa kelasnya adalah 1, diberikan input x .
Tugasnya sekarang adalah untuk menentukan seberapa berbedanya kedua distribusi ini, menggunakan cross entropy. Masukkan ungkapan-ungkapan ini untukhal dan q ke dalam definisi entropi silang, di atas. Jumlahnya diambil dari sekumpulan kelas yang memungkinkan{ 0 , 1 } :
Itulah ungkapan untuk titik data tunggal yang diamati. Fungsi kerugian akan menjadi rata-rata di semua titik data. Tentu saja, ini dapat digeneralisasikan ke klasifikasi multikelas juga.
sumber