Document

Anuncio
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
Descargar