Algoritmo de retropropagación Back propagation Es utilizado para entrenar redes neuronales multicapa. Exige que la función de activación de las neuronas sea derivable y creciente. Las funciones comúnmente escogidas son: sigmoide, logística, tangente hiperbólica. Pretende minimizar el error cuyo dominio es el espacio de los pesos de las conexiones, descrito por la siguiente ecuación: E =1/2 ( y - p d ) pk k pk 2 2
Algoritmo de retropropagación Back propagation El algoritmo trabaja de la siguiente forma: Presenta un patrón de entrada a la red. Propaga dichas entradas hasta la capa de salida. Calcula el error en la capa de salida. Propaga dicho error hacia las neuronas ocultas (hacia atrás). Cambia los pesos de las conexiones. 3
Algoritmo de retropropagación Back propagation El procedimiento se hace para todos los patrones iterativamente hasta que la red converja a un valor del error deseado. Error SE 4
Algoritmo de retropropagación Back propagation Pasos del algoritmo: Inicializar aleatoriamente los pesos. Escoger aletoriamente un patrón de entrada x. Propagar la señal hacia adelante. Calcular el error en la capa de salida δ i (t)=f (x i (t))*(d i -y i ) 5
Algoritmo de retropropagación Back propagation Propagar dicho error hacia las neuronas ocultas (hacia atrás). δ j (t)=f (x i (t))*(σw ij δ i (t)) i Actualizar los pesos utilizando: donde: w ji (t+1)= w ji (t)+ w ji (t+1) w ji (t+1) = [ηδ j y i (t)+α w ji (t)] Repetir desde el paso 2 hasta alcanzar el error deseado. 6
Algoritmo de aprendizaje La base de este algoritmo es simplemente el método de descenso de gradiente que se emplea para optimizar una función de calidad de la ejecución de la red. Según las expresiones de los cómputos que realizan las U. P. podemos escribir la siguiente relación para la salida producida: 7
Algoritmo de aprendizaje Paso 0: Inicializar los pesos W ij y w jk, incluyendo los umbrales de manera aleatoria. Paso 1: Ejecutar los pasos del 2 al 9 hasta que la condición de parada sea falsa Paso 2: por cada patrón de entrenamiento < x k, ζ k > realizar pasos del 3 al 8 Paso 3: Aplicar el vector x k a la capa de entrada /* feed-forward phase (cálculo de las salidas V j,o i )*/ Paso 4: Calcular la salida de cada una de las neuronas de la capa escondida V j 8
9 Algoritmo de aprendizaje Paso 5: Calcular la salida de cada una de las n neuronas de la capa de salida O i ) ( ) ( = = j j ij i m k k jk j W V f O x w f V 1 1 ) ( ó 1 1 ) ( con x x x e e x f e x f + = + =
Algoritmo de aprendizaje /* Error backpropagation phase */ Paso 6: Para cada unidad de salida O i : i = ( ζ i O i ) f '( j W V ij j ) W ij = η( i) V j 10
Algoritmos de aprendizaje Paso 7: Para cada unidad de la capa escondida V j : sum i = w jk n = η( j) x i ( i) W j = ( sum i) f '( k m k ij w jk x k ) 11
Algoritmo de aprendizaje Paso 8: actualizar los pesos sinápticos : w W jk ij = w = W ij jk + w + W ij jk Paso 9: Calcular la condición de parada: (por ejemplo) E( w) = 1 2 p patrones ( n µ = 1 i= 1 ( ζ µ i O µ i ) 2 ) 12
Algoritmo Backpropagation Se presentan ejemplos a la red Si hay un error, los pesos son ajustados para reducirlo Dividir el error entre los pesos contribuyentes Minimizar el cuadrado del error Si el error es Erri Ti - Oi en el nodo de salida, la regla para actualizar el peso del nodo j al nodo i es: W j,i W j,i + α x aj x Err x g (ini), g derivada de g Si i = Erri g (ini), la regla de actualización es: Wj,i Wj,i + α x aj x i 13
Algoritmo Backpropagation Para actualizar las conexiones entre las unidades de entrada y las unidades ocultas, propagamos el error hacia atrás el nodo j es responsable por una fracción del error i en cada uno d elos nodos de salida al que se conecta la regla de propagación para los valores es: j g (inj) i Wj,i i la regla para actualizar los pesos entre unidades de entrada y ocultas es: Wk,j Wk,j + α x Ik x j 14
Algoritmo Backpropagation Calcular los valores de para las unidades de salida usando el valor observado empezando con el nivel de salida, repetir los sguientes pasos para cada nivel en la red, hasta que se alcance el primer nivel oculto: propagar los valores hacia el nivel anterior actualizar los pesos entre los dos niveles 15
Algoritmo Backpropagation function BP(red,patrones,α) returns retornar red con pesos estables inputs: red, una red multinivel repeat patrones = {entradas,salidas} α, tasa de aprendizaje for each p in patrones do /* Calcular salida del patrón p */ O RUN-NETWORK(red, Ie) /* Calcular el error y D para las neuronas en el nivel de salida */ Erre Te - O /* Actualizar pesos primero en el nivel de salida */ W j,i W j,i + α x aj x Err x g (ini) for each nivel in red do /* Calcular el error en cada nodo */ j g (inj) i W j,i i /* Actualizar pesos primero en el nivel */ Wk,j Wk,j + α x Ik x j end end until network has converged return network 16
Redes de Hamming Cuando las entradas a una RNA son binarias, las redes de Hamming son fundamentales. Una red Hamming selecciona un patrón ganador entre los almacenados {b m, m=1 k}. Es decir, escoge aquel que posee la menor distancia hamming con los datos de entrada. <b m,x>= ϕ (b k -x k ) <b m,x>= ϕ (b k -x k ) 2 La distancia hamming es el número de bits que no concuerdan entre los vectores de entrada y el patrón seleccionado. 17
Redes de Hamming Sea la red de la figura siguiente que solo acepta entradas binarias: 18
Redes de Hamming Sea el conjunto de patrones: 10 00 10 01 00 10 00 10 01 00 01 01 Y sea que la entrada dada es: 0110 por tanto la distancia hamming es: 19
Redes de Hamming Primer patrón: Dh = Sum { 1-0 + 0-1 + 0-1 + 0-0 }= 3 Segundo patrón: Dh = Sum { 0-0 + 1-1 + 0-1 + 0-0 }= 1 Tercer patrón: Dh = Sum { 0-0 + 0-1 + 1-1 + 0-0 }= 1 Cuarto patrón: Dh = Sum { 0-0 + 0-1 + 0-1 + 1-0 }= 3 20
Redes de Hamming En este caso, los mejores patrones son el segundo y el tercero. La distancia Hamming, también se define como: Numero total de bits que concuerdan - número de bits que no concuerdan. 21
Redes de Hamming Primer patrón: Dh = 1-3 = -2 Segundo patrón: Dh = 3-1 = 2 Tercer patrón: Dh = 3-1 = 2 Cuarto patrón: Dh = 1-3 = -2 22
Redes de Hamming Para el tipo de distancia anterior, siguen siendo el segundo y tercer patrón como los mejores. Considere la red siguiente, defina un conjunto de patrones (binarios) y determine la distancia de hamming. 23
Redes de Hamming 24
Considere la red siguiente, defina un conjunto de patrones (binarios) y determine la distancia de hamming. 25
26