Différenciation d'entropie croisée


9

J'ai essayé de créer un programme pour former des réseaux neuronaux sur mon ordinateur. Pour le réseau en question, j'ai décidé d'utiliser la fonction Cross Entropy Error:

E=−∑jtjln⁡oj

Où est la sortie cible pour le neurone , et est la sortie de ce neurone, essayant de prédire .tjjojtj

Je veux savoir ce que est pour certains Neuron . Mon intuition (plus ma connaissance limitée du calcul) me porte à croire que cette valeur devrait être .δEδojj−tjoj

Cependant, cela ne semble pas être correct. L'entropie croisée est souvent utilisée en tandem avec la fonction softmax, telle que où z est l'ensemble des entrées de tous les neurones de la couche softmax ( voir ici ).

oj=ezj∑kezk

De ce fichier , je suppose que:

δojδzj=oj(1−oj)

Selon cette question : Mais cela contredit ma supposition précédente de . Pourquoi?

δEδzj=tj−oj
δEδoj

δEjδzj=δEjδojδojδzj
⇒δEjδoj=δEjδzj÷δojδzj
=tj−ojoj(1−oj)
en contradiction directe avec mon précédent solution de Alors quelle (le cas échéant) solution de est correcte, et pourquoi?
−tjoj
δEjδoj

Réponses:


6

Votre est correct, mais doit être lorsque , en utilisant les résultats donnés dans le message, nous avons lorsque donc la sommation est ∂E∂oj∂E∂zj

∂E∂zj=∑i∂E∂oi∂oi∂zj
i=j
∂E∂oj∂oj∂zj=−tjojoj(1−oj)=tjoj−tj
i≠j
∂oje∂zj=∂ezje∑kezk∂zj=-ezje(∑kezk)2ezj=-ojeoj
∂E∂oje∂oje∂zj=-tjeoje(-ojeoj)=tjeoj
∂E∂zj=∑je∂E∂oje∂oje∂zj=∑jetjeoj-tj
puisque est un - vecteur chaud, donc voir aussi cette question .t∑jetje=1
∂E∂zj=oj-tj
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.