Backpropagation (Retropropagación)
Summary
TLDRLa transcripción ofrece una sesión educativa sobre la retropropagación, un método fundamental en el entrenamiento de redes neuronales profundas. Se destaca su importancia desde su invención en los años 70 hasta su adopción por Joffrey Hinton en 1986 para redes con múltiples capas. La sesión abarca la aplicación del método de descenso por gradiente, la utilización de la regla de la cadena para calcular derivadas y el proceso de actualización de pesos en una red neuronal. Además, se profundiza en el cálculo del término de error y la regla de Delta, ilustrando cómo estos conceptos se aplican en capas sucesivas de una red. La discusión también contempla la generalización del proceso para múltiples neuronas y la implementación del algoritmo de retropropagación en un entorno de aprendizaje supervisado. Finalmente, se subraya la relevancia de comprender estos conceptos para no depender exclusivamente de frameworks y poder innovar en el campo del aprendizaje automático.
Takeaways
- 📚 La retropropagación es un método fundamental en las redes neuronales que permite entrenar redes profundas con miles a millones de parámetros.
- 🔁 El método de retropropagación fue inventado en los 70s y su uso para entrenar redes neuronales de varias capas fue propuesto por Joffrey Hinton en 1986.
- 🤖 La retropropagación utiliza el descenso por gradiente para ajustar los pesos de las redes, mejorando las predicciones a través de la minimización del error.
- 📉 Se calcula un término de error, Delta, que indica cómo se deben ajustar los pesos para reducir el error en la capa de salida.
- 🔄 El proceso de retropropagación implica calcular y reutilizar términos de error (Delta) para actualizar pesos en capas sucesivas de la red.
- 🔢 La regla de la cadena se aplica para calcular derivadas de funciones compuestas, lo que es esencial para el cálculo de Delta en capas ocultas.
- 📈 El learning rate es una tasa de aprendizaje que se multiplica por Delta y la entrada correspondiente para actualizar los pesos.
- 🔽 El objetivo del método de descenso por gradiente es encontrar los pesos que minimizan el error, mejorando así las predicciones de la red.
- 📋 La retropropagación se extiende desde la capa de salida hacia las capas ocultas, permitiendo actualizar todos los pesos de la red.
- 💡 El conocimiento de la retropropagación es crucial para comprender cómo funcionan los algoritmos de aprendizaje automático y para poder implementarlos o mejorarlos.
- 📋 Aprender retropropagación permite no depender únicamente de frameworks como Keras o PyTorch,增深理解 y potencialmente crear métodos más eficientes.
Q & A
¿Qué es la retropropagación en las redes neuronales?
-La retropropagación es un método fundamental en las redes neuronales que permite entrenar redes profundas. Se trata de un algoritmo que calcula las derivadas numéricas de la función de error con respecto a los parámetros de la red, permitiendo así actualizar los pesos para minimizar el error.
¿Cómo surgió el método de retropropagación?
-El método de retropropagación fue inventado en los años 70 por un científico cuyo nombre se menciona de manera imprecisa en el script, pero que podría ser Paul J. Werbos. Originalmente, el enfoque no estaba en la computación o en métodos de aprendizaje profundo, sino en obtener derivadas numéricas. Más tarde, en 1986, un equipo liderado por Geoffrey Hinton propuso su uso para entrenar redes neuronales de varias capas.
¿Por qué es importante el método de retropropagación en el aprendizaje automático?
-El método de retropropagación es crucial en el aprendizaje automático porque permite entrenar redes neuronales con muchas capas y millones de parámetros. Permite actualizar los pesos de la red de manera efectiva, lo que es esencial para que las redes aprendan de los datos y realicen predicciones precisas.
¿Cómo funciona el método de descenso por gradiente en el contexto de las redes neuronales?
-El método de descenso por gradiente se utiliza para encontrar los pesos que minimizan el error de predicción de una red neuronal. Consiste en calcular la tasa de cambio del error con respecto a los pesos y actualizar los pesos en la dirección opuesta al gradiente, con el objetivo de reducir el error. Se utiliza una tasa de aprendizaje para controlar el tamaño de los pasos en el espacio de pesos.
¿Qué es el término de error en el contexto de la retropropagación?
-El término de error, también conocido como el término delta, es una medida que indica cuánto está desviando la salida de la red neuronal de los valores objetivos. Se calcula como la derivada del error con respecto a la salida de la red y es esencial para actualizar los pesos de la red en el proceso de retropropagación.
¿Cómo se calcula el término de error para una capa oculta en una red neuronal?
-Para calcular el término de error para una capa oculta, se utiliza el término de error de la capa superior multiplicado por la conexión que se tiene hacia esa capa oculta y por la derivada de la función de activación de la capa oculta. Esto permite propagar el error hacia atrás a través de la red y actualizar los pesos de las capas ocultas.
¿Por qué es importante comprender el proceso de retropropagación si existen frameworks como Keras o TensorFlow?
-Comprender el proceso de retropropagación es importante porque permite a los estudiantes y profesionales entender cómo funcionan las redes neuronales a nivel fundamental. Esta comprensión es crucial para poder implementar sus propias soluciones, optimizar el rendimiento de las redes, o desarrollar nuevos métodos de aprendizaje automático. Aunque los frameworks facilitan el entrenamiento de redes neuronales, la comprensión detrás de ellos es esencial para el crecimiento profesional y la innovación en el campo.
¿Cómo se realiza la actualización de los pesos en una red neuronal durante la retropropagación?
-Durante la retropropagación, los pesos se actualizan calculando el incremento, que es proporcional al producto de la tasa de aprendizaje, el término de error correspondiente y la entrada de la neurona. Este incremento se sustracta de los pesos existentes para obtener los nuevos pesos que minimizan el error.
¿Qué es la regla de la cadena en el contexto de la derivación en las redes neuronales?
-La regla de la cadena es una técnica matemática utilizada para calcular la derivada de una función compuesta. En el contexto de las redes neuronales, se aplica para calcular las derivadas del error con respecto a los pesos a partir de las derivadas de las funciones de activación y las conexiones entre las neuronas.
¿Cómo se generaliza el proceso de retropropagación para redes neuronales con múltiples capas?
-El proceso de retropropagación se generaliza para redes con múltiples capas calculando el término de error para cada capa, empezando por la capa de salida y propagando el error hacia atrás a través de la red. Para cada capa oculta, se calcula un término de error que depende del término de error de la capa superior, las conexiones y las funciones de activación. Estos términos de error se utilizan para actualizar los pesos en cada capa.
¿Cuál es el propósito del forward pass en el proceso de aprendizaje de una red neuronal?
-El forward pass es el proceso por el cual los datos se propagan desde la capa de entrada hacia la capa de salida a través de las capas ocultas. Este proceso es esencial para generar una predicción o salida de la red neuronal. Una vez que se tiene la salida, se puede calcular el error utilizando una métrica de error y, posteriormente, utilizar esta información en el proceso de retropropagación para actualizar los pesos de la red.
Outlines
😀 Introducción a la retropropagación en redes neuronales
Se presenta la retropropagación como un método fundamental en el entrenamiento de redes neuronales profundas. Se destaca su importancia comparada con el método de descenso por gradiente, que es limitado a una sola capa. La retropropagación fue inventada en los 70s y se adoptó en 1986 por Joffrey Hinton para redes neuronales multicapas, permitiendo el entrenamiento de redes con miles a millones de parámetros.
🔍 Funcionamiento de la retropropagación y ajuste de pesos
Se describe el proceso de aprendizaje supervisado en redes neuronales, donde se busca ajustar los pesos para minimizar el error entre las predicciones y los valores objetivos. Se utiliza la métrica de error para medir el desempeño y el método de descenso por gradiente para actualizar los pesos. Se introduce el concepto de tasa de aprendizaje y se menciona la regla de delta para actualizar los pesos en capas ocultas y de salida.
🤖 Ejemplo de retropropagación en una red neuronal simple
Se ilustra cómo funciona la retropropagación en una red neuronal básica con una capa de entrada, una capa oculta y una capa de salida. Se detallan los elementos involucrados, como las conexiones, los pesos y la función de activación, y cómo se calculan las predicciones en cada capa. Se enfatiza la importancia de la función de activación y cómo se utiliza en el proceso de retropropagación.
📉 Cálculo del error y actualización de pesos en la capa de salida
Se aborda el cálculo del error en la capa de salida y cómo se utiliza para actualizar los pesos. Se describe el proceso de calcular la derivada del error con respecto a la predicción y la aplicación de la regla de la cadena para obtener la derivada del error con respecto a los pesos. Se menciona el uso del error cuadrático y la derivada de la función de activación en el proceso.
🔗 Aplicación de la regla de retropropagación en capas ocultas
Se explica cómo se calcula el término de error (delta) para las capas ocultas de la red neuronal. Se describe el proceso de calcular la derivada del error con respecto a las predicciones en la capa oculta y cómo se utiliza la regla de la cadena para obtener la derivada con respecto a los pesos. Se destaca la importancia de la función de activación y la conexión entre capas en el cálculo del delta.
🔁 Proceso de retropropagación y actualización de pesos
Se describe el proceso de retropropagación como una repetición de la regla delta para actualizar los pesos en capas superiores e inferiores. Se menciona el cálculo del delta output y delta hidden, y cómo estos se utilizan para actualizar los pesos en la capa de salida y las capas ocultas, respectivamente. Se destaca la generalización del método para redes neuronales con múltiples capas.
📚 Generalización del método de retropropagación
Se discute la generalización del método de retropropagación para redes neuronales con múltiples neuronas y salidas. Se presenta la idea de sumar los términos de error para cada salida y se refiere a la regla general de actualización de pesos en el contexto del descenso por gradiente. Se enfatiza la importancia de comprender el método de retropropagación para la implementación propia y la mejora de nuevos métodos.
👍 Importancia del aprendizaje de la retropropagación
Se destaca la relevancia del aprendizaje del método de retropropagación más allá del uso de frameworks como Keras o PyTorch. Se argumenta que la comprensión de la retropropagación permite no depender exclusivamente de estas herramientas y permite el desarrollo de implementaciones personalizadas y la generación de métodos más eficientes. Se menciona que en futuras sesiones se profundizará en la actualización numérica de pesos y la programación del algoritmo de retropropagación.
Mindmap
Keywords
💡Retropropagación
💡Descenso por gradiente
💡Redes neuronales
💡Función de activación
💡Pesos
💡Error cuadrático
💡Regla de la cadena
💡Capa oculta
💡Tasa de aprendizaje
💡Ejemplos
💡Frameworks
Highlights
La sesión trata sobre la retropropagación, un método fundamental en las redes neuronales.
La retropropagación permite entrenar redes neuronales profundas con miles a millones de parámetros.
El método de retropropagación fue inventado en los años 70 y se destaca por su capacidad para obtener derivadas numéricas.
En 1986, Joffrey Hinton y su equipo propusieron usar la retropropagación para entrenar redes neuronales de múltiples capas.
La retropropagación se utiliza para calcular derivadas numéricas y no estaba inicialmente diseñada para aprendizaje profundo.
Se aborda cómo funciona el método de retropropagación a través de un ejemplo sencillo.
Se discute la regla del delta y su importancia en el cálculo del error y la actualización de pesos en las redes.
La retropropagación utiliza el producto punto y las funciones de activación para calcular las predicciones en las capas ocultas.
Se describe el proceso de Forward pass y cómo se genera una salida en una red neuronal.
La métrica de error se utiliza para comparar la predicción con el valor objetivo y ajustar los pesos de la red.
El método de descenso por gradiente es fundamental para actualizar los pesos y minimizar el error.
Se explica cómo se calcula el término de error y su relación con la función de activación y las conexiones de la red.
La regla de la cadena se aplica para calcular las derivadas de funciones compuestas en el contexto de la retropropagación.
Se discute la importancia de entender la retropropagación para no depender exclusivamente de frameworks y poder hacer implementaciones propias.
Se destaca la necesidad de comprender los métodos existentes para generar nuevos enfoques más eficientes en el aprendizaje automático.
Se abordan herramientas simples como NumPy y Python para programar y entender la retropropagación.
Se enfatiza la importancia del aprendizaje de la retropropagación para la creación de algoritmos que puedan ajustarse a errores específicos.
Transcripts
Hola estimadas y estimados estudiantes
en esta sesión hablaremos acerca de un
método fundamental en las redes
neuronales actuales que es la
retropropagación o en inglés p
propagation este método nos permite
entrenar redes neuronales que son muy
profundas eh lo que hemos visto hasta
ahora es que podemos utilizar el método
de descenso por gradiente para entrenar
una red simple que tiene una sola capa
sin embargo las redes actuales van de
miles a probablemente millones de
parámetros todo esto en muchas capas Así
que el problema que nos queda por
resolver en nuestro curso es cómo vamos
a entrenar todos estos parámetros que
vamos a tener en estas redes muy
profundas y existen en realidad muchos
métodos de optimización que pueden hacer
esta función sin embargo el método que
se destaca es el de retropropagación
este método fue inventado por ahí de los
70s por este científico seiman o como
quiera que se pronuncie verdad y digamos
que su propuesta no estaba enfocada a
computación o a métodos de aprendizaje
profundo el método original de
retropropagación está pensado para que
se puedan obtener derivadas de forma
numérica esto cuando tenemos pues
e la regla de la cadena Okay entonces si
utilizamos la regla de la cadena que nos
permite hacer derivadas de funciones que
están
compuestas entonces probablemente este
método de retropropagación también nos
vaya a servir Entonces como les decía
este método surge un tanto para calcular
derivadas de forma numérica y no tanto
pensando en la situación del aprendizaje
automático o las redes neuronales sin
embargo fue hasta
1986 que este equipo dirigido por
joffrey Hinton
propone el uso de el método de
retropropagación para entrenar estas
redes neuronales de varias capas y es
aquí pues donde cobra importancia
realmente el método para su aplicación
en el aprendizaje automático entonces a
través de este método que
existía ahora se pueden entrenar redes
neuronales de muchísimas capas y
entonces lo que vamos a hacer durante
esta sesión que probable ente nos
tardemos un poquito porque vamos a ir a
los detalles es que primero vamos a ver
cómo en un ejemplo sencillo está
funcionando este método de
retropropagación y después vamos a
tratar de calcular esta regla del delta
o del término de error una vez que
nosotros pasemos de los conceptos
generales a esta regla de Delta podemos
aplicar la regla a redes que tiene
tienen muchas capas entonces pues bueno
pues vamos a la lección para que podamos
ver los detalles de este muy utilizado
algoritmo y bueno vamos a comenzar con
una idea general de qué es lo que hace
el método de retropropagación y primero
veamos qué es lo que tenemos hasta
ahorita bien sabemos que tenemos una red
que tiene varias capas es decir en su
capa de entrada tenemos esto x1 x dos X3
Okay esa sería nuestra capa de entrada
eso va a pasar a una capa oculta la capa
oculta se compone de estas conexiones o
pesos que vamos a tener aquí todos estos
son pesos
y para combinarlos
utilizamos H que sería igual
a w por el producto punto con
x ahorita
eh No vamos a utilizar el sesgo porque
pues ya sabemos que el sesgo se puede
comportar como una entrada más Entonces
vamos a nombrarlo como que tenemos un H
oculta o hidden y decíamos
wx ese producto punto pasa por una
función de activación F de H okay Y eso
ya nos va a producir esta salida que
tiene cada una de estas redes eh Son
predicciones y podríamos decirle las
predicciones en la capa oculta no pero
ahorita para no utilizar tanta anotación
voy a poner a como la salida aquí Bueno
esta salida que tienen ahora estas redes
es decir estaríamos como por acá esta
capa que está produciendo estas salidas
pues van a pasar a la siguiente capa a
través de conectarse pues otros pesos
que tenemos
aquí entonces lo que obtendríamos ahora
es un nuevo h en la capa de
salida que pues se compone igual del
producto punto D
W output para separarlo el de abajo Lo
vamos a llamar
W hidden y el de arriba W output eso se
multiplica por la a o sea las salidas
que vienen de abajo
y con esto ya vamos a tener nuestra
predicción final a través de insertarlo
a nuestra función de
activación con eso ya obtenemos nuestra
predicción hasta arriba verdad eso es lo
que nosotros digamos tenemos hasta ahora
y lo que deseamos es que pues nuestra
red se ajuste a unos determinados
valores bajo un esquema de aprendizaje
supervisado es decir tenemos un valor
objetivo y okay Y para saber qué tamb
bien Nos está yendo en las predicciones
pues utilizamos una métrica de error que
va a comparar y y y circunfleja es decir
el valor objetivo y la predicción y nos
va a decir pues bueno si las
predicciones son buenas o malas en el
caso de que son malas las predicciones
lo que queremos entonces es ajustar los
pesos obtener unos nuevos valores aquí
en los pesos tales que nos hagan mejores
predicciones eso es lo que queremos
hacer encontrar esos pesos que nos den
mejores
predicciones y pues encontramos que una
forma de hacerlo es mediante el método
de descenso por
gradiente en lo que vimos es que si
nosotros calculamos Cuál
es la tasa de cambio del error con
respecto
de los pesos que tenemos aquí está la
capa de salida los pesos que tenemos
esto nos va a decir hacia donde crece el
error y por tanto si nos vamos hacia el
otro lado podemos disminuir ese error
eso es básicamente lo que hace el método
de descenso por gradiente y lo que vimos
en el método también es que podíamos ya
ajustarlo a tres pasos para que lo
pudiéramos
implementar no para que se pueda
implementar y replicar ese método lo que
vimos es que podemos calcular un término
de error ya en términos prácticos era
como la derivada del error que nos
quedaba así por la derivada de la
función de activación en output Okay eso
era el término de error no si hasta
ahorita que tienen dudas pues Les
recomiendo que se chequen la lección de
descenso por gradiente para que ya esto
quede claro bueno Entonces teníamos ese
término de error que nos dice Hacia
dónde nos tenemos que mover y lo que
hacíamos era calcular un incremento
sale cómo vamos a modificar los pesos y
decíamos pues bueno Ese incremento tiene
que ver con una tasa de aprendizaje un
valor que nosotros utilizamos para que
se vaya pues cambiando el peso o vaya
convergiendo más o menos lento entonces
este es el learning rate o la tasa de
aprendizaje que se multiplicaba por
Delta
Y eso por nuestra entrada que en este
caso le estoy colocando aquí la
a
Okay con este incremento actualizamos
los pesos y ya quedaba as W es igual a w
más el
incremento con esto actualizamos los
pesos lo hacemos en una época y lo
volvemos a repetir en la siguiente época
y así estamos así disminuyendo el error
Bueno pero esto que habíamos visto
únicamente nos ayuda a actualizar los
pesos De esta zona qué va a
pasar y qué debemos hacer para
actualizar los pesos que están abajo
aquí la propuesta del método de
retropropagación es utilicemos un
esquema similar al que nosotros estamos
utilizando en la capa final Okay yquem
Ese esquema a las capas que están
inferiores
Okay idealmente
y lo voy a colocar solo para que como
tengamos idea de qué es lo que queremos
hacer idealmente para ajustar los pesos
que están aquí en las capas inferiores
tendríamos que sacar algo así como la
derivada del error con respecto de estos
pesos inferiores no de la capa
oculta Y eso nos diría Cómo lo
ajustamos pero hacer eso para todos los
pesos se vuelve un poquito
entonces lo que propone este
retropropagación
es hagamos un esquema en el que vayamos
reutilizando lo que tenemos en la capa
inmediata superior para actualizar esta
capa y así nos vamos lo que ahora
actualiza esta capa nos ayuda a
actualizar la que sigue Y así
sucesivamente hasta que lleguemos a la
capa
más anterior no
eh Y bueno lo que dice dices calculemos
un término Delta aquí
hidden dice tenemos un Delta que está
hasta arriba calculemos un Delta que va
a depender del que está arriba y si
tuviéramos pesos más abajo pues
tendríamos que calcular otro Delta que
va a depender del Delta que está arriba
y actualizamos y utilizamos la misma
regla sale Y eso es básicamente el
método de retropropagación okay Y a ver
vamos a ver otro detalle
lo que encontraron en el método es que
si nosotros partimos de un término de
error okay Este término de error va a
actualizar estos pesos que tenemos por
acá para actualizar los pesos que
tenemos ahora en la capa que
sigue pues podemos reutilizar el término
de error entonces dice pues calculemos
un término de error que va a actualizar
ahora este este y este sale Y cómo
calculamos ese término de error pues
bueno primero es el
original multiplicado por la conexión O
sea que tan fuerte es esta conexión que
tenemos aquí y la función de activación
en la neurona inmediata que que me
interesa entonces podemos ver
que estos nuevos términos de error
dependen del de arriba y las conexiones
iones que tenemos Y eso simplifica mucho
las cosas okay lo podemos replicar y lo
podemos replicar a a a capas todavía más
profundas porque vamos decir solo nos
interesa el término de error que está en
la de arriba lo demás ya no me interesa
solo el término de error que está en la
arriba y la conexión que tengo con eso
ya me basta okay Y entonces esto es el
método que se replica va pero si
quisiéramos como una cosa nada más
general de cómo funciona Pues bueno así
es más o menos como funciona
sin
embargo pues no nos vamos a quedar aquí
verdad lo que vamos a hacer es tratar de
comprender de dónde vienen estas reglas
Delta Y por qué es que tienen sentido y
por qué es que funcionan va Entonces
vamos a esa parte y vamos a
entenderla y para eso pues vamos a poner
como ejemplo una red muy básica en
realidad en donde vamos a tener una
entrada Okay aquí la voy a escribir como
x eso va a pasar a una
neurona y e la salida de esta neurona va
a ir a otra neurona y eso ya me va a dar
mi
predicción Es simplemente esto que
tenemos aquí tenemos una capa de entrada
tenemos una capa oculta voy a poner como
hidden Y tenemos una capa de
salida Cuáles son los elementos que
tenemos aquí Bueno pues tenemos x
tenemos esta conexión
verdad
W que pertenece a la capa oculta Por eso
la voy a poner como W hidden y luego
tenemos esto que va a conformar la
primera predicción Entonces vamos a
poner aquí y circunfleja hiden que sería
la predicción de esta neurona pues es
básicamente el X que multiplica a w
hiden + B Okay voy a obviar el B porque
ya vimos en sesiones previas que se
puede comportar Igual que una entrada x
Entonces le voy a dejar así y esto pasa
a la función de activación Okay después
lo que ten es que esta predicción pues
va a ser como la entrada a la siguiente
capa
Verdad Entonces para no estar utilizando
esta anotación tan complicada le voy a
nombrar a esto como
a nuevamente
tendríamos un peso de conexión aquí que
sería en la capa de salida es decir la
capa de salida tiene su W
output y tendríamos una salida Okay y
circunfleja output sería a la función de
activación de la a multiplicada por el W
output y eso me va a generar la salida
Entonces ese digamos es el proceso del
Forward pass o de la predicción frontal
Esto me genera una salida y recordemos
que lo que queremos hacer es un
aprendizaje supervisado por lo tanto ya
vamos a tener una etiqueta objetivo o un
valor objetivo de la regresión entonces
a este le vamos a denominar y y por
tanto vamos a tener al
final una métrica de error que nos va a
comparar y con y
circunfleja output aquí verdad Y ese
digamos sería el proceso completo que
estaríamos haciendo lo que queda a
continuación es Pues bueno probablemente
Esto se está equivocando y tenemos que
actualizar tanto los pesos de la capa de
salida como los pesos de la capa oculta
Entonces primero Pues voy a tratar de
resolverlo para el caso de la de los
pesos de la capa oculta Okay y lo que
nos dice el método de descenso por
gradiente es encontremos el gradiente de
la función de error para que sepamos
Hacia dónde nos tenemos que mover
entonces lo que tendríamos que hacer es
calcular la
derivada del error con respecto de ese W
en output Okay eso me va a decir Hacia
dónde tengo que moverme para que
disminuya el error bueno el negativo
verdad porque esto por definición es
positivo Pero bueno eso ya lo hablamos
en la sesión previa Okay de la parte de
aquí de la izquierda podemos observar
que tenemos una composición de funciones
Okay y vamos a verlo tenemos esta
función
e que aquí depende de y circunfleja y
esta y circunfleja viene de acá que pasa
por la función F Okay y la función
F lo que tiene pues es ya directamente
el parámetro W aquí verdad y con eso ya
llegamos a doble
user Entonces cuando tenemos una función
composición pues tenemos que usar la
regla de la cadena verdad Entonces
tendríamos que sacar la derivada del
error con respecto de mi predicción que
tengo y
luego la derivada de la predicción que
sería hay realmente F aquí podemos ver F
con respecto de esto recordemos que
hemos utilizado
mucho estas notaciones previas en donde
H de la salida básicamente sería a que
multiplica a
w0 Y entonces tendríamos F de h en
output verdad esto para que vayamos
viendo cómo es que se va haciendo el
proceso
claramente entonces podríamos escribir
aquí que tendríamos pues entonces la
derivada
de de y Ok que en realidad pues lo
podemos reemplazar por F con respecto de
h y luego tendríamos Pues que sacar la
derivada de h con respecto de
w0 Okay entonces eso tendríamos que
hacer
en normalmente el descenso por
gradiente esto Cómo se representa bueno
primero va a depender de
la función n métrica de error que
nosotros estemos utilizando de
acuerdo pero Digamos como estamos
poniendo ya un ejemplo más práctico Si
utilizáramos
e
como el error
cuadrático la derivada de este error
cuadrático con respecto de Jess
circunfleja nos va a quedar como y- y
circunfleja y luego tendríamos que sacar
la derivada de la función de activación
con respecto de H aquí Bueno pues va a
depender de la función de activación que
nosotros estemos utilizando Okay un
tanto para generalizar esto de la
función de activación simplemente voy a
representar como F prima de H Okay
entonces F prima de H estoy
diciendo que es la derivada de la
función de
activación y luego tendríamos Esta
última parte que es la derivada de h con
respecto de
w0 recordemos que H se
calcula como en este caso muy básico
como a multiplicado por
w0 si sacamos la derivada de h con con
respecto de
w0 pues esto es a
verdad es decir la entrada que nosotros
tenemos y aquí le voy a representar con
a Pero esto me refiero a la entrada que
viene y esto es básicamente lo que
tenemos en la regla Delta esto lo
convertimos en delta como el término de
error y ya luego lo multiplicamos por a
para calcular el incremento Pero
bueno Esto va a ser la regla Delta para
el caso de una sola capa qué es lo que
pasa en el descenso por gradiente cuando
nosotros
tenemos varias capas en realidad lo que
tendríamos que hacer es cuál es el
D Cuál es la derivada con respecto de El
p en la capa
oculta Y qué tendríamos que hacer
nuevamente verdad tenemos que ver cuál
es la función composición Okay dijimos
que y que
e pues tiene que ver con y circunfleja y
circunfleja tiene que ver con h H tiene
que venir de acá y luego aquí en lugar
que nos fijemos con respecto de la O nos
vamos a fijar con respecto De dónde
viene eso no O sea como que la conexión
Porque queremos llegar más abajo
entonces nos vamos con respecto de a que
es decir ya un fleja en la
hidden Y entonces aquí pues tendríamos
que ir ya ahora sí con f y con respecto
de este peso que tenemos en hidden Okay
ya ya vieron como todo el Caminito toda
la culi desde el error hasta en donde
tenemos ese peso Sale entonces eso
básicamente va a ser nuestra regla de la
cadena queé tendríamos que sacar pues
esto sería igual a me parecido lo que
tenemos acá a derivada de e primero con
respecto de y circunfleja en la salida y
eso por la función de activación con
respecto del h y luego la derivada del h
con respecto aquí de a verdad ya no va a
ser con respecto de w0 si no va a ser
con respecto de a o le podemos decir que
es la predicción en
H en
hidden Y entonces ya que estamos en
hidden tenemos que sacar la derivada de
esa función de activación hidden puede
ser diferente esta función de activación
entonces puede ser F otra F Pero bueno
ahorita le voy a simplificar y le voy a
dejar aquí esta F y con respecto de H H
G que estamos
abajo aquí voy a completar output output
para no
confundirme Y eso la derivada de h hiden
con respecto
de Ya ahora así el peso en W
hidden y ya llegamos nosotros hasta esa
parte hasta hasta el peso que queremos
actualizar va
okay
qué es lo que pasa podemos otra vez
sacar todo el mismo
proceso pero en realidad lo que
encuentra este método de
retropropagación Es que este Delta que
nosotros calculamos aquí que es delta
output Pues fíjense que es como esta
parte
okay esta parte que nosotros tenemos acá
estos dos términos son este Delta
output okay Y ahora
analicemos esta cosa que tenemos
aquí Bueno pues Esta cosa que nosotros
tenemos Aquí voy a hacer esto ya más
para arriba para que no nos esté
turbando
Okay analicemos Ese que sería la
derivada parcial de h con respecto
de y circunfleja en el
hidden recordemos que
H
hidden Ah no perdón H
output recordemos que H aquí es output
para no confundir H output se calcula
simplemente
con
w de output multiplicado por lo que
viene antes no O sea la a o Pues también
para conservar la misma variable en y
hidden Okay si a esto le sacamos la
derivada con respecto de y
hiden pues esto nos va a quedar
como
W output okay Y qué cosa es eso vayamos
a ver nuestro
dibujito aquí se
ve Pues resulta
que esta cosa que acabamos de sacar es
precisamente esta conexión que tenemos
aquí okay esa conexión que tenemos ahí
nos está diciendo que es el
resultado
entonces de
esto podemos decir que esta parte es la
conexión W output
sale Y luego qué tenemos aquí en la
siguiente Pues bueno
tenemos la derivada parcial de F con
respecto de H hiting no esta cosa está
aquí dentro aquí estamos eh Ya estamos
en esta cosa en F hidden con h
hidden
Igualmente para que podamos generalizar
y utilizar cualquier función de
activación Pues diremos que esto es la
función la derivada de la función de
activación sale Entonces tenemos esa
función de activación que sería esta
cosa
va y finalmente
tenemos nuestro último
término si recordamos Cómo se calcula H
hidden H
hiden que se calculaba
como la multiplicación
de X por el W hidden y le sacamos a esto
la derivada Ah pues muy parecido a la de
arriba verdad con respecto a w hiden
Pues nos va a quedar simplemente esto
como
x Okay esto sería
x bien pues ya tenemos todo este
chilaque aquí
y lo que hay que notar ahora es
precisamente estos términos Okay toda
esta cosa que Nosotros acabamos de
calcular y el método de de
retropropagación dice Bueno calculemos
esta regla Delta entonces simplemente
decimos
Delta
hidden lo vamos a hacer o lo vamos a
calcular a partir
de el término de error que ya conocíamos
de arriba multiplicado por la
conexión que que se refiere a a la
conexión que tenemos hacia Arriba ese
peso y multiplicado por la función de
activación H
hiden Okay entonces Esto va a ser el
nuevo término de error Okay para la capa
que ahora tenemos aquí sale Entonces qué
nos está diciendo Esto bueno que para
actualizar la capa de salida utilizamos
El delta output Okay para actualizar la
capa oculta que está inmediatamente
abajo pues utilizamos El delta hidden
que se calcula o podemos decir es
proporcional a la conexión que tenemos y
al error que tenemos
arriba y si tuviéramos todavía más capas
hacia abajo pues tendríamos aquí otro
Delta pues más abajo
inferior que va a depender de esta
conexión y va a depender del término de
error que está inmediatamente
arriba y así nos podemos ir
sucesivamente Okay entonces ya podemos
darnos cuenta que este método de
retropropagación lo que está haciendo es
definir estos términos de error o estas
reglas Delta a partir de las reglas
Delta que existen más arriba esto
simplemente se está repite repite repite
y con eso podemos actualizar nuestros
pesos sale Bueno entonces
Eh Esto es de forma general Cómo es que
funciona el método de retropropagación
em Pues ahorita lo
simplifiquemos una neurona Okay
e y pues después veremos Cómo es que
esto se
se digamos se extiende cuando tengamos
varias neuronas Bueno pero
lo pero lo que quería que ahorita
viéramos era Cómo funcionaba no entonces
en lo que sigue pues vamos a ver cómo
podemos generalizar esto sale Pero bueno
ya tenemos idea De dónde viene y por qué
es que que que surge esto no no nada más
lo apliquemos como como pues este como
regla de la abuelita okay Bueno vamos a
lo que sigue
regresando a nuestra lección
pues ya podemos entender un poquito
mejor los conceptos y a qué nos estamos
refiriendo verdad Entonces ya podemos
decir que esto de retropropagación es
como pues una extensión que utilizamos
dentro del algoritmo de descenso por
gradiente y pues esto nos va a ayudar a
ajustar los pesos no de forma general
qué es lo que buscamos pues
buscamos Cuál es la contribución que
tiene el peso a un error que estamos
obteniendo okay Y eso pues lo sacamos
con el gradiente ya sabemos aplicamos la
regla de la cadena y esto básicamente
nos va a decir pues que para la capa de
salida vamos a calcular todo este
gradiente y lo vamos a multiplicar por
la entrada que tenemos No aquí está
simplificado todas esas ecuaciones que
puse hace rato
y con esto podemos obtener una regla
general Okay la regla general que
ustedes van a encontrar en los libros y
siempre está reportada es que el
peso actualizado va a ser igual al peso
anterior Okay sumado
a este eta que ya lo vimos y que es la
tasa de aprendizaje
por la derivada del error con respecto
de el peso anterior no eso que que
dijimos no que nos va a dar el gradiente
hay que multiplicarlo por -1 porque el
gradiente por definición es positivo y
lo que queremos es que vaya nuestro
método hacia
abajo este es digamos la regla general
de cómo es que se actualiza los pesos
pero lo que vamos a hacer nosotros es
descomponer esta ecuación en unas
reglitas que podamos implementar
fácilmente Sale entonces supongamos que
tenemos una una capa superior que le
vamos a llamar capa o o capa
output ya sabemos que podemos calcular
nuestro término de error en la capa
output sale con la derivada del error
que ya la la hace
rato Y entonces para una capa que está
en la parte
inferior vamos a
utilizar el término de error que
teníamos arriba multiplicado por la
derivada de la función de activación
esto por el peso que nos conecta verdad
era lo que obtuvimos
en lo que estuvimos haciendo hace un
momento Qué puede pasar Ok yo lo hice
muy sencillo cuando teníamos una sola
salida Aquí les voy a poner otra vez lo
que
hicimos qué va a pasar si tenemos una
sola salida Pues bueno Solo estamos
contemplando esta conexión pero
imagínense que tenemos un caso en donde
de esta neurona no va a sola una salida
sino va a más de una salida Okay puede
ir a
muchas Enton entonces lo que vamos a
necesitar es contemplar los errores que
está teniendo en todas esas salidas para
eso lo que vamos a usar es una sumatoria
Okay y donde vamos a ir sumando para
cada una de esas salidas cada una de
esas salidas tiene su propio término de
error Y nuevamente utilizamos lo que ya
conocemos del descenso por gradiente Y
tenemos nuestra tasa de aprendizaje
multiplicado por el término de error que
ya calculamos y la entrada que
corresponde a lo que viene de abajo con
eso calculamos el incremento y este
incremento se le suma al peso anterior
vamos a finalizar a través de colocar ya
un algoritmo que pues podamos
implementar en la computadora y Okay
Bueno pues aquí sería nuestro método de
retropropagación Okay este para un caso
especial no como como lo hemos visto
Porque todavía se puede generalizar
todavía más para muchos muchas cosas
Enton entonces imaginemos que estamos en
el proceso de descenso por gradiente
Okay y simplemente lo que vamos a hacer
es en una
época actualizar todos los pesos desde
la última capa hasta la capa inicial
okay Para eso nos van a servir todos los
ejemplos en el conjunto de
datos entonces nuestro algoritmo nos va
a decir bueno para cada uno de los
ejemplos en el conjunto de datos hacemos
una predicción
esta predicción nos va a servir para
calcular
el error
residual y con eso el término de error
en la capa que está hasta arriba
okay Este término de error ya lo podemos
reutilizar lo vamos a reutilizar y lo
vamos a hacer para calcular los términos
de error en cada una de las capas
inferiores ya eso ya vimos como lo
podemos hacer ya una vez que propagamos
esos errores hacia atrás lo que vamos a
hacer es actualizar nuestros pesos
actualizamos nuestros pesos
eh A través de calcular Cuál es el
incremento y finalmente ya este se
actualiza bueno Y esto sería básicamente
el algoritmo de retropropagación
vale finalmente Por qué es importante
aprender retropropagación
si yo solo le pongo keras pun fit o
model.fit y me va a actualizar la red
Bueno pues es importante porque nosotros
estamos estudiando las cosas desde el
punto de vista de comprenderlas y de
poder nosotros hacer nuestras propias
implementaciones no no queremos depender
todo el tiempo del keras o del P torch
sale pero para eso necesitamos
comprender y si quisiéramos nosotros
avanzar en generar nuevos métodos que
sean más eficientes Pues necesitamos
comprender los que existe y por el otro
lado si a lo mejor lo que nos interesa
es simplemente pues usar las cosas como
están pues bueno ya está implementado en
muchos frameworks está en keras está en
tensor Flow está en p tours está en
todos los frameworks Por qué Porque pues
es la parte primordial de cómo es que se
entrenan las redes lo que vamos a hacer
En las siguientes sesiones es primero un
ejempl para ver cómo es que se van
actualizando los pesos de forma numérica
Ese nos va a tomar un poquito de tiempo
porque pues si hay que ver cómo es que
se están actualizando cada uno de esos
pesos obviamente para una capa este
oculta nada más y pues que tengamos ya
el comprendimiento de cómo funciona
retropropagación y también lo vamos a
programar con
herramientas simples como es npai y
python y
recuerden Pues si cometemos un error
el algoritmo de retropropagación va a
castigarnos en dependencia de cómo fue
nuestro error y Bueno muchísimas gracias
y nos vemos en la siguiente
sesión
5.0 / 5 (0 votes)