Paso 1. Inicializar los pesos de la red con valores pequeños

Anuncio
Capítulo 1
Red Backpropagation ..........................................................................1
Algoritmo...................................................................................................................................... 1.1
Estructura……………………………………………………………………………………………………………………………1.2
Gradiente descendiente………………………………………………………………………………………………………1.3
Derivada de la función sigmoidal………………………………………………………………………………………..1.4
Demostración de reglas de actualización…………………………………………………………………………….1.5
Razón de aprendizaje …………………………………………………………………………………………………………1.6
Momento………………………………………………………………………………………………………………………….1.7
Sesgo……………………………………………………………………………………………………………………………….1.8
Control de convergencia …………………………………………………………………………………………………..1.9
Condiciones de finalización .................................................................................................. 1.2.1
Capítulo
2
Desarrollo del Programa ................................................................................................. 2
Problema que resuelve ................................................................................................................ 2.1
Diseño y desarrollo……………………………………………………………………………………………………………2.2
Funcionamiento ………………………………………………………………………………………………………………..2.3
Evidencias (imagnes y código)…………………………………………………………………………………………….2.4
COMENTARIO …………………………………………………………………………………………………………………….2.5
REFERENCIAS ........................................................................................................................... 2.6
Algoritmo 1.1
ALGORITMO
Paso 1. Inicializar los
pesos de la red con
valores pequeños
aleatorios.
Paso 2. Presentar un
patrón de entrada y
especificar la salida
deseada que debe
generar la red.
Paso 3. Calcular la salida actual de la
red. Para ello se presentan las
entradas a la red y se calcula la
salida de cada capa hasta llegar a la
capa de salida, ésta será la salida de
la red. Los pasos son los siguientes:
Se calculan las entradas netas para
las neuronas ocultas procedentes de
las neuronas de entrada. Para una
neurona j oculta:
Paso 4. Calcular los
términos de error para
todas las neuronas.
Paso 5. Actualización de
los pesos: para ello
utilizamos un algoritmo
recursivo, comenzando
por las neuronas de
salida y trabajando
hacia atrás hasta llegar
a la capa de entrada,
ajustando los pesos de
la siguiente forma:
Paso 6. El proceso se repite
hasta que el término de
error resulta
aceptablemente pequeño
para cada uno de los
patrones aprendidos.
Estructura 1.2
>Paso 1. Inicializar los pesos de la red con valores pequeños aleatorios.
>Paso 2. Presentar un patrón de entrada y especificar la salida deseada que debe
generar la red.
>Paso 3. Calcular la salida actual de la red. Para ello se presentan las entradas a la
red y se calcula la salida de cada capa hasta llegar a la capa de salida, ésta será la
salida de la red. Los pasos son los siguientes:
Se calculan las entradas netas para las neuronas ocultas procedentes de las
neuronas de entrada. Para una neurona j oculta:
En donde el índice h se refiere a magnitudes de la capa oculta; el subíndice p, al p-ésimo
vector de entrenamiento, y j a la j-ésima neurona oculta. El término puede ser opcional,
pues actúa como una entrada más. θ
Se calculan las salidas de las neuronas ocultas:
Se realizan los mismos cálculos para obtener las salidas de las neuronas de salida:
Paso 4 . Calcular los términos de error para todas las neuronas.
Si la neurona k es una neurona de la capa de salida, el valor de la delta es:
La función f debe ser derivable. En general disponemos de dos formas de función
de salida:
La función lineal:
La función sigmoidal:
La selección de la función depende de la forma que se decida representar la salida:
si se desea que las neuronas de salida sean binarias, se utiliza la función sigmoidal,
en otros casos, la lineal.
Para una función lineal, tenemos
mientras que la derivada de una función
sigmoidal es:
por lo que los términos de error para las neuronas de salida quedan:
Para la salida lineal.
Para la salida sigmoidal.
Si la neurona j no es de salida, entonces la derivada parcial del error no puede ser
evaluada directamente, por tanto se obtiene el desarrollo a partir de valores que son
conocidos y otros que pueden ser evaluados.
La expresión obtenida en este caso es:
donde observamos que el error en las capas ocultas depende
de todos los términos de error de la capa de salida. De aquí surge el término
propagación hacia atrás.
Paso 5. Actualización de los pesos: para ello utilizamos un algoritmo recursivo,
comenzando por las neuronas de salida y trabajando hacia atrás hasta llegar a la
capa de entrada, ajustando los pesos de la siguiente forma:
Para los pesos de las neuronas de la capa de salida:
Para los pesos de las neuronas de la capa oculta:
En ambos casos, para acelerar el proceso de aprendizaje se puede añadir un
término momento.
Paso 6. El proceso se repite hasta que el término de error resulta aceptablemente
pequeño para cada uno de los patrones aprendidos.
Estructura y Aprendizaje de la Red Backpropagation 1.3
En una red Backpropagation existe una capa de entrada con n neuronas y una capa
de salida con m neuronas y al menos una capa oculta de neuronas internas. Cada
neurona de una capa (excepto las de entrada) recibe entradas de todas las
neuronas de la capa anterior y envía su salida a todas las neuronas de la capa
posterior (excepto las de salida). No hay conexiones hacia atrás feedback ni
laterales entre las neuronas de la misma capa.
La aplicación del algoritmo tiene dos fases, una hacia delante y otra hacia atrás.
Durante la primera fase el patrón de entrada es presentado a la red y propagado a
través de las capas hasta llegar a la capa de salida. Obtenidos los valores de salida
de la red, se inicia la segunda fase, comparándose éstos valores con la salida
esperada para así obtener el error. Se ajustan los pesos de la última capa
proporcionalmente al error. Se pasa a la capa anterior con una retropopagación del
error, ajustando los pesos y continuando con este proceso hasta llegar a la primera
capa. De esta manera se han modificado los pesos de las conexiones de la red para
cada patrón de aprendizaje del problema, del que conocíamos su valor de entrada
y la salida deseada que debería generar la red ante dicho patrón.
La técnica Backpropagation requiere el uso de neuronas cuya función de activación
sea continua, y por lo tanto, diferenciable. Generalmente, la función utilizada será
del tipo sigmoidal.
Derivada de la función sigmoidal 1.4
1
1+𝑒 −𝑥
𝜎(𝑥)=función Sigmoidal =
𝛿
𝛿
1
𝜎(𝑥) =
(
)
𝑑𝑥
𝑑𝑥 1 + 𝑒 −𝑥
𝑒 −𝑥
=(1+𝑒 −𝑥 )2
1+𝑒 −𝑥 −1
=(1+𝑒 −𝑥 )²
1+𝑒 −𝑥
1
1+𝑒 −𝑥
1
=(1+𝑒 −𝑥 )² − (1+𝑒 −𝑥 )²
=(1+𝑒 −𝑥 )² − (1+𝑒 −𝑥 )²
= 𝜎(𝑥) − 𝜎(𝑥)
𝜎 1 = 𝜎(1 − 𝜎)
𝛿
=(1
𝑑𝑥
+ 𝑒 −𝑥 )¯¹
𝛿
=-1=(1 + 𝑒 −𝑥 )¯2 . 𝑑𝑥 (1 + 𝑒 −𝑥 )
𝑑1
𝑑𝑥
=-(1 + 𝑒 −𝑥 )¯2 . (
+
𝑑𝑒 −𝑥
)
𝑑𝑥
= (1 + 𝑒 −𝑥 )¯2 . ( 𝑒 −𝑥 . (−1))
=(1 + 𝑒 −𝑥 )¯2 𝑒 −𝑥
𝑒 −𝑥
=(1+𝑒 −𝑥 )¯2
Demostración de reglas de actualización 1.5
𝜕𝐸
𝜕𝛴
1
= (0𝑘 − 𝑇𝑘)²
𝜕𝑊𝑖𝑗 𝜕𝑤𝑦𝑘𝐸²𝐾 2
2
𝑑
∑ (0k − tk)
( 0k − tk)
2
𝑑𝑤𝑖𝑗
𝑘𝑡𝑘
∑ (0k − tk) (
𝑑0𝑘
𝑑𝑡𝑘
−
)
𝑑𝑤𝑖𝑗
𝑑𝑤𝑖𝑗
𝑘𝑡𝑘
∑ (0k − tk) (
𝑑0𝑘
)
𝑑𝑤𝑖𝑗
𝑘𝑡𝑘
Si 0 k =𝜎 (Xk)
𝑑0𝑘
𝑑𝑥𝑘
= 𝜎(𝑋𝑘)(1 − 𝜎(𝑋𝑘))
𝑑𝑤𝑖𝑗
𝑑𝑤𝑖𝑗
∑(0k − tk)σ Xk ) (1 − 𝜎(𝑋 𝑘))
𝑘𝑡𝑘
𝑑𝑥𝑘
𝑑𝑤𝑖𝑗
Si X k=dwjk-0j
𝑑 𝑥 𝑘 𝑑 𝑤𝑖 𝑘
=
: 0𝑗
𝑑𝑤𝑖𝑗
𝑑𝑤𝑖𝑗
=
𝑑𝑤𝑗
𝑑𝑜𝑗
𝑑0𝑗
𝑘. 0 𝑗 . 𝑑𝑤𝑖𝑗
Si 0j=𝜎 (wij.xj)
= Wjk ∗
𝑑
(𝜎(𝑤𝑖𝑗 𝑥𝑗))
𝑑𝑤𝑖𝑗
𝑑𝑤𝑖 𝑗
= wjk ∗ σ (wijxj) (1 − σ(wij x))j 𝑑𝑤𝑖𝑗
= w j k*0j (1-0 jj) xj
Si xj=0j
Wjk. 0 j (1-0 j) 0 i
𝑑𝐸
= (∑(0k − tk)σ Xk ) (1 − 𝜎(𝑋 𝑘)) − (𝑊𝑗𝑘 ∗ 0 𝑗(1 − 0)0𝑖)
𝑑𝑤𝑖𝑗
𝑘𝑡𝑘
Si 𝜎 (X k)
(0 j (1 − 0j)0 i) ∗ ∑(0k − tk)0 k (1 − 0 k) ) ∗ 𝑄 𝑗 𝑘
𝑘𝑡𝑘
Si 𝝏k=0 k (0 k-t k) (1-0 k)
𝑑𝐸
= 0𝑖 0 𝑗(1 − 0𝑗) ∑ ∂k ∗ W j k
𝑑𝑤𝑖
𝑘𝑡𝑘
Si σj = 0j(1 − 0j) ∑ ∂k Wj k = 0iσj
𝑘𝑡𝑘
LVBP Razón de Aprendizaje Variable 1.6
2.-Razón de Aprendizaje Variable (LVBP)
Incrementa la velocidad de convergencia al aumentar la velocidad de aprendizaje
 en superficies planas y disminuye esta razón cuando la pendiente aumenta.
3.- Razón de Aprendizaje Adaptable (  )
Una forma de incrementar la velocidad de convergencia hacia un mínimo del error
cuadrático medio (E) es variando la velocidad de aprendizaje.
si E disminuye constantemente,  E es negativo para un número de pasos,
entonces se debe incrementar la  .
4.-Razón de Aprendizaje Adaptable (  ) 2
si E se ha incrementado (  E>0) entonces se debe reducir la  .
5. -Reglas del algoritmo VLBP (1)
1.- Si el error cuadrático se incrementa mayor a un porcentaje establecido (1% a
5%) después de haber actualizado W; entonces se descarta la actualización;
 se multiplica por 0 <  < 1
 se ajusta a cero (si se utiliza el momento).
6.-Reglas de algoritmo VLBP (2)
2.- si el error cuadrático disminuye después de haber actualizado W, entonces la
actualización es aceptada.
 es multiplicada por un factor  >1.
Si  había sido ajusta a cero, este regresa a su valor original.
7.-Reglas de Algoritmo VLBP
3.- Si el error cuadrático se incrementa en un valor menor a   , entonces la
actualización de W se acepta pero  no cambia.
Si  había sido ajusta a cero, este regresa a su valor original.
Valores típicos:  = 1.05  = 0.7  =4%
8.- Cuando la trayectoria viaja en línea recta,  y el tamaño del paso tienden a
incrementarse con una disminución del error constante.
Cuando la trayectoria llega a un valle angosto disminuye  rápidamente.
9.-w 1 1,1 w 2 1,1 Ejemplo
10.-Razón de Aprendizaje Error Cuadrático
11.-Variantes del Algoritmo VLBP
Delta-bar-delta (R. A Jacobs)
Cada parámetro de la red (W y b) tiene su propia razón de aprendizaje. El
algoritmo incrementa  , para un parámetro si este cambia en la misma dirección
por varia iteraciones. Si la dirección del parámetro (p/ej. W) cambia alternamente,
entonces debe reducirse la  .
12.-Variantes del Algoritmo VLBP (2)
Algoritmo de tolerancia SuperSAB (T. Tollenaere)
Es similar al Delta bar delta de Jacobs, pero tiene reglas más complejas para
ajustar la velocidad de aprendizaje 
Momento 1.7
El elegir un incremento adecuado influye en la velocidad con la que converge el
algoritmo, se sabe que con este control se puede realizar mediante el parámetro
denominado ganancia, normalmente se le asigna un valor pequeño, para asegurar
que la red llegue asentarse en una solución.
Esta variante añade un término que controla la velocidad de acercamiento al mínimo,
acelerándola cuando se está lejos del mínimo y deteniéndola cuando se está cerca
(influye en la velocidad del aprendizaje) y está dado por la expresión:
El cambio en el peso es proporcional al gradiente del error, siendo α (tasa de
aprendizaje) la constante de proporcionalidad
– Si α es grande, el error puede oscilar alrededor del mínimo
– Si α es pequeña, la convergencia de más lenta
Donde
es el incremento que sufrió el parámetro w en
la
Iteración anterior y n es un numero positivo que controla la importancia dada al
Incremento anterior y se denomina momento. Aplicación la regla de
Se obtiene:
Este método trata de ser más estable ya que si la derivada parcial del error
respecto al peso tiene el mismo signo en iteraciones consecutivas, la utilización
del momento procura un cambio mayor en el peso, acelerando así la convergencia
del algoritmo, presenta problemas en proximidades del mínimo.
Las mayores tasas de convergencia suelen lograrse para valores grandes tanto de h
(siempre que el aumento en dicho valor no produzca inestabilidades) como el
momento m. La elección de los pesos iniciales es también importante, ya que la
función de error para el PMC puede tener varios mínimos locales, y el punto final
de convergencia depende de las condiciones iniciales. Típicamente, dicho problema
se resuelve aplicando el algoritmo de retro propagaciones varias veces con
diferentes pesos iniciales hasta que se encuentra una solución adecuada.
Sesgo 1.8
El algoritmo Backpropagation emplea un ciclo propagación – adaptación de dos
fases. 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 superiores 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 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. Basándose en la señal de error percibida, se actualizan los pesos de
conexión de cada neurona, para hacer que la red converja hacia un estado que
permita clasificar correctamente todos los patrones de entrenamiento. 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 Página
6 de 9 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. Y a la inversa,
las unidades de las capas ocultas tienen una tendencia a inhibir su salida si el patrón
de entrada no contiene la característica para reconocer, para la cual han sido
entrenadas, el sesgo para una backpropagation se denota conforme a los siguientes
pasos:
Sea el problema de clasificación con dos clases con codificación Y = {−1, 1} y con
pérdida 0-1, (y, g(x)) = 1{y6=g(x)} y riesgo R(g(x)) = EY/x[(Y/x, g(x))], en el cuál, la
predicción óptima viene dada por la regla de Bayes: g(x) = arg inf g(x){R(g(x)) =
EY/x[(Y/x, g(x))]}
TEOREMA 1:
En el problema de clasificación anterior, si D es un conjunto de muestras aleatorias
de entrenamiento obtenidas de la distribución PX,Y, y ˆgn es el estimador obtenido
a partir de una muestra aleatoria Zn = (Z1, ..., Zn), con Zi =
(Xi,Yi), i = 1 : n, se verifica la siguiente descomposición de la esperanza del error de
predicción: MPE(ˆgn(x)) = EZn,Y/x[(Y/x, ˆgn(x))] = c1σ2(Y/x) +Sesgo(ˆgn(x)) + c2
Var(ˆgn(x)) (1) donde:
c1 = c1(x) =2PZn[ˆgn(x) = g(x)] − 1
c2 = c2(x) =½+1 si ˆg∗D (x) = g(x)
−1 en otro caso son constantes dependientes de x (y también del algoritmo), y:
Sesgo
(ˆgn(x)).=(g(x),
ˆg∗D(x))
Var(ˆgn(x))
.=EZn
[(ˆg∗D(x),
ˆgn(x)]σ2(Y/x).=EY/x[(Y/x, g(x))] donde ˆg∗D es la predicción principal en D
definidacomo: ˆg∗D (x)= argming(x)
EZn [(g(x), ˆgn(x))] que, en el problema de clasificación, es la moda de las
predicciones de las hipótesis entrenadas con muestras de D.
Análogamente, puede definirse:
ME (ˆgn(x)) = Sesgo (ˆgn(x)) + c2 Var(ˆgn(x)) (3)
y su correspondiente valor medio (análogamente para MPE):Página 7 de 9 ME (ˆgn)
= EX [ME(ˆgn(X))] = EX[Sesgo(ˆgn(X))] + EX[c2(X)Var(ˆgn(X))] (4) A diferencia de
la descomposición en regresión, el término de varianza, puede resultar negativo
debido a que c2(x) = −1 en los puntos donde existe sesgo:
Sesgo (ˆgn(x)) =(g(x), ˆg∗D(x)) = 1.
Ello significa que en estos puntos, cuanto más varianza menor error de
generalización. Claramente, esto no ocurre en el caso de regresión con pérdida
cuadrática. Por otra parte, es peculiar el término del ruido, pero su expresión sigue
rigurosamente el paralelismo con la descomposición con pérdida cuadrática,
[Domingos, 2000]. Para la regla de Bayes, su valor resulta intuitivo al ser el riesgo
de Bayes en x:
c1(x)EY/x[(Y/x, g(x))] = (2PZn [g(x) = g(x)] − 1)EY/x[(Y/x, g(x))] = EY/x[(Y/x,g(x))]
Sin embargo, para cualquier otro algoritmo entrenado con muestras de D, dicho
valor resulta menor que dicho riesgo si PZn[ˆgn(x) = g(x)] < 1 e, incluso negativo, si
PZn[ˆgn(x) = g(x)] < 0.5 con lo que, además, depende del algoritmo utilizado. Así, si
el estimador está lejos de ser óptimo, cuanto mayor ruido, mejor es su
comportamiento.
[Domingos, 2000] estudia el comportamiento de su propuesta de descomposición
con árboles de regresión (regression trees) y con clasificadores k-nearest
neighbors, y anima a estudiar dicho comportamiento con otros estimadores.
Control de convergencia 1.9
En las técnicas de gradiente descendente es conveniente avanzar por la superficie
de error con incrementos pequeños de los pesos.
Información local de la superficie.
Incrementos grandes: se corre el riesgo de pasar por encima del punto mínimo sin
conseguir estacionarse en él. · Incrementos pequeños: aunque se tarde más en
llegar, se evita que ocurra esto.
El elegir un incremento adecuado influye en la velocidad con la que converge el
algoritmo. Sabemos que este control lo podemos realizar mediante el parámetro
denominado ganancia. Normalmente se le asigna un valor pequeño (0,05-0,25) para
asegurar que la red llegue a asentarse en una solución.
Otra manera de incrementar la velocidad de aprendizaje, consiste en utilizar otro
parámetro llamado Momento:
Un último aspecto a tener en cuenta es la posibilidad de convergencia hacia alguno
de los mínimos locales.


No se puede asegurar en ningún momento que el mínimo que se encuentre
sea global.
Una vez que la red se asienta en un mínimo, sea local o global, cesa el
aprendizaje, aunque el error siga siendo demasiado alto, si se ha alcanzado
un mínimo local.
Si se alcanza un mínimo local y el error es satisfactorio, el entrenamiento ha sido un
éxito, si no sucede así, puede realizarse varias acciones para solucionar el
problema:




Cambio de arquitectura (más capas ocultas o más PE)
Modificación de parámetros de aprendizaje.
Emplear un conjunto de pesos iniciales diferentes.
Modificar el conjunto de entrenamiento o presentar los patrones en distinta
secuencia.
Capitulo 2
Desarrollo del programa
Problema que resuelve
Descargar