Implementar softmax_layer
La siguiente imagen es el diagrama de cálculo de Softmax en el material didáctico del profesor Li Hongyi. La salida de la neurona también se puede usar para predecir la probabilidad de la primera categoría, es el valor verdadero de la primera categoría y solo puede tomar 0 o 1, y.
Después de agregar Softmax a la red neuronal, la etiqueta real (o categoría) es equivalente a la distribución real, y el valor calculado por Softmax es el resultado de la predicción, por lo que la función de entropía cruzada se puede utilizar como la función de pérdida.
La función de pérdida de Softmax es
El proceso de retropropagación es en realidad un proceso de cálculo, según la derivada de la regla de la cadena:
Según el avance Proceso de cálculo:
Cuándo es el tiempo
Cuándo es el tiempo
Según el tiempo de derivación
Según el tiempo de derivación
Combinando estas dos derivadas parciales, introduce lo siguiente:
Nota: Porque si te dan una muestra, entonces su etiqueta real correspondiente tiene un solo valor, y es igual el resto de la época.
Implementación del cálculo directo
Primero llame a softmax_cpu para implementar el cálculo directo y luego llame a softmax_x_ent_cpu para calcular el valor de la función de pérdida de toda la red y el valor de sensibilidad de la capa actual, es decir es, l.delta.
La implementación específica es muy simple, que consiste en calcular el valor del índice paso a paso de acuerdo con la fórmula anterior, luego resumirlo y finalmente normalizarlo.
La siguiente implementación calcula el valor delta[i] como el valor verdadero menos el valor previsto, mientras que la derivación anterior da como resultado el valor previsto menos el valor verdadero. ¿Por qué es esto posible?
Implementación de retropropagación
El mapa de gradiente de sensibilidad de softmax se ha calculado en la inferencia directa de softmax, por lo que en la retropropagación, solo necesita llamar a axpy_cpu para transferir el valor de la posición correspondiente. Sólo regresa.
1 http://freemind.pluskid.org/machine-learning/softmax-vs-softmax-loss-numerical-stability/
2 Muestra Softmax y la pérdida de entropía cruzada funciones Diagrama esquemático
3 funciones Softmax con entropía cruzada