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=jtjlnoj

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δojjtjoj

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=ezjkezk

De ce fichier , je suppose que:

δojδzj=oj(1oj)

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

δEδzj=tjoj
δEδoj

δEjδzj=δEjδojδojδzj
δEjδoj=δEjδzj÷δojδzj
=tjojoj(1oj)
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
Geno Racklin Asher
la source

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 EojEzj

Ezj=iEoioizj
i=j
Eojojzj=tjojoj(1oj)=tjojtj
ij
ojezj=ezjekezkzj=-ezje(kezk)2ezj=-ojeoj
Eojeojezj=-tjeoje(-ojeoj)=tjeoj
Ezj=jeEojeojezj=jetjeoj-tj
puisque est un - vecteur chaud, donc voir aussi cette question .tjetje=1
Ezj=oj-tj
dontloo
la source