Algoritmo de Gradiente Conjugado CGBP

Post on 04-Jun-2015

11.098 views 9 download

description

Algoritmo de Gradiente Conjugado CGBP

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 !!!