Saya mencoba menambahkan lapisan softmax ke jaringan saraf yang dilatih dengan backpropagation, jadi saya mencoba menghitung gradiennya.
Output softmax adalah mana adalah nomor neuron output.
Jika saya mendapatkannya maka saya mendapatkannya
Mirip dengan regresi logistik. Namun ini salah karena pemeriksaan gradien numerik saya gagal.
Apa yang saya lakukan salah? Saya punya pemikiran bahwa saya perlu menghitung turunan silang juga (yaitu ) tapi saya tidak yakin bagaimana melakukan ini dan menjaga dimensi gradien sama sehingga akan cocok untuk proses propagasi kembali.
Jawaban:
Saya merasa agak buruk tentang memberikan jawaban saya sendiri untuk ini karena cukup baik ditangkap oleh amuba dan juampa, kecuali mungkin intuisi terakhir tentang bagaimana Jacobian dapat direduksi kembali menjadi vektor.
Anda dengan benar mendapatkan gradien diagonal dari matriks Jacobian, yang artinya
dan seperti yang dinyatakan amuba, Anda juga harus menurunkan entri diagonal dari Jacobian, yang menghasilkan
Kedua konsep definisi ini dapat dengan mudah digabungkan menggunakan konstruksi yang disebut Kronecker Delta , sehingga definisi gradien menjadi
Jadi Jacobian adalah matriks persegi[ J]saya j= hsaya( δsaya j- hj)
Semua informasi hingga saat ini sudah dicakup oleh amuba dan juampa. Masalahnya tentu saja, bahwa kita perlu mendapatkan kesalahan input dari kesalahan output yang sudah dihitung. Karena gradien kesalahan output tergantung pada semua input, maka gradien input x i adalah∇ hsaya xsaya
Mengingat matriks Jacobian didefinisikan di atas, ini diimplementasikan sepele sebagai produk dari matriks dan vektor kesalahan output:
Jika lapisan softmax adalah lapisan keluaran Anda, maka menggabungkannya dengan model biaya lintas-entropi menyederhanakan perhitungan menjadi hanya
di mana adalah vektor label, dan → h adalah output dari fungsi softmax. Tidak hanya bentuk yang disederhanakan nyaman, tetapi juga sangat berguna dari sudut pandang stabilitas numerik.t⃗ h⃗
sumber
Derivatif salah. Harus,
Perhatikan, bahwa t adalah konstan. Oleh karena itu meminimalkan fungsional ini setara dengan meminimalkan,
yang memiliki keuntungan bahwa Jacobian mengambil bentuk yang sangat nyaman, yaitu,
Saya akan merekomendasikan Anda untuk mendapatkan salinan Neural Networks untuk Pengenalan Pola . IMHO masih buku terbaik di jaringan saraf.
sumber
sumber