Saya berurusan dengan masalah yang berkaitan dengan menemukan gradien fungsi Cross entropy loss wrt parameter dimana:
Dimana, dan adalah input vektor.
Juga, adalah satu vektor panas dari kelas yang benar dan adalah prediksi untuk setiap kelas menggunakan fungsi softmax.
Oleh karena itu, misalnya mari kita miliki dan
Untuk menemukan turunan parsial
Mengambil dari sana untuk masing-masing gradien parsial individu akan
Tapi ini tidak benar karena gradien sebenarnya harus 0 untuk semua baris lain kecuali untuk baris ke-4 karena kami telah menggunakan properti dari satu vektor panas. Jadi gradien aktual seharusnya
Dan karenanya gradien untuk semua seharusnya
Tapi ini tidak sama dengan . Jadi kita tidak boleh menyebut gradien fungsi lintas entropi perbedaan vektor antara diprediksi dan asli.
Bisakah seseorang memperjelas hal ini?
UPDATE: Memperbaiki derivasi saya
Dimana, dan adalah input vektor.
Juga, adalah satu vektor panas dari kelas yang benar dan adalah prediksi untuk setiap kelas menggunakan fungsi softmax.
PEMBARUAN: Menghapus indeks dari dan Oleh karena itu, misalnya mari kita miliki dan
UPDATE: Memperbaiki Saya mengambil turunan wrt seharusnya hanya wrt . Untuk menemukan turunan parsial
Mengambil dari sana untuk masing-masing gradien parsial individu akan
Di atas terjadi karena Dan, Mengambil sebagian turunan dari wrt kita mendapatkan:
LANGKAH UTAMA: Fakta itu dan membuat vektor yang melengkapi buktinya.
sumber
Berikut ini adalah konten yang sama dengan hasil edit, tetapi dalam (untuk saya) format langkah-demi-langkah yang sedikit lebih jelas:
Kami berusaha membuktikan bahwa:
diberikan
dan
Kami tahu ituyj= 0 untuk j ≠ k dan yk= 1 jadi:
Gunakan fakta itu∂θk∂θk= 1
dan ∂θk∂θq= 0 untuk q≠ k , untuk menunjukkan itu.
Untuk bagian kedua kami menulis turunan untuk setiap elemen individuθ dan gunakan aturan rantai untuk mendapatkan:
Karenanya,
sumber