Cómo calcular el gradiente W en una red neuronal

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.

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.

Muchas gracias por la amable ayuda!

Encontré alguna derivada más corta aquí

¡Todo lo mejor!

More Interesting

¿Por qué la precisión del entrenamiento de la red CNN aumenta rápidamente cuando elijo un tamaño de lote relativamente más pequeño?

¿Por qué están recibiendo tanta atención Machine Learning + Big Data?

¿Qué hacen los ingenieros de aprendizaje automático diariamente?

¿Qué tecnologías de IA están disponibles para el reconocimiento del usuario por comportamiento (interacción con el sistema), estilo de escritura, etc. y cómo procedo a hacer una?

¿Cuáles son algunos métodos de aprendizaje automático supervisados ​​y no supervisados ​​para trabajar con conjuntos de datos que tienen características muy grandes y un bajo número de muestras?

Al diseñar nuevas arquitecturas de aprendizaje profundo, ¿cómo se determina si la arquitectura es mala o si la optimización del modelo es el problema?

¿Cómo debo seguir el curso de Andrew NG si quiero aprender el aprendizaje automático en Python y cómo debo progresar después de completar el curso?

Usando TensorFlow, ¿cómo construiría una IA que pueda reconocer patrones en secuencias numéricas y luego transmitir el patrón al usuario? Está destinado a aprender los patrones que le doy de comer.

¿Cómo se pueden usar los modelos ocultos de Markov para reconocer la escritura cursiva?

¿Cuál es una forma intuitiva de explicar los resultados de la PCA?

Cómo crear rápidamente un prototipo de una aplicación de reconocimiento de imágenes utilizando el aprendizaje automático y la red neuronal

¿Alguien tiene experiencia con las patentes de Digital Infuzion en aprendizaje automático y reducción de dimensiones? ¿Qué hace que sus patentes sean especiales?

Mi campo de interés para el doctorado es la visión por computadora, el aprendizaje automático y el procesamiento de imágenes. ¿Qué recursos hay para principiantes con respecto a estos temas? Yo sé Java; ¿Debo aprender otros idiomas primero o puedo comenzar los cursos de inmediato?

¿Qué significa el valor propio de un hessiano en el aprendizaje automático?

¿Cómo superan los modelos de lenguaje neuronal (NLM) la maldición del problema de dimensionalidad para modelar el lenguaje natural?