Estou tentando adicionar uma camada softmax a uma rede neural treinada com retropropagação, então estou tentando calcular seu gradiente.
A saída do softmax é , ondeé o número de neurónios de saída.
Se eu der, então eu recebo
Semelhante à regressão logística. No entanto, isso está errado, pois minha verificação numérica do gradiente falha.
O que estou fazendo errado? Pensei que também precisava calcular as derivadas cruzadas (ou seja, ), mas não tenho certeza de como fazer isso e manter a dimensão do gradiente a mesma para que ela se ajuste ao processo de propagação traseira.