Algoritmo de Gradiente Conjugado CGBP
description
Transcript of Algoritmo de Gradiente Conjugado CGBP
Noviembre 2002 ESCOM IPN 1
CGBP
Noviembre 2002 ESCOM IPN 2
Algoritmo de Gradiente Algoritmo de Gradiente Conjugado (CGBP)Conjugado (CGBP)
CGBP converge a un mínimo de una función cuadrática en un numero finito de iteraciones.
El procedimiento general para localizar un mínimo de una función en una dirección requiere:
Localizar el intervalo donde se encuentra
Reducir el intervalo
Noviembre 2002 ESCOM IPN 3
Algoritmo deAlgoritmo de
Gradiente Gradiente
ConjugadoConjugado
Noviembre 2002 ESCOM IPN 4
1. La primera dirección de búsqueda es el gradiente descendente
2. Tomar un paso y escoger una razón de aprendizaje para minimizar la función a lo largo de la dirección búsqueda.
00 gP kXXk xFg |)(
kkkk pXX 1
Noviembre 2002 ESCOM IPN 5
3. Seleccione la siguiente dirección de búsqueda de acuerdo a:
Donde:
kkTk
kTk
k pAppg
1 kkkk pgp
11
k
Tk
kTk
k gggg
Noviembre 2002 ESCOM IPN 6
Si el algoritmo no ha convergido regrese al paso 2.
Noviembre 2002 ESCOM IPN 7
Ejemplos Ejemplos Método del Método del Gradiente Gradiente ConjugadoConjugado
Noviembre 2002 ESCOM IPN 8
Ejemplo: 1Aplique el algoritmo de Gradiente
Conjugado a la siguiente función.
Los valores iniciales son:
A) Realice 2 iteraciones.B) Dibuje la superficie de error en 2D.C) Grafique los punto obtenidos.
22
21 25)( xxxF
5.0
5.00x
Noviembre 2002 ESCOM IPN 9
Solución
Noviembre 2002 ESCOM IPN 10
Método de Gradiente conjugado para la solución
de Ecuaciones Normales
1.- Inicialice los componentes del vector de pesos con valores arbitrarios pequeños.
2.- Ajustar k=0, Calcular la dirección inicial del conjugado d0 y el vector de ganancia g0.
)0()()()(00
si
ssi WCpgd
Noviembre 2002 ESCOM IPN 11
3.- Determine el coeficiente del vector conjugado. Donde
4.- Actualice el vector de pesos.
ksT
k
kTk
k dCddg
)( )()()( )( si
si
sk pkWCg
kks
is
i dkWkW )()1( )()(
Noviembre 2002 ESCOM IPN 12
5.- Determine el nuevo vector de ganancia.
6.- Determine la nueva dirección del gradiente conjugado.
)()()(1 )1( s
is
is
k pkWCg
kkkk dgd 11
kTk
ksT
kk gg
dCg )(1
Noviembre 2002 ESCOM IPN 13
Ajuste :
y pruebe la condición de salida.Si ,
ir al paso 3, de otra forma detener
1kk
nk
Noviembre 2002 ESCOM IPN 14
Inconvenientes del CGBP.
El algoritmo GC nos puede aplicar directamente al entrenamiento de RNA, dado que el índice de desempeño de las mismas no es cuadrático.
No se puede usar k para minimizar la función a lo largo de una línea.
No se alcanzara un mínimo exacto en un numero finito de iteraciones.
Noviembre 2002 ESCOM IPN 15
Para localizar un mínimo de una función en una dirección especificada se requiere: a) Localización del intervalo. b) Reducción del intervalo.
El propósito del paso de localización del intervalo es encontrar un intervalo inicial que contenga un mínimo local.
Noviembre 2002 ESCOM IPN 16
El paso de la reducción del intervalo, reduce el tamaño del intervalo hasta que el mínimo es localizado en la precisión deseada.
Para lo anterior se propuso: “El método de búsqueda de la
Sección de Oro”
Noviembre 2002 ESCOM IPN 17
A) Localización del IntervaloA) Localización del Intervalo
Búsqueda de la sección de oroBúsqueda de la sección de oro
Noviembre 2002 ESCOM IPN 18
B) Reducción delB) Reducción del Intervalo Intervalo
Noviembre 2002 ESCOM IPN 19
Búsqueda de la Búsqueda de la sección de orosección de oro
=0.618Set c1 = a1 + (1-)(b1-a1), Fc=F(c1)
d1 = b1 - (1-)(b1-a1), Fd=F(d1)
For k=1,2, ... repeatIf Fc < Fd then
Set ak+1 = ak ; bk+1 = dk ; dk+1 = ck
c k+1 = a k+1 + (1-)(b k+1 -a k+1 )
Fd= Fc; Fc=F(c k+1 )
elseSet ak+1 = ck ; bk+1 = bk ; ck+1 = dk
d k+1 = b k+1 - (1-)(b k+1 -a k+1 )
Fc= Fd; Fd=F(d k+1 )
endend until bk+1 - ak+1 < tol
Noviembre 2002 ESCOM IPN 20
Ejemplo: 2Realice una iteración del algoritmo de
Gradiente Conjugado para la función:
Para la minimización lineal use la localización del intervalo mediante la evaluación de la función F(x); y para la reducción del intervalo por medio de Búsqueda de la Sección de Oro.
2221
21)( xxxxxF
Noviembre 2002 ESCOM IPN 21
Algoritmo CGBP Pasos Intermedios
-5 0 5 10 15-5
0
5
10
15
w11,1
w21,1
Noviembre 2002 ESCOM IPN 22
Trayectoria Completa
-5 0 5 10 15-5
0
5
10
15
w11,1
w21,1
Noviembre 2002 ESCOM IPN 23
Algoritmo de Gradiente Conjugado para entrenar MLP NN
Paso 1. Inicializar los pesos de la red con valores aleatorios pequeños.
Paso 2. Propague el q-esimo patrón de entrenamiento, a través de la red calculando la salida en cada nodo.
Paso 3. Calcule el error local en cada nodo de la red. Para los nodos de salida el error local se calcula por:
Noviembre 2002 ESCOM IPN 24
Donde g(.) es la derivada de la funcion de activación f(.). Para cada nodo de la capa oculta el error se calcula como:
)( )()(,
)( siq
siqoutiq
siq vgxd
)( )(1
1
)1()1()( siq
ns
h
shi
shq
siq vgW
Noviembre 2002 ESCOM IPN 25
Paso 4. Cada combinador lineal estima la salida deseada, dado por:
donde
Paso 5. Actualice el estimado de la matriz de covarianza en cada capa.
Actualice el estimado del vector de correlación cruzado para cada nodo.
)(1)( siq
siq dfv )()(
,)( s
iqs
iqouts
iq xd
Tsqout
sqout
ss xxkbCkC )1(,
)1(,
)()( )1()(
Noviembre 2002 ESCOM IPN 26
Donde k es el índice de presentación del patrón.
Paso 6.Actualice el vector de pesos para cada nodo en la red, como sigue.
(a) En cada nodo calcule sino,
Si ,no actualice el vector de pesos para el nodo y vaya al paso 7; sino realice los siguientes pasos.
)1(,
)()()( )1()( sqout
si
si
si xvkbpkp
)()()()( )()()()( kpkWkCkg si
si
ssi
0)( sig
Noviembre 2002 ESCOM IPN 27
(b) Encuentre la direccion d(k). Si el numero de iteración es un entero múltiplo del numero de pesos en el nodo , entonces:
sino
donde
)()( )()( kgkd si
si
)1()()( )()()()( kdkgkd si
si
si
si
)1()()1(
)1()()( )()()(
)()()()(
kdkCkd
kdkCkg s
isTs
i
si
sTs
is
i
Noviembre 2002 ESCOM IPN 28
(c) Calcule el tamaño del paso
(d) Modifique el vector de pesos de acuerdo a
Paso 7. Si la red no ha convergido vaya al paso 2.
)()()()()()()()(
)()()(
kdkCkdkdkg
si
sTsi
si
Tsis
i
)()()1()( )()()()( kdkkWkW si
si
si
si
Noviembre 2002 ESCOM IPN 29
Simulación en Matlab / NNT
Noviembre 2002 ESCOM IPN 30
Algoritmos de Gradiente Conjugado
Fletcher-Reeves (traincgf). Tiene los requerimientos mas pequeños de almacenaje de todos los algoritmos de Gradiente conjugado.
Polak-Riviére (traincgp). Tiene los requerimientos de almacenaje ligeramente mas grandes que el de Fletcher-Reeves. Tiene una mayor velocidad de convergencia en algunos problemas
Noviembre 2002 ESCOM IPN 31
Algoritmos de Gradiente Conjugado (2)
Powell-Beale (traincgb). Tiene los requerimientos de almacenaje ligeramente mas grandes que el de Polak-Riviére. Tiene generalmente una mayor velocidad de convergencia.
Gradiente Conjugado Escalado (trainscg). Es el único algoritmo de este tipo que no requiere línea de búsqueda. Es un algoritmo de entrenamiento de propósito general muy bueno.
Noviembre 2002 ESCOM IPN 32
trainscgEs una funcion que entrena redes
multicapa con retropropagación, actualizando W y b de acuerdo al método de gradiente conjugado escalado.
Sintaxis[net, tr] = trainscg (net,
P,T,A,Q,Ts,VV)
Algoritmo de BP con Gradiente
Conjugado Escalado (SCGBP)
Noviembre 2002 ESCOM IPN 33
Donde:net = Define la red neuronalnet = netff([0 5 ], [3 1] ,{´tansig´,
´logsig ´}, trainscg)P patrones de entradaT valores objetivoAi Condiciones inicialesQ Tamaño del loteTs Tamaño del pasoVV Matriz vacía o vectores de validación
Noviembre 2002 ESCOM IPN 34
Valores por omisiónValores por omisión
net.trainParam.epochs= 100net. trainParam.show= 25net.trainParam.goal= 0net. trainParam.time= inf net.trainParam.min_grad= 1e-6
Noviembre 2002 ESCOM IPN 35
Valores por omisión (2)Valores por omisión (2)
net.trainParam.max_fail= 5net.trainParam.sigma= 5e-5net. trainParam.lambda= 5e-7
Noviembre 2002 ESCOM IPN 36
traincgfEs una funcion que entrena redes
multicapa con retropropagación, actualizando W y b de acuerdo al método de gradiente conjugado de Fletcher-Reeves .
Sintaxis[net, tr] = traincgf (net,
P,T,Ai,Q,Ts,VV)
Algoritmo de BP con Gradiente
Conjugado. Fletcher-Reeves
Noviembre 2002 ESCOM IPN 37
Donde:net = Define la red neuronalnet = netff([0 5 ], [3 1] ,{´tansig´,
´logsig ´}, traincgf)P patrones de entradaT valores objetivoAi Condiciones inicialesQ Tamaño del loteTs Tamaño del pasoVV Matriz vacía o vectores de validación
Noviembre 2002 ESCOM IPN 38
Valores por omisiónValores por omisión
net.trainParam.epochs= 100net. trainParam.show= 25net.trainParam.goal= 0net. trainParam.time= inf net.trainParam.min_grad= 1e-6
Noviembre 2002 ESCOM IPN 39
Valores por omisión (2)Valores por omisión (2)
net.trainParam.max_fail= 5net.trainParam.searchFcn=
Nombre de la rutina de linea de busqueda usar ´srchcha´.
Noviembre 2002 ESCOM IPN 40
traincgpEs una funcion que entrena redes
multicapa con retropropagación, actualizando W y b de acuerdo al método de gradiente conjugado de Polak-Ribiére .
Sintaxis[net, tr] = traincgp (net,
P,T,A,Q,Ts,VV,TV)
Algoritmo de BP con Gradiente
Conjugado Polak-Ribiére
Noviembre 2002 ESCOM IPN 41
Donde:net = Define la red neuronalnet = netff([0 5 ], [3 1] ,{´tansig´, ´logsig
´}, traincgp)P patrones de entradaT valores objetivoAi Condiciones inicialesQ Tamaño del loteTs Tamaño del pasoVV Matriz vacía o vectores de validaciónTV Matriz vacía o vectores de prueba
Noviembre 2002 ESCOM IPN 42
Valores por omisiónValores por omisión
net.trainParam.epochs= 100net. trainParam.show= 25net.trainParam.goal= 0net. trainParam.time= inf net.trainParam.min_grad= 1e-6
Noviembre 2002 ESCOM IPN 43
Valores por omisión (2)Valores por omisión (2)
net.trainParam.max_fail= 5net.trainParam.searchFcn=
Nombre de la rutina de linea de busqueda usar ´srchcha´.
Noviembre 2002 ESCOM IPN 44
traincgbEs una funcion que entrena redes
multicapa con retropropagación, actualizando W y b de acuerdo al método de gradiente conjugado de Powell-Beale.
Sintaxis[net, tr] = traincgb (net,
P,T,A,Q,Ts,VV,TV)
Algoritmo de BP con Gradiente
Conjugado Powell-Beale
Noviembre 2002 ESCOM IPN 45
Donde:net = Define la red neuronalnet = netff([0 5 ], [3 1] ,{´tansig´, ´logsig
´}, traincgb)P patrones de entradaT valores objetivoAi Condiciones inicialesQ Tamaño del loteTs Tamaño del pasoVV Matriz vacía o vectores de validaciónTV Matriz vacía o vectores de prueba
Noviembre 2002 ESCOM IPN 46
Valores por omisiónValores por omisión
net.trainParam.epochs= 100net. trainParam.show= 25net.trainParam.goal= 0net. trainParam.time= inf net.trainParam.min_grad= 1e-6
Noviembre 2002 ESCOM IPN 47
Valores por omisión (2)Valores por omisión (2)
net.trainParam.max_fail= 5net.trainParam.searchFcn=
Nombre de la rutina de linea de busqueda usar ´srchcha´.
Noviembre 2002 ESCOM IPN 48
Dudas ???
Noviembre 2002 ESCOM IPN 49
Hasta la próxima !!!