fbpx
Wikipedia

Propagación hacia atrás

En aprendizaje de máquina, la propagación hacia atrás de errores o retropropagación (del inglés backpropagation) es un algoritmo de aprendizaje supervisado utilizado para entrenar redes neuronales prealimentadas. Dado que es un método de cálculo del gradiente el algoritmo generalmente se puede usar en otros tipos de redes neuronales artificiales y en general para funciones. [Nota 1]

El método emplea un ciclo de propagación–adaptación de dos fases, en resumen permite que la información del costo fluya hacia atrás a través de la red para calcular el gradiente.[1]​ Una vez que se ha aplicado un patrón a la entrada de la red como estímulo, este se propaga desde la primera capa a través de las capas siguientes de la red, hasta generar una salida. La señal de salida se compara con la salida deseada y se calcula una señal de error para cada una de las salidas. Las salidas de error entonces se propagan hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de la capa oculta que contribuyen directamente a la salida. Sin embargo las neuronas de la capa oculta solo reciben una fracción de la señal total del error, basándose aproximadamente en la contribución relativa que haya aportado cada neurona a la salida original. Este proceso se repite, capa por capa, hasta que todas las neuronas de la red hayan recibido una señal de error que describa su contribución relativa al error total.

La importancia de este proceso consiste en que, a medida que se entrena la red, las neuronas de las capas intermedias se organizan a sí mismas de tal modo que las distintas neuronas aprenden a reconocer distintas características del espacio total de entrada. Después del entrenamiento, cuando se les presente un patrón arbitrario de entrada que contenga ruido o que esté incompleto, las neuronas de la capa oculta de la red responderán con una salida activa si la nueva entrada contiene un patrón que se asemeje a aquella característica que las neuronas individuales hayan aprendido a reconocer durante su entrenamiento.

Estructura del perceptrón

 
Diagrama de un perceptrón con cinco señales de entrada.

El perceptrón es un modelo matemático de la neurona, busca imitar el proceso de una neurona biológica.

Sean los   las entradas (por las dendritas) a la neurona. Estas sufren un efecto multiplicador   por la comunicación de las mismas al núcleo de la neurona, donde se sumaran mediante:

 

Y luego pasa por la función de activación:

 

Perceptrón Multicapa

Un Perceptrón multicapa es una red neuronal artificial con alimentación (propagación) hacia delante, compuesta de varias capas de neuronas entre la entrada y la salida de la misma. Esta red permite establecer regiones de decisión mucho más complejas que las de dos semiplanos, como lo hace el Perceptrón de un solo nivel. Las capacidades del Perceptrón multicapa con dos y tres capas y con una única neurona en la capa de salida se muestran en la siguiente figura:

 

Perceptrón simple, activándose su salida para los patrones de un lado del hiperplano, si el valor de los pesos de las conexiones entre las neuronas de la segunda capa y una neurona del nivel de salida son todos igual a 1, y la función de salida es de tipo hardlim, la salida de la red se activará sólo si las salidas de todos los nodos de la segunda capa están activos, esto equivale a ejecutar la función lógica AND en el nodo de salida, resultando una región de decisión intersección de todos los semiplanos formados en el nivel anterior. La región de decisión resultante de la intersección será una región convexa con un número de lados a lo sumo igual al número de neuronas de la segunda capa. A partir de este análisis surge el interrogante respecto a los criterios de selección para las neuronas de las capas ocultas de una red multicapa, este número en general debe ser lo suficientemente grande como para que se forme una región compleja que pueda resolver el problema, sin embargo no debe ser muy grande pues la estimación de los pesos puede ser no confiable para el conjunto de los patrones de entrada disponibles. Hasta el momento no hay un criterio establecido para determinar la configuración de la red y esto depende más bien de la experiencia del diseñador.

Estructura de la Red

 

Puede notarse que esta red de tres capas equivale a tener tres redes tipo Perceptrón en cascada; la salida de la primera red, es la entrada a la segunda y la salida de la segunda red es la entrada a la tercera. Cada capa puede tener diferente número de neuronas, e incluso distinta función de transferencia.

Regla de aprendizaje

La red retropropagada trabaja bajo aprendizaje supervisado y por tanto necesita un conjunto de entrenamiento que le describa cada salida y su valor de salida esperado de la siguiente forma:

 

Donde   es una entrada a la red y   es la correspondiente salida deseada para el patrón q-ésimo. El algoritmo debe ajustar los parámetros de la red para minimizar el error cuadrático medio. Es importante recalcar que no existe una técnica para determinar el número de capas ocultas, ni el número de neuronas que debe contener cada una de ellas para un problema específico, esta elección es determinada por la experiencia del diseñador, el cual debe cumplir con las limitaciones de tipo computacional. Cada patrón de entrenamiento se propaga a través de la red y sus parámetros para producir una respuesta en la capa de salida, la cual se compara con los patrones objetivo o salidas deseadas para calcular el error en el aprendizaje, este error marca el camino más adecuado para la actualización de los pesos y ganancias que al final del entrenamiento producirán una respuesta satisfactoria a todos los patrones de entrenamiento, esto se logra minimizando el error cuadrático medio en cada iteración del proceso de aprendizaje.

 

 q: Número de componentes del vector de entrada. m: Número de neuronas de la capa oculta. l: Número de neuronas de la capa de salida. 

Para iniciar el entrenamiento se le presenta a la red un patrón de entrenamiento, el cual tiene q componentes como se describe en la ecuación (2):

 

Cuando se le presenta a la red un patrón de entrenamiento, este se propaga a través de las conexiones existentes produciendo una entrada neta n en cada una las neuronas de la siguiente capa, la entrada neta a la neurona j de la siguiente capa debido a la presencia de un patrón de entrenamiento en la entrada está dada por la ecuación (3), nótese que la entrada neta es el valor justo antes de pasar por la función de transferencia:

 

  :Peso que une la componente i de la entrada con la neurona j de la capa oculta.  :Componente i del vector p que contiene el patrón de entrenamiento de q componentes.  :Ganancia de la neurona j de la capa oculta. 

Donde el 0 representa la capa oculta a la que pertenece cada parámetro. Cada una de las neuronas de la capa oculta tiene como salida  , dada por:

 

 : Función de transferencia de las neuronas de la capa oculta. Las salidas   de las neuronas de la capa oculta (de m componentes) son las entradas a los pesos de conexión de la capa de salida, este comportamiento está descrito por:  

  : Peso que une la neurona j de la capa oculta con la neurona k de la capa de salida, la cual cuenta con l neuronas.  : Salida de la neurona j de la capa oculta, la cual cuenta con m neuronas.  : Ganancia de la neurona k de la capa de salida.  : Entrada neta a la neurona k de la capa de salida. 

La red produce una salida final:  

 : Función de transferencia de las neuronas de la capa de salida.

La salida de la red de cada neurona   se compara con la salida deseada   para calcular el error en cada unidad:  

El error debido a cada patrón p propagado está dado por:

 

 : Error cuadrático medio para cada patrón de entrada p.

 : Error en la neurona k de la capa de salida con l neuronas.

Este proceso se repite para el número total de patrones de entrenamiento (r), para un proceso de aprendizaje exitoso el objetivo del algoritmo es actualizar todos los pesos y ganancias de la red minimizando el error cuadrático medio total descrito en:

 

 : Error total en el proceso de aprendizaje en una iteración después de haber presentado a la red los r patrones de entrenamiento. El error que genera una red neuronal en función de sus pesos, genera un espacio de n dimensiones, donde n es el número de pesos de conexión de la red, al evaluar el gradiente del error en un punto de esta superficie se obtendrá la dirección en la cual la función del error tendrá un mayor crecimiento, como el objetivo del proceso de aprendizaje es minimizar el error debe tomarse la dirección negativa del gradiente para obtener el mayor decremento del error y de esta forma su minimización, condición requerida para realizar la actualización de la matriz de pesos en el algoritmo Backpropagation:

Minimización del error

Los algoritmos en Aprendizaje Automático pueden ser clasificados en dos categorías: supervisados y no supervisados. Los algoritmos en aprendizaje supervisado son usados para construir "modelos" que generalmente predicen ciertos valores deseados. Para ello, los algoritmos supervisados requieren que se especifiquen los valores de salida (output) u objetivo (target) que se asocian a ciertos valores de entrada (input). Ejemplos de objetivos pueden ser valores que indican éxito/fallo, venta/no-venta, pérdida/ganancia, o bien ciertos atributos multi-clase como cierta gama de colores o las letras del alfabeto. El conocer los valores de salida deseados permite determinar la calidad de la aproximación del modelo obtenido por el algoritmo.


La especificación de los valores entrada/salida se realiza con un conjunto consistente en pares de vectores con entradas reales de la forma  , conocido como conjunto de entrenamiento o conjunto de ejemplos, donde   serán nuestros parámetros de entrada y   los de salida de la red. Los algoritmos de aprendizaje generalmente calculan los parámetros   de una función   que permiten aproximar los valores de salida en el conjunto de entrenamiento.


Si  ,  , son los elementos del conjunto de entrenamiento, la calidad de la aproximación en el ejemplo   se puede medir a través del error cuadrático:

 ,

donde   es la norma euclidiana.

El error total es la suma de los errores de los ejemplos:

 .


Un método general para minimizar el error es el actualizar los parámetros de manera iterativa. El valor nuevo de los parámetros se calcula al sumar un incremento   al valor actual:

 

El algoritmo se detiene cuando   converge o bien cuando el error alcanza un mínimo valor deseado.

Si la función   usada para aproximar los valores de salida es diferenciable respecto a los parámetros  , podemos usar como algoritmo de aprendizaje el método de gradiente descendiente. En este caso, el incremento de los parámetros se expresa como

 

donde   es un parámetro conocido como factor de aprendizaje.


Antes de continuar introduciremos un poco de notación. Definimos   como el vector extendido del vector  . El par   representará a un elemento del conjunto de entrenamiento y una relación de entrada-salida, a menos que se indique otra cosa.

Red neuronal con una capa oculta

La función la usaremos para aproximar los valores de salida de una red neuronal artificial con una capa oculta. La red está constituida por una capa de entrada (input layer), una capa oculta (hidden layer) y una capa de salida (output layer), tal como se ilustra con la siguiente figura:


 

Los elementos que constituyen la red neuronal son los siguientes:

  •   es una función de valores reales, conocida como la función de transferencia.
  •   es la capa de entrada, considerado como el vector extendido del ejemplo  .
  •   es la capa oculta, el vector extendido de  .
  •   es la capa de salida, considerado como el vector que aproxima al valor deseado  .
  •   es una matriz de tamaño   cuyos valores   son los pesos de la conexión entre las unidades   y  .
  •   es una matriz de tamaño   cuyos valores   son los pesos de la conexión entre las unidades   y  .

De estos elementos, únicamente las matrices   son consideradas como los parámetros de la red, ya que los valores   son el resultado de cálculos que dependen de las matrices de pesos, del valor de entrada   y de la función de transferencia  .


La función de transferencia   que consideraremos en nuestro algoritmo es conocida como función sigmoidal, y está definida como

 

esta función además de ser diferenciable, tiene la particularidad de que su derivada se puede expresar en términos de sí misma:

 

esto nos servirá para simplificar los cálculos en el algoritmo de aprendizaje aquí descrito.

Descripción del algoritmo

A grandes rasgos:

  1. Calcular la salida de la red   a partir de uno de los conjuntos de valores de prueba  .
  2. Comparar con la salida correcta   y calcular el error según la fórmula:
     
  3. Calcular las derivadas parciales del error con respecto a los pesos   que unen a la última capa oculta con la de salida.
  4. Calcular las derivadas parciales del error con respecto a los pesos   que unen la capa de entrada con la oculta.
  5. Ajustar los pesos de cada neurona para reducir el error.
  6. Repetir el proceso varias veces por cada par de entradas-salidas de prueba.

O = Xj*F(netj)

Notas

  1. Goodfellow, Bengio y Courville, 2016, p. 200 "Por lo tanto la propagación hacia atrás con frecuencia se malinterpreta como un ser específico a las redes neuronales multicapa, pero en principio puede calcular derivadas de cualquier función" "Furthermore, back-propagation is often misunderstood as being specific to multi-layer neural networks, but in principle it can compute derivatives of any function"

Referencias

  1. Goodfellow, Bengio y Courville, 2016, p. 200

Bibliografía

  • D. Michie, D.J. Spiegelhalter, C.C. Taylor (eds). Machine Learning, Neural and Statistical Classification, 1994. [1]
  • R. Rojas. Neural Networks: A Systematic Introduction, Springer, 1996.ISBN 3-540-60505-3.

Enlaces externos

  • Implementación del algoritmo en C#
  • Implementación del algoritmo en C
  • Explicación gráfica del algoritmo (en inglés)
  •   Datos: Q798503

propagación, hacia, atrás, este, artículo, sobre, ciencia, detectaron, varios, problemas, favor, edítalo, para, mejorarlo, necesita, wikificado, conforme, convenciones, estilo, wikipedia, redacción, sigue, convenciones, estilo, este, aviso, puesto, mayo, 2015,. En este articulo sobre ciencia se detectaron varios problemas Por favor editalo para mejorarlo Necesita ser wikificado conforme a las convenciones de estilo de Wikipedia Su redaccion no sigue las convenciones de estilo Este aviso fue puesto el 14 de mayo de 2015 En aprendizaje de maquina la propagacion hacia atras de errores o retropropagacion del ingles backpropagation es un algoritmo de aprendizaje supervisado utilizado para entrenar redes neuronales prealimentadas Dado que es un metodo de calculo del gradiente el algoritmo generalmente se puede usar en otros tipos de redes neuronales artificiales y en general para funciones Nota 1 El metodo emplea un ciclo de propagacion adaptacion de dos fases en resumen permite que la informacion del costo fluya hacia atras a traves de la red para calcular el gradiente 1 Una vez que se ha aplicado un patron a la entrada de la red como estimulo este se propaga desde la primera capa a traves de las capas siguientes de la red hasta generar una salida La senal de salida se compara con la salida deseada y se calcula una senal de error para cada una de las salidas Las salidas de error entonces se propagan hacia atras partiendo de la capa de salida hacia todas las neuronas de la capa oculta que contribuyen directamente a la salida Sin embargo las neuronas de la capa oculta solo reciben una fraccion de la senal total del error basandose aproximadamente en la contribucion relativa que haya aportado cada neurona a la salida original Este proceso se repite capa por capa hasta que todas las neuronas de la red hayan recibido una senal de error que describa su contribucion relativa al error total La importancia de este proceso consiste en que a medida que se entrena la red las neuronas de las capas intermedias se organizan a si mismas de tal modo que las distintas neuronas aprenden a reconocer distintas caracteristicas del espacio total de entrada Despues del entrenamiento cuando se les presente un patron arbitrario de entrada que contenga ruido o que este incompleto las neuronas de la capa oculta de la red responderan con una salida activa si la nueva entrada contiene un patron que se asemeje a aquella caracteristica que las neuronas individuales hayan aprendido a reconocer durante su entrenamiento Indice 1 Estructura del perceptron 2 Perceptron Multicapa 3 Estructura de la Red 4 Regla de aprendizaje 5 Minimizacion del error 6 Red neuronal con una capa oculta 7 Descripcion del algoritmo 8 Notas 9 Referencias 10 Bibliografia 11 Enlaces externosEstructura del perceptron EditarArticulo principal Perceptron Diagrama de un perceptron con cinco senales de entrada El perceptron es un modelo matematico de la neurona busca imitar el proceso de una neurona biologica Sean los p i displaystyle p i las entradas por las dendritas a la neurona Estas sufren un efecto multiplicador w i displaystyle w i por la comunicacion de las mismas al nucleo de la neurona donde se sumaran mediante n i 1 i q w i p i b displaystyle n sum i 1 i q w i p i b Y luego pasa por la funcion de activacion a f n f i 0 i q p i w i b displaystyle a f n f sum i 0 i q p i w i b Perceptron Multicapa EditarArticulo principal Perceptron multicapa Un Perceptron multicapa es una red neuronal artificial con alimentacion propagacion hacia delante compuesta de varias capas de neuronas entre la entrada y la salida de la misma Esta red permite establecer regiones de decision mucho mas complejas que las de dos semiplanos como lo hace el Perceptron de un solo nivel Las capacidades del Perceptron multicapa con dos y tres capas y con una unica neurona en la capa de salida se muestran en la siguiente figura Perceptron simple activandose su salida para los patrones de un lado del hiperplano si el valor de los pesos de las conexiones entre las neuronas de la segunda capa y una neurona del nivel de salida son todos igual a 1 y la funcion de salida es de tipo hardlim la salida de la red se activara solo si las salidas de todos los nodos de la segunda capa estan activos esto equivale a ejecutar la funcion logica AND en el nodo de salida resultando una region de decision interseccion de todos los semiplanos formados en el nivel anterior La region de decision resultante de la interseccion sera una region convexa con un numero de lados a lo sumo igual al numero de neuronas de la segunda capa A partir de este analisis surge el interrogante respecto a los criterios de seleccion para las neuronas de las capas ocultas de una red multicapa este numero en general debe ser lo suficientemente grande como para que se forme una region compleja que pueda resolver el problema sin embargo no debe ser muy grande pues la estimacion de los pesos puede ser no confiable para el conjunto de los patrones de entrada disponibles Hasta el momento no hay un criterio establecido para determinar la configuracion de la red y esto depende mas bien de la experiencia del disenador Estructura de la Red Editar Puede notarse que esta red de tres capas equivale a tener tres redes tipo Perceptron en cascada la salida de la primera red es la entrada a la segunda y la salida de la segunda red es la entrada a la tercera Cada capa puede tener diferente numero de neuronas e incluso distinta funcion de transferencia Regla de aprendizaje EditarLa red retropropagada trabaja bajo aprendizaje supervisado y por tanto necesita un conjunto de entrenamiento que le describa cada salida y su valor de salida esperado de la siguiente forma p 1 t 1 p 2 t 2 p q t q 1 displaystyle p 1 t 1 p 2 t 2 p q t q 1 Donde p q displaystyle p q es una entrada a la red y t q displaystyle t q es la correspondiente salida deseada para el patron q esimo El algoritmo debe ajustar los parametros de la red para minimizar el error cuadratico medio Es importante recalcar que no existe una tecnica para determinar el numero de capas ocultas ni el numero de neuronas que debe contener cada una de ellas para un problema especifico esta eleccion es determinada por la experiencia del disenador el cual debe cumplir con las limitaciones de tipo computacional Cada patron de entrenamiento se propaga a traves de la red y sus parametros para producir una respuesta en la capa de salida la cual se compara con los patrones objetivo o salidas deseadas para calcular el error en el aprendizaje este error marca el camino mas adecuado para la actualizacion de los pesos y ganancias que al final del entrenamiento produciran una respuesta satisfactoria a todos los patrones de entrenamiento esto se logra minimizando el error cuadratico medio en cada iteracion del proceso de aprendizaje q Numero de componentes del vector de entrada m Numero de neuronas de la capa oculta l Numero de neuronas de la capa de salida Para iniciar el entrenamiento se le presenta a la red un patron de entrenamiento el cual tiene q componentes como se describe en la ecuacion 2 p p 1 p 2 p i p q 2 displaystyle p begin bmatrix p 1 p 2 p i p q end bmatrix 2 Cuando se le presenta a la red un patron de entrenamiento este se propaga a traves de las conexiones existentes produciendo una entrada neta n en cada una las neuronas de la siguiente capa la entrada neta a la neurona j de la siguiente capa debido a la presencia de un patron de entrenamiento en la entrada esta dada por la ecuacion 3 notese que la entrada neta es el valor justo antes de pasar por la funcion de transferencia n j 0 i 1 q w j i 0 p i b j 0 3 displaystyle n j 0 sum i 1 q w ji 0 p i b j 0 3 w j i 0 displaystyle w ji 0 Peso que une la componente i de la entrada con la neurona j de la capa oculta p i displaystyle p i Componente i del vector p que contiene el patron de entrenamiento de q componentes b j 0 displaystyle b j 0 Ganancia de la neurona j de la capa oculta Donde el 0 representa la capa oculta a la que pertenece cada parametro Cada una de las neuronas de la capa oculta tiene como salida a j 0 displaystyle a j 0 dada por a j 0 f 0 i 1 q w j i 0 p i b j 0 4 displaystyle a j 0 f 0 sum i 1 q w ji 0 p i b j 0 4 f 0 displaystyle f 0 Funcion de transferencia de las neuronas de la capa oculta Las salidas a j 0 displaystyle a j 0 de las neuronas de la capa oculta de m componentes son las entradas a los pesos de conexion de la capa de salida este comportamiento esta descrito por displaystyle n k s j 1 m w k j s a j 0 b k s 5 displaystyle n k s sum j 1 m w kj s a j 0 b k s 5 w k j s displaystyle w kj s Peso que une la neurona j de la capa oculta con la neurona k de la capa de salida la cual cuenta con l neuronas a j 0 displaystyle a j 0 Salida de la neurona j de la capa oculta la cual cuenta con m neuronas b k s displaystyle b k s Ganancia de la neurona k de la capa de salida n k s displaystyle n k s Entrada neta a la neurona k de la capa de salida La red produce una salida final a k s f s n k s 6 displaystyle a k s f s n k s 6 f s displaystyle f s Funcion de transferencia de las neuronas de la capa de salida La salida de la red de cada neurona a k s displaystyle a k s se compara con la salida deseada t k displaystyle t k para calcular el error en cada unidad d k t k a k s displaystyle delta k t k a k s El error debido a cada patron p propagado esta dado por e p 2 1 2 k 1 l d k 2 displaystyle ep 2 1 2 sum k 1 l delta k 2 e p 2 displaystyle ep 2 Error cuadratico medio para cada patron de entrada p d k displaystyle delta k Error en la neurona k de la capa de salida con l neuronas Este proceso se repite para el numero total de patrones de entrenamiento r para un proceso de aprendizaje exitoso el objetivo del algoritmo es actualizar todos los pesos y ganancias de la red minimizando el error cuadratico medio total descrito en e 2 p 1 r e p 2 displaystyle e 2 sum p 1 r ep 2 e 2 displaystyle e 2 Error total en el proceso de aprendizaje en una iteracion despues de haber presentado a la red los r patrones de entrenamiento El error que genera una red neuronal en funcion de sus pesos genera un espacio de n dimensiones donde n es el numero de pesos de conexion de la red al evaluar el gradiente del error en un punto de esta superficie se obtendra la direccion en la cual la funcion del error tendra un mayor crecimiento como el objetivo del proceso de aprendizaje es minimizar el error debe tomarse la direccion negativa del gradiente para obtener el mayor decremento del error y de esta forma su minimizacion condicion requerida para realizar la actualizacion de la matriz de pesos en el algoritmo Backpropagation Minimizacion del error EditarLos algoritmos en Aprendizaje Automatico pueden ser clasificados en dos categorias supervisados y no supervisados Los algoritmos en aprendizaje supervisado son usados para construir modelos que generalmente predicen ciertos valores deseados Para ello los algoritmos supervisados requieren que se especifiquen los valores de salida output u objetivo target que se asocian a ciertos valores de entrada input Ejemplos de objetivos pueden ser valores que indican exito fallo venta no venta perdida ganancia o bien ciertos atributos multi clase como cierta gama de colores o las letras del alfabeto El conocer los valores de salida deseados permite determinar la calidad de la aproximacion del modelo obtenido por el algoritmo La especificacion de los valores entrada salida se realiza con un conjunto consistente en pares de vectores con entradas reales de la forma x t displaystyle boldsymbol x boldsymbol t conocido como conjunto de entrenamiento o conjunto de ejemplos donde x displaystyle boldsymbol x seran nuestros parametros de entrada y t displaystyle boldsymbol t los de salida de la red Los algoritmos de aprendizaje generalmente calculan los parametros W displaystyle boldsymbol W de una funcion N x W displaystyle N boldsymbol x boldsymbol W que permiten aproximar los valores de salida en el conjunto de entrenamiento Si x q t q displaystyle boldsymbol x q boldsymbol t q q 1 p displaystyle q 1 ldots p son los elementos del conjunto de entrenamiento la calidad de la aproximacion en el ejemplo q displaystyle q se puede medir a traves del error cuadratico E x q W 1 2 N x q W t q 2 displaystyle E boldsymbol x q boldsymbol W frac 1 2 N boldsymbol x q boldsymbol W boldsymbol t q 2 donde displaystyle cdot es la norma euclidiana El error total es la suma de los errores de los ejemplos E W q 1 p E x q W displaystyle E boldsymbol W sum q 1 p E boldsymbol x q boldsymbol W Un metodo general para minimizar el error es el actualizar los parametros de manera iterativa El valor nuevo de los parametros se calcula al sumar un incremento D W displaystyle Delta boldsymbol W al valor actual W W D W displaystyle boldsymbol W boldsymbol W Delta boldsymbol W El algoritmo se detiene cuando W displaystyle boldsymbol W converge o bien cuando el error alcanza un minimo valor deseado Si la funcion N x W displaystyle N boldsymbol x boldsymbol W usada para aproximar los valores de salida es diferenciable respecto a los parametros W displaystyle boldsymbol W podemos usar como algoritmo de aprendizaje el metodo de gradiente descendiente En este caso el incremento de los parametros se expresa comoD W g E W W displaystyle Delta boldsymbol W gamma frac partial E boldsymbol W partial boldsymbol W donde 0 lt g lt 1 displaystyle 0 lt gamma lt 1 es un parametro conocido como factor de aprendizaje Antes de continuar introduciremos un poco de notacion Definimos v v 1 v n 1 T displaystyle bar boldsymbol v v 1 ldots v n 1 T como el vector extendido del vector v v 1 v n T displaystyle boldsymbol v v 1 ldots v n T El par x t displaystyle boldsymbol x boldsymbol t representara a un elemento del conjunto de entrenamiento y una relacion de entrada salida a menos que se indique otra cosa Red neuronal con una capa oculta EditarLa funcion la usaremos para aproximar los valores de salida de una red neuronal artificial con una capa oculta La red esta constituida por una capa de entrada input layer una capa oculta hidden layer y una capa de salida output layer tal como se ilustra con la siguiente figura Los elementos que constituyen la red neuronal son los siguientes s displaystyle s es una funcion de valores reales conocida como la funcion de transferencia o 0 displaystyle bar boldsymbol o 0 es la capa de entrada considerado como el vector extendido del ejemplo o 0 x x 1 x n T displaystyle boldsymbol o 0 boldsymbol x x 1 ldots x n T o 1 displaystyle bar boldsymbol o 1 es la capa oculta el vector extendido de o 1 o 1 1 o k 1 T displaystyle boldsymbol o 1 o 1 1 ldots o k 1 T o 2 o 1 o m T displaystyle boldsymbol o 2 o 1 ldots o m T es la capa de salida considerado como el vector que aproxima al valor deseado t t 1 t m T displaystyle boldsymbol t t 1 ldots t m T W 1 displaystyle boldsymbol W 1 es una matriz de tamano n 1 k displaystyle n 1 times k cuyos valores W i j 1 displaystyle W ij 1 son los pesos de la conexion entre las unidades o i 0 displaystyle bar o i 0 y o j 1 displaystyle o j 1 W 2 displaystyle boldsymbol W 2 es una matriz de tamano k 1 m displaystyle k 1 times m cuyos valores W i j 2 displaystyle W ij 2 son los pesos de la conexion entre las unidades o i 1 displaystyle bar o i 1 y o j 2 displaystyle o j 2 De estos elementos unicamente las matrices W l displaystyle boldsymbol W l son consideradas como los parametros de la red ya que los valores o l displaystyle bar boldsymbol o l son el resultado de calculos que dependen de las matrices de pesos del valor de entrada x displaystyle bar boldsymbol x y de la funcion de transferencia s displaystyle s La funcion de transferencia s displaystyle s que consideraremos en nuestro algoritmo es conocida como funcion sigmoidal y esta definida comos u 1 1 exp u displaystyle s u frac 1 1 exp u esta funcion ademas de ser diferenciable tiene la particularidad de que su derivada se puede expresar en terminos de si misma d s u d u s u 1 s u displaystyle frac ds u du s u 1 s u esto nos servira para simplificar los calculos en el algoritmo de aprendizaje aqui descrito Descripcion del algoritmo EditarA grandes rasgos Calcular la salida de la red o 2 displaystyle boldsymbol o 2 a partir de uno de los conjuntos de valores de prueba x displaystyle x Comparar con la salida correcta t displaystyle t y calcular el error segun la formula E x W 1 W 2 1 2 i 1 m t i o i 2 2 displaystyle E boldsymbol x boldsymbol W 1 boldsymbol W 2 frac 1 2 sum i 1 m t i o i 2 2 Calcular las derivadas parciales del error con respecto a los pesos W 2 displaystyle boldsymbol W 2 que unen a la ultima capa oculta con la de salida Calcular las derivadas parciales del error con respecto a los pesos W 1 displaystyle boldsymbol W 1 que unen la capa de entrada con la oculta Ajustar los pesos de cada neurona para reducir el error Repetir el proceso varias veces por cada par de entradas salidas de prueba O Xj F netj Notas Editar Goodfellow Bengio y Courville 2016 p 200 Por lo tanto la propagacion hacia atras con frecuencia se malinterpreta como un ser especifico a las redes neuronales multicapa pero en principio puede calcular derivadas de cualquier funcion Furthermore back propagation is often misunderstood as being specific to multi layer neural networks but in principle it can compute derivatives of any function Referencias Editar Goodfellow Bengio y Courville 2016 p 200Bibliografia EditarD Michie D J Spiegelhalter C C Taylor eds Machine Learning Neural and Statistical Classification 1994 1 R Rojas Neural Networks A Systematic Introduction Springer 1996 ISBN 3 540 60505 3 Enlaces externos EditarImplementacion del algoritmo en C Implementacion del algoritmo en Ruby Implementacion del algoritmo en C Explicacion grafica del algoritmo en ingles Datos Q798503 Obtenido de https es wikipedia org w index php title Propagacion hacia atras amp oldid 144681413, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos