Redes Neuronales Artificiales Algoritmo de retropropagación Back propagation Es utilizado para entrenar redes neuronales multicapa. Redes Neuronales Artificiales 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 p = 1 / 2 ∑ ( y pk - d pk ) 2 k 2 Algoritmo de retropropagación Back propagation Redes Neuronales Artificiales 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 Redes Neuronales Artificiales 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 Redes Neuronales Artificiales 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’(xi(t))*(di-yi) 5 Algoritmo de retropropagación Back propagation Propagar dicho error hacia las neuronas ocultas (hacia atrás). δj(t)=f ’(xi(t))*(Σw δ (t)) ij i i Redes Neuronales Artificiales Actualizar los pesos utilizando: wji(t+1)= wji(t)+∆wji(t+1) donde: ∆wji(t+1) = [ηδjyi(t)+α∆wji(t)] Repetir desde el paso 2 hasta alcanzar el error deseado. 6 Algoritmo de aprendizaje Redes Neuronales Artificiales 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 Wij y wjk , incluyendo los umbrales de manera aleatoria. Paso 1: Ejecutar los pasos del 2 al 9 hasta que la condición de parada sea falsa Redes Neuronales Artificiales Paso 2: por cada patrón de entrenamiento < xk, ζk > realizar pasos del 3 al 8 Paso 3: Aplicar el vector xk a la capa de entrada /* feed-forward phase (cálculo de las salidas Vj ,Oi )*/ Paso 4: Calcular la salida de cada una de las neuronas de la capa escondida Vj 8 Algoritmo de aprendizaje Paso 5: Calcular la salida de cada una de las n neuronas de la capa de salida Oi m V j = f (∑ w jk xk ) k Redes Neuronales Artificiales Oi = f (∑ WijV j ) j 1 con f ( x) = ó −x 1+ e −x 1− e f ( x) = 1 + e−x 9 Algoritmo de aprendizaje /* Error backpropagation phase */ Paso 6: Para cada unidad de salida Oi : ∆i = (ζ i − Oi ) f ' (∑ WijV j ) Redes Neuronales Artificiales j ∆Wij = η (∆i )V j 10 Algoritmos de aprendizaje Paso 7: Para cada unidad de la capa escondida Vj : n Redes Neuronales Artificiales sum∆i = ∑ (∆i )Wij i m ∆j = ( sum∆i ) f ' (∑ w jk xk ) k ∆w jk = η (∆j ) xk 11 Algoritmo de aprendizaje Paso 8: actualizar los pesos sinápticos : w jk = w jk + ∆w jk Redes Neuronales Artificiales Wij = Wij + ∆Wij Paso 9: Calcular la condición de parada: (por ejemplo) 1 E ( w) = 2 p patrones n µ =1 i =1 ∑ (∑ (ζ µ i µ 2 − Oi ) ) 12 Redes Neuronales Artificiales 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 Redes Neuronales Artificiales 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 Redes Neuronales Artificiales 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 Redes Neuronales Artificiales Algoritmo Backpropagation function BP(red,patrones,α) returns retornar red con pesos estables inputs: red, una red multinivel α, tasa de aprendizaje patrones = {entradas,salidas} repeat 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 Neuronales Artificiales 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 {bm, m=1…k}. Es decir, escoge aquel que posee la menor distancia hamming con los datos de entrada. <bm,X>= ϕ (bk-xk) <bm,X>= ϕ (bk-xk)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 Redes Neuronales Artificiales Sea la red de la figura siguiente que solo acepta entradas binarias: 18 Redes de Hamming Sea el conjunto de patrones: – – Redes Neuronales Artificiales – – 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 Neuronales Artificiales 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 Redes Neuronales Artificiales 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 Neuronales Artificiales 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 Neuronales Artificiales 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 Neuronales Artificiales Redes de Hamming 24 Redes Neuronales Artificiales Considere la red siguiente, defina un conjunto de patrones (binarios) y determine la distancia de hamming. 25 26 Redes Neuronales Artificiales