49
Noviembre 2002 ESCOM IPN 1 CGBP

Algoritmo de Gradiente Conjugado CGBP

  • Upload
    escom

  • View
    11.095

  • Download
    9

Embed Size (px)

DESCRIPTION

Algoritmo de Gradiente Conjugado CGBP

Citation preview

Page 1: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 1

CGBP

Page 2: Algoritmo de Gradiente Conjugado 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

Page 3: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 3

Algoritmo deAlgoritmo de

Gradiente Gradiente

ConjugadoConjugado

Page 4: Algoritmo de Gradiente Conjugado CGBP

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

Page 5: Algoritmo de Gradiente Conjugado CGBP

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

Page 6: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 6

Si el algoritmo no ha convergido regrese al paso 2.

Page 7: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 7

Ejemplos Ejemplos Método del Método del Gradiente Gradiente ConjugadoConjugado

Page 8: Algoritmo de Gradiente Conjugado CGBP

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

Page 9: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 9

Solución

Page 10: Algoritmo de Gradiente Conjugado CGBP

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

Page 11: Algoritmo de Gradiente Conjugado CGBP

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( )()(

Page 12: Algoritmo de Gradiente Conjugado CGBP

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

Page 13: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 13

Ajuste :

y pruebe la condición de salida.Si ,

ir al paso 3, de otra forma detener

1kk

nk

Page 14: Algoritmo de Gradiente Conjugado CGBP

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.

Page 15: Algoritmo de Gradiente Conjugado CGBP

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.

Page 16: Algoritmo de Gradiente Conjugado CGBP

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”

Page 17: Algoritmo de Gradiente Conjugado CGBP

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

Page 18: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 18

B) Reducción delB) Reducción del Intervalo Intervalo

Page 19: Algoritmo de Gradiente Conjugado CGBP

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

Page 20: Algoritmo de Gradiente Conjugado CGBP

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

Page 21: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 21

Algoritmo CGBP Pasos Intermedios

-5 0 5 10 15-5

0

5

10

15

w11,1

w21,1

Page 22: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 22

Trayectoria Completa

-5 0 5 10 15-5

0

5

10

15

w11,1

w21,1

Page 23: Algoritmo de Gradiente Conjugado CGBP

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:

Page 24: Algoritmo de Gradiente Conjugado CGBP

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

Page 25: Algoritmo de Gradiente Conjugado CGBP

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()(

Page 26: Algoritmo de Gradiente Conjugado CGBP

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

Page 27: Algoritmo de Gradiente Conjugado CGBP

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

Page 28: Algoritmo de Gradiente Conjugado CGBP

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

Page 29: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 29

Simulación en Matlab / NNT

Page 30: Algoritmo de Gradiente Conjugado CGBP

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

Page 31: Algoritmo de Gradiente Conjugado CGBP

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.

Page 32: Algoritmo de Gradiente Conjugado CGBP

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)

Page 33: Algoritmo de Gradiente Conjugado CGBP

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

Page 34: Algoritmo de Gradiente Conjugado CGBP

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

Page 35: Algoritmo de Gradiente Conjugado CGBP

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

Page 36: Algoritmo de Gradiente Conjugado CGBP

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

Page 37: Algoritmo de Gradiente Conjugado CGBP

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

Page 38: Algoritmo de Gradiente Conjugado CGBP

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

Page 39: Algoritmo de Gradiente Conjugado CGBP

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´.

Page 40: Algoritmo de Gradiente Conjugado CGBP

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

Page 41: Algoritmo de Gradiente Conjugado CGBP

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

Page 42: Algoritmo de Gradiente Conjugado CGBP

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

Page 43: Algoritmo de Gradiente Conjugado CGBP

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´.

Page 44: Algoritmo de Gradiente Conjugado CGBP

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

Page 45: Algoritmo de Gradiente Conjugado CGBP

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

Page 46: Algoritmo de Gradiente Conjugado CGBP

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

Page 47: Algoritmo de Gradiente Conjugado CGBP

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´.

Page 48: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 48

Dudas ???

Page 49: Algoritmo de Gradiente Conjugado CGBP

Noviembre 2002 ESCOM IPN 49

Hasta la próxima !!!