La parte difícil aquí es saber que para una función de activación softmax cada salida [math] y_ {i} [/ math] afecta a todas las demás salidas. Veamos algunos cálculos.
Se entiende que la capa está realizando una transformación como.
[matemáticas] z = x ^ {T} * w [/ matemáticas] – transformación lineal.
- ¿La correlación entre dos variables cuenta como evidencia débil de un vínculo causal entre ellas?
- ¿Para qué se utiliza el aprendizaje automático?
- ¿Cuál es un buen lugar para comenzar a trabajar en el uso del aprendizaje automático para el modelado de riesgo de crédito?
- ¿Dónde puedo encontrar el algoritmo para encontrar los otros nombres de la entidad popular?
- ¿Cuáles fueron los algoritmos utilizados para los chatbots antes de que surgiera el aprendizaje profundo?
donde [math] x [/ math] = vector de fila de entrada y [math] w [/ math] = matriz de peso.
NOTA: Aquí la entrada de sesgo de 1 se agrega a [math] x [/ math].
Entonces la salida se calcula como
[matemáticas] y = \ varphi (z) [/ matemáticas]
Donde la activación [math] \ varphi [/ math] es una operación basada en elementos en el vector de fila [math] z [/ math].
Entonces, lo que queremos es la derivada de un peso [matemática] {w ^ j} _ {n} [/ matemática] wrt a la función de pérdida [matemática] L [/ matemática], que en este caso es la función de pérdida de bisagra.
Donde [matemática] j [/ matemática] = índice de neurona, [matemática] n [/ matemática] = índice de peso
Entonces necesitamos evaluar.
[matemática] \ frac {\ parcial {L}} {\ parcial {{w ^ j} _ {n}}} [/ matemática]
Y usando la regla de la cadena tenemos:
[matemáticas] \ frac {\ partial {L}} {\ partial {{w ^ j} _ {n}}} = \ sum \ limits_ {i} ^ k {\ frac {\ partial {y_ {i}}} {\ partial {{w ^ j} _ {n}}} \ frac {\ partial {L}} {\ partial {y_ {i}}}} [/ matemáticas]
Para salidas [math] k [/ math].
Como en la mayoría de las aplicaciones las salidas no se ven afectadas por otras salidas, entonces las derivadas para [math] i \ ne j [/ math] son cero en esos casos. Entonces, la expresión anterior para esos casos se contrae en una forma simplificada común.
[matemáticas] \ frac {\ partial {L}} {\ partial {{w ^ j} _ {n}}} = \ frac {\ partial y_ {j}} {\ partial {{w ^ j} _ {n }}} \ frac {\ partial L} {\ partial y_ {j}} [/ math]
Esta es normalmente la parte confusa, por lo que para un softmax usamos la expresión general anterior y después de algunas reglas de cadena más tenemos.
[matemáticas] \ suma \ límites_ {i} ^ k {\ frac {\ partial z_ {j}} {\ partial {w ^ j} _ {n}} \ frac {\ partial y_ {i}} {\ partial z_ {j}} \ frac {\ partial L} {\ partial y_ {i}}} [/ math]
Factoriza el término común para obtener.
[matemáticas] \ frac {\ partial z_ {j}} {\ partial {w ^ j} _ {n}} {\ sum \ limits_ {i} ^ k {\ frac {\ partial y_ {i}} {\ partial z_ {j}} \ frac {\ partial L} {\ partial y_ {i}}}} [/ math]
Entonces tenemos 3 derivadas parciales [matemáticas] p_1 [/ matemáticas], [matemáticas] p_ {2i} [/ matemáticas] y [matemáticas] p_ {3i} [/ matemáticas] que podemos evaluar fácilmente ahora.
Dejar
[matemática] p_1 = \ frac {\ partial {z_ {j}}} {\ partial {{w ^ j} _ {n}}} [/ matemática]
[matemática] p_ {2i} = \ frac {\ partial {y_ {i}}} {\ partial {z_ {j}}} [/ matemática]
[matemáticas] p_ {3i} = \ frac {\ partial {L}} {\ partial {y_ {i}}} [/ matemáticas]
Por lo tanto
[matemáticas] \ frac {\ partial {L}} {\ partial {{w ^ j} _ {n}}} = p_1 \ sum \ limites_ {i} ^ k {p_ {2i} p_ {3i}} [/ matemáticas]
[matemáticas] p_1 = x_ {n} [/ matemáticas]
[matemáticas] p_ {2i} [/ matemáticas] = derivada de activación
[matemática] p_ {3i} [/ matemática] = derivada de la función de pérdida.
Espero que esto ayude.