redes neuronales con levenberg-marquardt lmbp
TRANSCRIPT
Noviembre 2002 ESCOM IPN 1
LMBP
Noviembre 2002 ESCOM IPN 2
Método de NewtonMétodo de Newtonxk 1+ xk Ak
1– gk–=
Ak F x 2x xk=
gk F x x xk=
Si el índice de desempeño es una suma del cuadrado de la función:
F x v i2 x
i 1=
N
vT x v x = =
Entonces el j-esimo elemento del gradiente es
F x jF x x j
--------------- 2 vi x vi x x j
---------------
i 1=
N
= =
Noviembre 2002 ESCOM IPN 3
Forma de la Matriz
F x 2JTx v x =
El gradiente se puede escribir en forma de matriz:
Donde J es la matriz Jacobiana:
J x
v1 x x1
----------------v1 x x2
---------------- v1 x xn
----------------
v2 x x1
----------------v2 x x2
---------------- v2 x xn
----------------
vN x x1
-----------------vN x x2
-----------------vN x xn
-----------------
=
Noviembre 2002 ESCOM IPN 4
Hessiano
F x 2 k j2F x xk x j
------------------ 2vi x x k
---------------vi x x j
--------------- vi x
2v i x xk x j
------------------+
i 1=
N
= =
F x 2 2JT x J x 2S x +=
S x vi x v i x 2
i 1=
N
=
Noviembre 2002 ESCOM IPN 5
Método de Método de Gauss-NewtonGauss-Newton
F x 2 2JTx J x
xk 1+ xk 2JT xk J xk 1–2JT xk v xk –=
xk JT xk J xk 1–JT xk v xk –=
Aproximar la matriz Hessiana como:
El método de Newton se transforma:
Noviembre 2002 ESCOM IPN 6
Algoritmo: Algoritmo: Levenberg-MarquardtLevenberg-Marquardt
H JTJ=
G H I+=
1 2 n z1 z2 zn
Gz i H I+ zi Hzi zi+ izi zi+ i + z i= = = =
Gauss-Newton aproxima el Hesiano por:
Esta matriz puede ser singular, pero puede ser invertible como sigue:
Si los eigenvalores y eigenvectores de H son:
entonces Eigenvalues of G
xk 1+ x k JT x k J x k kI+ 1–JT xk v xk –=
Noviembre 2002 ESCOM IPN 7
Ajuste de k
Conforme Conforme kk0, LM se transforma0, LM se transforma
en Gauss-Newtonen Gauss-Newton..
x k 1+ xk JT xk J xk 1–JT x k v xk –=
Conforme Conforme kk, LM se transforma en Gradiente , LM se transforma en Gradiente
Descendente con razón de aprendizaje pequeñaDescendente con razón de aprendizaje pequeña.
x k 1+ xk1k-----JT xk v xk – x k
12k--------- F x –=
Noviembre 2002 ESCOM IPN 8
Por lo tanto, comience con un valor pequeño de k para usar Gauss Newton y velocidad
Convergencia. Si un paso no permite una pequeña F(x), entonces repetir el paso con un parámetro k mayor, hasta que F(x) sea decrementada. F(x) debe decrementarse eventualmente, puesto que habremos tomado un muy pequeño paso en la dirección del Gradiente Descendente.
Noviembre 2002 ESCOM IPN 9
Aplicación a las Redes Multicapa
F x tq aq– Ttq aq–
q 1=
Q
eqTeq
q 1=
Q
e j q 2
j 1=
SM
q 1=
Q
vi 2
i 1=
N
= = = =
El índice de desempeño para la red multicapa es:
El vector de error es:
El vector parámetro es:
vT
v1 v2 vN e1 1 e2 1 eSM
1e1 2 e
SMQ
= =
xT x1 x2 xn w1 11w1 2
1 wS
1R
1b1
1 bS
11
w1 12 b
SMM= =
N Q SM=
Las dimensiones de los dos vectores son:
n S1R 1+ S
2S
11+ S
MSM 1–
1+ + + +=
Noviembre 2002 ESCOM IPN 10
Matriz JacobinaMatriz Jacobina
J x
e1 1
w1 11
--------------e1 1
w1 21
-------------- e1 1
wS
1R
1----------------
e1 1
b11
------------
e2 1
w1 11
--------------
e2 1
w1 21
--------------
e2 1
wS
1R
1----------------
e2 1
b11
------------
eSM
1
w1 11
---------------eSM
1
w1 21
---------------eeSM
1
wS
1R
1----------------
eeSM
1
b11
----------------
e1 2
w1 11
--------------
e1 2
w1 21
--------------
e1 2
wS
1R
1----------------
e1 2
b11
------------
=
Noviembre 2002 ESCOM IPN 11
Calculo del JacobinoCalculo del Jacobino
F̂ x x l
---------------eqTeqx l
-----------------=
SDBP calcula terminos como:
J h lvhxl
--------e k qxl
------------= =
Para el Jacobiano se necesita calcular términos como:
F̂
w i jm
------------F̂
nim
---------
nim
wi jm
------------=
sim F̂
nim
---------
Usando la regla de la cadena:
Donde la sensibilidad
Se calcula usando backpropagation.
Noviembre 2002 ESCOM IPN 12
Sensibilidad de Sensibilidad de MarquardtMarquardt
Si se define una sensibilidad de Marquardt :
s̃i hm vh
ni qm
------------ek q
ni qm
------------= h q 1– SM k+=
Se puede calcular la Jacobiana como sigue:
J h lvh
x l--------
ek q
wi jm
------------ek q
ni qm
------------ni qm
w i jm
------------ s̃i hm ni q
m
wi jm
------------ s̃i hm
a j qm 1–
= = = = =
Pesos W
Umbral B
J h lvhxl
--------ek q
bim
------------
e k q
ni qm
------------ni qm
bim
------------ s̃i hm ni q
m
bim
------------ s̃i hm
= = = = =
Noviembre 2002 ESCOM IPN 13
Calculo de las Calculo de las SensibilidadesSensibilidades
s̃i hM vh
ni qM
------------ek q
ni qM
------------tk q ak q
M–
ni qM
--------------------------------ak qM
ni qM
------------–= = = =
s̃i hM
fÝMni qM – for i k=
0 for i k
=
S̃qM
FÝMnqM –=
S̃qm
FÝmnqm
( ) Wm 1+ TS̃qm 1+
= S̃m
S̃1mS̃2m S̃Q
m=
Backpropagation
Iniciación
Noviembre 2002 ESCOM IPN 14
Algoritmo LMBPAlgoritmo LMBP
Paso 1. Presentar todas las entradas a la red y calcular la salidas correspondiente
y los errores.
Calcular la suma de los errores cuadráticos en todas las entradas, F(x).
pa 0
1,,1,01111 MmbaWfa mmmmm Mqqq ate
Noviembre 2002 ESCOM IPN 15
Paso 2. Calcular la matriz Jacobina.
Inicializar con
Calcule la sensibilidades con las relaciones recurrentes.
Q
qqq
Tqq atatxF
1
)()()(
)(xJ
1~1.~ ))(( mq
mmq
mmq SWnFS
)(.~ Mq
mMq nFS
Noviembre 2002 ESCOM IPN 16
Aumente la matrices en las sensibilidades de Marquardt.
Calcule los elementos de la matriz Jacobina.
Solucione para obtener
mQmmmq SSSS ~~
2~
1~ |||
1~,
~,,
mqj
mhilh aSJ m
hilh SJ ~,,
)()()()(1
kkT
kkT
k xvxJIxJxJx
kx
kx
Noviembre 2002 ESCOM IPN 17
Paso 4. Recalcule la suma del error cuadrático usando. Si esta nueva suma de cuadrados es
mas pequeña, que el calculado en el paso 1, entonces divida
actualice y regrese al paso 1. Si la suma de los cuadrados no es
reducida, entonces multiplique k por y regrese al paso 3.
kk xx
kkk xxx 1
Noviembre 2002 ESCOM IPN 18
Ejemplo de LMBPEjemplo de LMBP
-5 0 5 10 15-5
0
5
10
15
w11,1
w21,1
Noviembre 2002 ESCOM IPN 19
Trayectoria del Trayectoria del LMBPLMBP
-5 0 5 10 15-5
0
5
10
15
w11,1
w21,1
Noviembre 2002 ESCOM IPN 20
Ejemplos Ejemplos Método de Método de
Levenberg- Levenberg- MarquardtMarquardt
Noviembre 2002 ESCOM IPN 21
Ejemplo: 1Encuentre la matriz Jacobina para
el primer paso del método de Levenberg Marquardt. Vea la figura siguiente.
1111 bpWfa 2222 baWfa
21 nnf nnf 2
Noviembre 2002 ESCOM IPN 22
Los pares entrada / salida son:
Los paramentos iniciales son:
11 11 TP 22 22 TP
01 11 bW
12 22 bW
01.010
Noviembre 2002 ESCOM IPN 23
Solución
14816
1144)(xJ
Noviembre 2002 ESCOM IPN 24
Algoritmo de Levenberg-Marquardt
)()()1( kWkWkW mmm
eJIJJkW TTm 1)(
eJkWkW Tmm
1
)()1(
eJIJJkWkW TTmm 1)()1(
Noviembre 2002 ESCOM IPN 25
Donde: Es la matriz Jacobina.
Es el parámetro Mu con valor de 0.01
Es el parámetro Nu con valor de 10, 5
Es una matriz identidad.
Es el error.
J
e
I
Noviembre 2002 ESCOM IPN 26
El LMBP es el algoritmo mas rápido que se ha probado para entrenar redes neuronales multicapa de tamaño moderado.
Su principal inconveniente es los requerimientos de memoria; si la red tiene mas de unos cuantos cientos de parámetros el algoritmo se vuelve impráctico.
Conclusiones del Conclusiones del
LMBPLMBP
Noviembre 2002 ESCOM IPN 27
Simulación en
Matlab / NNT
Noviembre 2002 ESCOM IPN 28
trainlmEntrena redes feed forward con el
algoritmo de Levenberg Marquardt.Se puede usar para entrenar redes
de 0, 1 y 2 capas ocultas.Este algoritmo es mucho mas rápido
que el de gradiente descendente tal como trainbp o trainbpx; sin embargo requiere de mas memoria.
Método de Levenverg-Marquart
Noviembre 2002 ESCOM IPN 29
Ejemplo use la funcion trainlm para una red de dos capas.
[W1,b1,W2,b2,epochs,tr] = trainlm (W1,b1,’tansig’, W2,b2,’purelin’,P,T,tp)
Parámetros opcionales para tp=Frecuencia de muestreo = 25;# Máximo de épocas= 1000;Sumatoria del error cuadrático=0.02;
Noviembre 2002 ESCOM IPN 30
Gradiente mínimo=0.0001;Valor inicial de =0.001;Multiplicador para Inc. =10Multiplicador para dec. =0.1;Máximo valor de =1E10
Noviembre 2002 ESCOM IPN 31
%EJEMPLO: OR EXCLUSIVAclear;echo on;clc;NNTWARN OFF; P = [0 0 1 1 ;0 1 0 1]; T = [0 1 1 0 ];
[w1,b1,w2,b2]=initff(P,2,'tansig',1,'purelin')
[w1, b1,w2,b2,epochs]= trainlm(w1,b1,'tansig',w2,b2,'purelin',P,T)
Noviembre 2002 ESCOM IPN 32
[a1,a2]=simuff(P,w1,b1,'tansig',w2,b2,'purelin')
pause %Pulse una tecla para graficar la solución
plotpv(P,T);plotpc(w1,b1);plotpc(w2,b2);echo off
Noviembre 2002 ESCOM IPN 33
trainlmEs una funcion que entrena redes
multicapa con retropropagación, actualizando W y b de acuerdo a la optimizacion de Levenberg-Marquardt.
Sintaxis[net, tr] = trainlm (net, P,T,A,Q,Ts,VV)
New: Algoritmo de BP con
Levenberg Marquardt
Noviembre 2002 ESCOM IPN 34
Donde:net = Define la red neuronalnet = netff([0 5 ], [3 1] ,{´tansig´,
´logsig´}, trainlm)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 35
Valores por omisiónValores por omisión
net.trainParam.epochs= 10net.trainParam.goal= 0net. trainParam.lr= 0.01net.trainParam.max_fail= 5net.trainParam.mem_reduc= 1
Noviembre 2002 ESCOM IPN 36
Valores por omisión (2)Valores por omisión (2)
net.trainParam.min_grad= 1e-10net. trainParam.show= 25net. trainParam.time= inf
Noviembre 2002 ESCOM IPN 37
Dudas ???
Noviembre 2002 ESCOM IPN 38
Hasta la próxima !!!