Estou lidando com um problema relacionado à localização do gradiente da função de perda de entropia cruzada no parâmetro que:
Onde, e é uma entrada de vetor.
Além disso, é um vetor quente da classe correta e é a previsão para cada classe usando a função softmax.y
Portanto, por exemplo, vamos ter ey i = ( 0,10 0,20 0,10 0,40 0,20 )
Para encontrar a derivada parcial
A partir daí, para cada os gradientes parciais individuais serão ∂ C E ( θ )
Mas isso não é verdade porque os gradientes devem ser 0 para todas as outras linhas, exceto para a quarta linha, porque usamos a propriedade do vetor quente. Portanto, o gradiente real deve ser
E, portanto, os gradientes para tudo o que deveria ser ∂ C E ( θ )
Mas isso não é igual a . Portanto, não devemos chamar o gradiente da função de entropia cruzada uma diferença de vetor entre o previsto e o original.
Alguém pode esclarecer isso?
UPDATE: Corrigida minha derivação
Onde, e é uma entrada de vetor.θi
Além disso, é um vetor quente da classe correta e é a previsão para cada classe usando a função softmax.y
UPDATE: Removido o índice de ey Portanto, por exemplo, vamos ter ey = ( 0,10 0,20 0,10 0,40 0,20 )
UPDATE: Corrigido: eu estava usando derivada wrt , deveria ser apenas wrt . θ i Para encontrar a derivada parcial
A partir daí, para cada os gradientes parciais individuais serão ∂ C E ( θ )
O que aconteceu acima acontece porque E Tomando a derivada parcial de wrt , obtemos:
PASSO PRINCIPAL: O facto de e cria o vetor que completa a prova.