Está en la página 1de 34

Como aprende una red neuronal

Corte de presupuesto- invierno a la I.A.


Como aprende una red reuronal

Una solo neurona tiene forma lineal …


Backpropagation
ejemplo
Debemos ir hacia atras
Las Matemáticas de Backpropagation

 Porque se utiliza el algoritmo de Backpropagation


 Se utiliza como un método para calcular las derivadas parciales de cada uno
de los parámetros de nuestra red con respecto al coste, esto se lo hace para
optimizar el coste de la red neuronal haciendo uso del algoritmo del descenso
del gradiente.
 Para el cual se necesita el vector gradiente
 El vector no deja de ser un vector con las derivadas parciales de los
parámetros con respecto al coste y las derivadas parciales no las da el
algoritmo de Backpropagation
Backpropagation y descenso del
gradiente
 Un grafo no cíclico direccional
Backpropagation y descenso del
gradiente
 Ejemplo
 Suponiendo que en un trimestre se dio un mal resultado y le llega la
información al jefe de la empresa y de ahí comenzara llamar la atención por
los errores cometidos, a los jefes de menor rango

 Jefe de la empresa
 Alto directivo
 Director medio
 Jefe de departamento
 Operarios
Backpropagation y descenso del
gradiente
 Cada uno de los 5 niveles tendrá que rendir cuenta del porque los errores en
la empresa y las responsabilidades de los malos resultados, el cual pasara el
reporte que se le pasara al departamento de recursos humanos, ese reporte
será el gradiente de nuestro modelo
 El proceso que se saco del ejemplo es el algoritmo de Backpropagation
Backpropagation y descenso del
gradiente
 El departamento de recursos humanos le informara al jefe de la empresa la
responsabilidad de las perdidas de cada persona
 El departamento de recursos humano lo lea e indicara tal trabajador tuvo tal
responsabilidad en estas perdidas. Posteriormente el departamento de
recursos humano
 Despido
 Modificar su comportamiento
 En ahí el departamento de recursos humanos estaría operando en la labor del
descenso del gradiente
Formulación Matemática

La red neuronal tiene sus parámetros inicializados de forma aleatoria


Significando que para un input cualquiera el resultado es aleatorio el cual cuando
se lo compare con un valor real se vera que la predicción esta errónea
¿Como varia un valor ante un cambio del
parámetro “W”?
𝜕𝐶 𝐷𝑒𝑟𝑖𝑣𝑎𝑑𝑎 𝑑𝑒𝑙 𝑐𝑜𝑠𝑡𝑒
𝜕𝑊 𝐷𝑒𝑟𝑖𝑣𝑎𝑑𝑎 𝑑𝑒𝑙 𝑝𝑎𝑟𝑎𝑚𝑒𝑡𝑟𝑜 𝑑𝑒 𝑙𝑎 𝑟𝑒𝑑
En una red neuronal hay dos tipos de parámetros los pesos “w” y el termino de
sesgo o bayas “b”
¿Como varia un valor ante un cambio del
parámetro “W”?
 Se tendrá que calcular dos tipos diferentes de derivadas parciales
𝜕𝐶 𝜕𝐶
𝜕𝑊 𝜕𝑏

 Posteriormente se comenzara a trabajar hacia atrás


¿Como varia un valor ante un cambio del
parámetro “W”?
 Se empezara a calcular la derivada parcial de la ultima capa
 Estas son
las derivadas para
la ultima capa

𝜕𝐶 𝜕𝐶
𝜕𝑏𝐿 𝜕𝑤 𝐿

L capas
Como se lo calcula

 Para calcular la derivada es necesario indicar cual es el camino que conecta


el valor del parámetro y el coste final

Derivadas de la ultima capa


Como se lo calcula

 Derivadas de la ultima capa se lo denomina z es la suma ponderada de los


parámetros
 𝑍 𝐿 = 𝑊 𝐿 X + 𝑏𝐿
 Luego se lo pasa por la función de activación “a”
C ( 𝑎( 𝑍 𝐿 ) ) = ERROR
RESULTADO DE LA SUMA PONDERADA
FUNCION DE ACTIVACION
FUNCION DE COSTE
Como se lo calcula

C ( 𝑎( 𝑍 𝐿 ) ) = ERROR
También llamada composición de funciones
Para calcular la derivada de una composición de funciones se utilizara la
herramienta de calculo “CHAIN RULE” (regla de la cadena)
Ejemplo: una liebre es 3 veces mas rápido que un perro, un perro es 5 veces mas
rápido que una tortuga ¿Cuántas veces es mas rápido la liebre que la tortuga?
Como se lo calcula

 Chain rule que la derivada de la composición de funciones es:


Como se lo calcula

 Para el caso de las redes neuronales se debe de calcular las derivas por
 “Chain Rules”
𝜕𝐶 𝜕𝐶 𝜕𝑎𝐿 𝜕𝑧 𝐿
 = ∙ ∙
𝜕𝑤 𝐿 𝜕𝑎𝐿 𝜕𝑧 𝐿 𝜕𝑤 𝐿

𝜕𝐶 𝜕𝐶 𝜕𝑎𝐿 𝜕𝑧 𝐿
 𝐿 = ∙ ∙
𝜕𝑏 𝜕𝑎𝐿 𝜕𝑧 𝐿 𝜕𝑏𝐿

 𝑍𝐿 = 𝑊 𝐿 𝑎𝐿−1 + 𝑏 𝐿 C ( 𝑎( 𝑍 𝐿 ) )
Como se lo calcula

 Derivada de la activación respecto al coste con respecto al output de la red


neuronal

𝜕𝐶
𝜕𝑎𝐿
Función de coste
Error cuadrático medio
1 2
𝑐 𝑎j𝐿 = ෍∙ 𝑦𝑖 − 𝑎j𝐿
2
𝑗
𝜕𝐶 𝐿
𝐿 = (𝑎j −𝑦𝑖 )
𝜕𝑎j
Como se lo calcula

 Como varia el output de la neurona cuando variamos la suma ponderada de la


neurona
FUNCIÓN DE ACTIVACIÓN
“SIGMOIDE”
1
𝑎𝐿 (𝑧 𝐿 ) = −𝑧 𝐿
1+ 𝑒
𝜕𝑎𝐿
= 𝑎𝐿 (𝑧 𝐿 ) ∙ (1 − 𝑎𝐿 (𝑧 𝐿 ))
𝜕𝑧 𝐿
Como se lo calcula

 Posteriormente para la derivada del parámetro


DERIVANDO LA SUMA PONDERADA

𝑧 𝐿 = ෌𝑖∙ 𝑎𝑖𝐿−1 𝑊𝑖𝐿 +𝑏 𝐿


𝜕𝑧 𝐿 𝜕𝑧 𝐿
=1 = 𝑎𝑖𝐿−1
𝜕𝑏𝐿 𝜕𝑤 𝐿
Como se lo calcula

 Finalmente se tiene el valor de:

𝜕𝐶 𝜕𝐶 𝜕𝑎𝐿 𝜕𝑧 𝐿
 = ∙ 𝐿 ∙
𝜕𝑤 𝐿 𝜕𝑎𝐿 𝜕𝑧 𝜕𝑤 𝐿

𝜕𝐶 𝜕𝐶 𝜕𝑎𝐿 𝜕𝑧 𝐿
 = ∙ 𝐿 ∙
𝜕𝑏𝐿 𝜕𝑎𝐿 𝜕𝑧 𝜕𝑏𝐿

𝜕𝑎𝐿 𝜕𝐶 𝐿 𝜕𝑧 𝐿 𝜕𝑧 𝐿
 = 𝑎𝐿 (𝑧 𝐿 ) ∙ (1 − 𝑎𝐿 (𝑧 𝐿 )) = (𝑎j −𝑦𝑖 ) 𝐿 =1 = 𝑎𝑖𝐿−1
𝜕𝑧 𝐿 𝜕𝑎j𝐿 𝜕𝑏 𝜕𝑤 𝐿
Como se lo calcula

 Finalmente se tiene el valor de:

𝜕𝐶 𝜕𝐶 𝜕𝑎𝐿 𝜕𝑧 𝐿
 = ∙ ∙
𝜕𝑤 𝐿 𝜕𝑎𝐿 𝜕𝑧 𝐿 𝜕𝑤 𝐿

𝜕𝐶
𝜕𝑧 𝐿

la responsabilidad de la neurona en el resultado final


“ERROR IMPUTADO A LA NEURONA”
𝛿𝐿
Como se lo calcula

 Reestructurando la ecuación
1
𝜕𝐶 𝐿 𝜕𝑧 𝐿
 =𝛿 ∙
𝜕𝑤 𝐿 𝜕𝑏𝐿

𝑎𝑖𝐿−1
𝜕𝐶 𝐿 𝜕𝑧 𝐿
 𝐿 =𝛿 ∙
𝜕𝑏 𝜕𝑤 𝐿
DERIVADA DE FUNCION DEL COSTE

COMO CALCULAR LOS ERRORES EN LA ULTIMA CAPA


𝐿 𝜕𝐶 𝜕𝑎𝐿
𝛿 = 𝐿∙ 𝐿 Derivada de la función de activación
𝜕𝑎 𝜕𝑧
DERIVADAS PARCIALES
𝜕𝐶 𝐿
= 𝛿
𝜕𝑏𝐿

𝜕𝐶
= 𝛿 𝐿 𝑎𝑖𝐿−1
𝜕𝑤 𝐿
Algoritmo de Backpropagation

𝜕𝐶 𝜕𝑎 𝐿
𝛿𝐿 = 𝐿 ∙ 𝐿
𝜕𝑎 𝜕𝑧

𝜕𝐶
= 𝛿𝐿
𝜕𝑏𝐿

𝜕𝐶 𝐿 𝑎 𝐿−1
= 𝛿 𝑖
𝜕𝑤 𝐿

? ? ? ? =? ? ? ? ? ? ?
Algoritmo de Backpropagation
𝛿𝐿 𝑤𝐿 𝑎𝐿−2
𝜕𝐶 𝜕𝐶 𝜕𝑎𝐿 𝜕𝑧 𝐿 𝜕𝑎𝐿−1 𝜕𝑧 𝐿−1
 = ∙ ∙ ∙ ∙
𝜕𝑤 𝐿−1 𝜕𝑎𝐿 𝜕𝑧 𝐿 𝜕𝑎𝐿−1 𝜕𝑧 𝐿−1 𝜕𝑤 𝐿−1
1
𝜕𝐶 𝜕𝐶 𝜕𝑎𝐿 𝜕𝑧 𝐿 𝜕𝑎𝐿−1 𝜕𝑧 𝐿−1
 𝐿−1 = ∙ ∙ ∙ ∙
𝜕𝑏 𝜕𝑎𝐿 𝜕𝑧 𝐿 𝜕𝑎𝐿−1 𝜕𝑧 𝐿−1 𝜕𝑏𝐿−1
 Derivada de la función de activación

Aplicamos la “CHAIN RULE” a esta composición

C (𝑎𝐿 (𝑤 𝐿 𝑎𝐿−1 𝑤 𝐿−1 𝑎𝐿−2 + 𝑏 𝐿−1 + 𝑏 𝐿 ) )


Lo que logra
 Básicamente lo que hace es mover el error a una capa anterior distribuyendo
el error en función de las ponderaciones
Lo que logra
𝛿𝐿 𝑤𝐿 𝑎𝐿−2
𝜕𝐶 𝜕𝐶 𝜕𝑎𝐿 𝜕𝑧 𝐿 𝜕𝑎𝐿−1 𝜕𝑧 𝐿−1
 = ∙ ∙ ∙ ∙
𝜕𝑤 𝐿−1 𝜕𝑎𝐿 𝜕𝑧 𝐿 𝜕𝑎𝐿−1 𝜕𝑧 𝐿−1 𝜕𝑤 𝐿−1
1
𝜕𝐶 𝜕𝐶 𝜕𝑎𝐿 𝜕𝑧 𝐿 𝜕𝑎𝐿−1 𝜕𝑧 𝐿−1
 𝐿−1 = ∙ ∙ ∙ ∙
𝜕𝑏 𝜕𝑎𝐿 𝜕𝑧 𝐿 𝜕𝑎𝐿−1 𝜕𝑧 𝐿−1 𝜕𝑏𝐿−1

𝜕𝐶
 = 𝛿 𝐿−1
𝜕𝑧 𝐿−1
Lo que obtenemos es

1. Computo del error de la ultima capa


𝜕𝐶 𝜕𝑎 𝐿
𝛿𝐿 = 𝐿 ∙ 𝐿
𝜕𝑎 𝜕𝑧
2. Retro programamos el error a la capa anterior
𝜕𝑎 𝑙−1
𝛿 𝑙−1 = 𝑤 𝑙 𝛿 𝑙 ∙ 𝑙−1
𝜕𝑧
3. Calculamos las derivadas de la capa usando el error
𝜕𝐶 𝜕𝐶
= 𝛿 𝑙−1 = 𝛿 𝑙−1 𝑎𝑙−2
𝜕𝑏 𝑙−1 𝜕𝑤 𝑙−1

para calcular el algoritmo de Backpropagation solo se deriva cuatro expresiones

También podría gustarte