Diferensiasi Lintas Entropi

9

Saya telah mencoba membuat program untuk melatih Neural Networks di komputer saya. Untuk Jaringan yang dimaksud, saya telah memutuskan untuk menggunakan fungsi Cross Entropy Error:

E=jtjlnoj

Di mana adalah output target untuk Neuron , dan adalah output dari neuron itu, mencoba untuk memprediksi .tjjojtj

Saya ingin tahu apa untuk sebagian Neuron . Intuisi saya (ditambah pengetahuan saya yang terbatas tentang kalkulus) membuat saya percaya bahwa nilai ini seharusnya .δEδojjtjoj

Namun, ini sepertinya tidak benar. Cross Entropy sering digunakan bersama dengan fungsi softmax, sehingga mana z adalah himpunan input untuk semua neuron dalam lapisan softmax ( lihat di sini ).

oj=ezjkezk

Dari file ini , saya kumpulkan bahwa:

δojδzj=oj(1oj)

Menurut pertanyaan ini : Tapi ini bertentangan dengan tebakan saya sebelumnya tentang . Mengapa?

δEδzj=tjoj
δEδoj

δEjδzj=δEjδojδojδzj
δEjδoj=δEjδzj÷δojδzj
=tjojoj(1oj)
bertentangan langsung dengan saya sebelumnya solusi Jadi solusi (jika salah) mana untuk benar, dan mengapa?
tjoj
δEjδoj
Geno Racklin Asher
sumber

Jawaban:

6

Anda adalah benar, tetapi harus ketika , menggunakan hasil yang diberikan dalam pos yang kita miliki ketika jadi adalah EojEzj

Ezj=iEoioizj
i=j
Eojojzj=tjojoj(1oj)=tjojtj
ij
oizj=ezikezkzj=ezi(kezk)2ezj=oioj
Eoioizj=tioi(oioj)=tioj
Ezj=iEoioizj=itiojtj
karena adalah satu- vektor panas, karena itu juga melihat pertanyaan ini .titi=1
Ezj=ojtj
dontloo
sumber