Diferenciação de Entropia Cruzada

9

Eu tenho tentado criar um programa para treinar redes neurais no meu computador. Para a rede em questão, decidi usar a função Erro de entropia cruzada:

E=jtjlnoj

Onde é a saída alvo do neurônio e é a saída desse neurônio, tentando prever .tjjojtj

Eu quero saber o que é para alguns neurônios . Minha intuição (mais meu conhecimento limitado de cálculo) me leva a acreditar que esse valor deve ser .δEδojjtjoj

No entanto, isso não parece estar correto. A entropia cruzada é freqüentemente usada em conjunto com a função softmax, de modo que que z é o conjunto de entradas para todos os neurônios na camada softmax ( veja aqui )

oj=ezjkezk

A partir deste arquivo , entendo que:

δojδzj=oj(1oj)

De acordo com esta pergunta : Mas isso entra em conflito com o meu palpite anterior de . Por quê?

δEδzj=tjoj
δEδoj

δEjδzj=δEjδojδojδzj
δEjδoj=δEjδzj÷δojδzj
=tjojoj(1oj)
em contradição direta com a anterior solução de Então, qual (se houver) solução para está correta e por quê?
tjoj
δEjδoj
Geno Racklin Asher
fonte

Respostas:

6

Seu está correto, mas deve ser quando , usando os resultados apresentados na publicação, temos quando portanto o somatório é EojEzj

Ezj=iEoioizj
i=j
Eojojzj=tjojoj(1oj)=tjojtj
ij
oizj=ezikezkzj=ezi(kezk)2ezj=oioj
Eoioizj=tioi(oioj)=tioj
Ezj=iEoioizj=itiojtj
pois é um vetor quente, portanto, também vêem esta pergunta .titi=1
Ezj=ojtj
dontloo
fonte