Está en la página 1de 15

CAPITULO III

Se llama retro propagación al uso del método LMS en redes multicapa se puede considerar
entonces como una generalización de LMS. El ejemplo clásico que requiere multicapas es el
XOR sus entradas y sus salidas son:

0 0 1 1
{𝑝̅1 = [ ] 𝑡1 = 0} , {𝑝̅2 = [ ] 𝑡2 = 1}, {𝑝̅3 = [ ] 𝑡3 = 1} {𝑝̅4 = [ ] 𝑡4 = 0}
0 1 0 1

Una red de dos capas puede resolverlo, su solución no es única. Una solución consiste en crear
dos fronteras, la primera separa 𝑝̅1 de las demás y la segunda separa 𝑝̅4 de las otras.

Los resultados se muestran a continuación:

Como se puede verificar.

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


Este problema impulsó el desarrollo de las redes neuronales especialmente hacia la
retropropagación y el uso de multicapas.

III.I) EL METODO DE RETROPROPAGACIÓN

Aproximación de funciones

Hasta ahora se ha estudiado las NN como clasificadores de patrones o en búsqueda de mínimos.


Sin embargo, también puede aplicarse en funciones de aproximadoras, especialmente en el
control.

Para ejemplificarlo, sea la siguiente red:

La salida 𝑎 2 vs la entrada es

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


En los siguientes gráficos se observa el cambio en esta función al modificar pesos o sesgos.

Donde se puede observar la capacidad de NN de aproximarse a cualquier función.

El Algoritmo de Retropropagación

Consideremos una red de tres capas

Donde:

𝑎̅1 = 𝑓1̅ (𝑊1 𝑝̅ + 𝑏̅1 )

𝑎̅ 2 = 𝑓2̅ (𝑊 1 𝑎̅1 + 𝑏̅2 )

𝑎̅ 3 = 𝑓3̅ (𝑊 3 𝑎 2 + 𝑏̅3 )

Entonces

𝑎̅ 3 = 𝑓 ̅3 {𝑊 3 𝑓̅2 [𝑊 2 𝑓11̅ (𝑊 1 𝑝̅ + 𝑏̅1 ) + 𝑏̅2 ] + 𝑏̅3 }

Para un conjunto de entrenamiento


{𝑝̅1 , 𝑡1̅ }, {𝑝̅2 , 𝑡2̅ }, … {𝑝̅𝑎 , 𝑡𝑎̅ }

La función --- es

𝐹(𝑥̅ ) = 𝑘̅{𝑒 2 } = 𝐸{𝑒̅ 𝑇 𝑒̅} − 𝐸{(𝑡̅ − 𝑎̅)𝑇 (𝑡̅ − 𝑎̅)}

O bien el error en el paso k es

𝐹̂ (𝑥̅ ) = 𝑒̅ 𝑇 (𝑘)𝑒̅(𝑘) = [𝑡̅(𝑘) − 𝑎̅(𝑘)]𝑇 [𝑡̅(𝑘) − 𝑎̅(𝑘)]

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


El método de pasos descendentes es

𝜕𝐹̂
𝑏𝑖𝑚 (𝑘 + 1) = 𝑏1𝑚 (𝑘) − 𝛼
𝜕𝑏𝑖𝑚

Podemos usar la regla de cadena en las derivadas

𝜕𝐹̂ 𝜕𝐹̂ 𝜕𝑛𝑖𝑚


𝑚 = ×
𝜕𝑤𝑖,𝑗 𝜕𝑛𝑖𝑚 𝜕𝑤𝑖,𝑗𝑚

𝜕𝐹̂ 𝜕𝐹̂ 𝜕𝑛𝑖𝑚


= ×
𝜕𝑏𝑖𝑚 𝜕𝑛𝑖𝑚 𝜕𝑏𝑖𝑚

Donde
𝑠𝑚−1

𝑛𝑖𝑚 = ∑ 𝑤𝑖,𝑗
𝑚 𝑚−1
𝑎𝑗 + 𝑏𝑖𝑚
𝑖=1

Entonces

𝜕𝑛𝑖𝑚 𝑚−1 𝜕𝑛𝑖𝑚


𝑚 = 𝑎𝑗 , =1
𝜕𝑤𝑖,𝑗 𝜕𝑏𝑖𝑚

Se define ahora 𝑠𝑖𝑚 como la sensibilidad del error en el i-esimo elemento de la capa m

𝜕𝐹̂
𝑠𝑖𝑚 ≡
𝜕𝑛𝑖𝑚

Entonces

𝜕𝐹̂ 𝑚 𝑚−1
𝑚 = 𝑠𝑖 𝑎𝑗
𝜕𝑤𝑖,𝑗

𝜕𝐹̂
= 𝑠2𝑚
𝜕𝑏𝑖𝑚

Y el algoritmo de pasos descendentes se puede expresar como

𝑚 (𝑘 𝑚 (𝑘)
𝑤𝑖,𝑗 + 1) = 𝑤𝑖,𝑗 − 𝛼𝑠𝑖𝑚 𝑎𝑗𝑚−1

𝑏𝑖𝑚 (𝑘 + 1) = 𝑏𝑖𝑚 (𝑘) − 𝛼𝑠𝑖𝑚

O en forma matricial

𝑊 𝑚 (𝑘 + 1) = 𝑊 𝑚 (𝑘)−∝ 𝑠̅ 𝑚 (𝑎̅ 𝑚−1 )𝑇

𝑏̅𝑚 (𝑘 + 1) = 𝑏̅𝑚 (𝑘) − 𝛼𝑠̅ 𝑚

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


Donde
𝑇
𝜕𝐹̂ 𝜕𝐹̂ 𝜕𝐹̂ 𝜕𝐹̂
𝑠𝑚 ≡ = [ … ]
𝜕𝑛̅𝑚 𝜕𝑛̅1𝑚 𝜕𝑛̅2𝑚 𝜕𝑛̅𝑚
𝑠𝑚

Para el cálculo de la sensibilidad 𝑠̅ 𝑚 , se requiere de la capa 𝑚 + 1 de ahí el nombre de


retropropagación.

Partamos de la matriz jacobiana

𝜕𝑛1𝑚+1 𝜕𝑛1𝑚+1 𝜕𝑛1𝑚+1



𝜕𝑛1𝑚 𝜕𝑛2𝑚 𝜕𝑛𝑚𝑠𝑚
𝜕𝑛2𝑚+1 𝜕𝑛2𝑚+1 𝜕𝑛2𝑚+1
𝜕𝑛̅𝑚+1 …
≡ 𝜕𝑛1𝑚 𝜕𝑛2𝑚 𝜕𝑛𝑚𝑠𝑚
𝜕𝑛̅𝑚
⋮ ⋮ … ⋮
𝑚+1 𝑚+1
𝜕𝑛𝑠𝑚+1 𝜕𝑛𝑠𝑚+1 𝜕𝑛𝑠𝑚+1
𝑚+1

[ 𝜕𝑛1𝑚 𝜕𝑛2𝑚 𝜕𝑛𝑚𝑠𝑚 ]

Donde

𝑚
𝜕𝑛𝑖𝑚+1 𝜕(∑𝑠𝑖=1 𝑤𝑖,𝑗
𝑚+1 𝑚
𝑎𝑖 + 𝑏𝑖𝑚+1 ) 𝑚+1
𝜕𝑎𝑗𝑚 𝑚+1
𝜕𝑓 𝑚 (𝑛𝑗𝑚 ) 𝑚+1 ̇ 𝑚
= = 𝑤𝑖,𝑗 = 𝑤𝑖,𝑗 = 𝑤𝑖,𝑗 𝑓 (𝑛𝑗𝑚 )
𝜕𝑛𝑗𝑚 𝜕𝑛𝑗𝑚 𝜕𝑛𝑗𝑚 𝜕𝑛𝑗𝑚

Donde

𝜕𝑓 𝑚 (𝑛𝑗𝑚 )
𝑓̇ 𝑚 (𝑛𝑗𝑚 ) =
𝜕𝑛𝑗𝑚

Entonces la matriz jacobiana puede escribirse

𝜕𝑛̅𝑚+1
= 𝑊 𝑚+1 𝐹̅̇ 𝑚 (𝑛̅𝑚 )
𝜕𝑛̅𝑚
Donde

𝑓̇ 𝑚 (𝑛1𝑚 ) 0 … 0
0 𝑓̇ 𝑚 (𝑛𝑚 )
… 0
𝐹̅̇ 𝑚 (𝑛̅𝑚 ) = 1
⋮ ⋮ … ⋮
[ 0 0 … 𝑓̇ 𝑚 (𝑛𝑠𝑚𝑚 )]

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


Entonces la ecuación de recurrencia para la sensibilidad puede escribirse

𝑇
𝜕𝐹̂ 𝜕𝑛̅𝑚+1 𝜕𝐹̂ 𝜕𝐹̂
𝑠̅ 𝑚 = 𝑚=( ) = ̅̇ 𝑚 (𝑛̅𝑚 )(𝑊
𝐹 ̅ 𝑚+1 )𝑇 = 𝐹̅̇ 𝑚 (𝑛̅𝑚 )(𝑊
̅ 𝑚+1 )𝑇 𝑠̅ 𝑚+1
𝜕𝑛̅ 𝜕𝑛̅𝑚 𝜕𝑛̅𝑚+1 𝜕𝑛̅𝑚+1

Que es la ecuación de retropropagación. Se requiere aun el punto de inicio 𝑠̅ 𝑚 en la capa final

𝑆 𝑀 2
𝜕𝐹̂ 𝜕(𝑡̅ − 𝑎̅)𝑇 (𝑡̅ − 𝑎̅) 𝜕 ∑𝑗=1 (𝑡𝑗− 𝑎𝑗 ) 𝜕𝑎𝑖
𝑠𝑖𝑀 = 𝑀= = = −2(𝑡𝑖 − 𝑎 𝑖 )
𝜕𝑛̅ 𝜕𝑛𝑖𝑀 𝜕𝑛𝑖𝑀 𝜕𝑛𝑖𝑀

Ahora

𝜕𝑎𝑖 𝜕𝑎𝑖𝑀 𝜕𝑓 𝑀 (𝑛𝑗𝑀 )


= = = 𝑓̇ 𝑀 (𝑛𝑖𝑀 )
𝜕𝑛𝑖𝑀 𝜕𝑛𝑖𝑀 𝜕𝑛𝑖𝑀

Y se puede escribir

𝑠𝑖𝑀 = −2(2𝑖 − 𝑎𝑖 )𝑓̇ 𝑀 (𝑛𝑗𝑀 )

O en forma matricial

𝑠̅ 𝑀 = −2𝐹̅̇ 𝑀 (𝑛̅𝑀 )(𝑡̅ − 𝑎̅)


𝜋𝑝⁄
Por ejemplo, sea la siguiente red que debe aproximarse a la función 𝑔(𝑝) = 1𝑠𝑒𝑛( 4) para
−2 ≤ 𝑝 ≤ 2

Usando los valores iniciales

−0.27 −0.5
𝑤 1 (0) = ( ), 𝑏̅1 (0) = ( ) , 𝑤 2 (0) = [0.09 −0.17], 𝑏̅2 (0) = (0.5)
−0.41 −0.25

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


Y la tasa de aprendizaje 𝑥 = 0.15

Para estos valores iniciales se tiene la salida

Iniciemos con 𝑝̅ = 1, 𝑎̅ 0 = 𝑝̅ = 1 ← por el mismo algoritmo

Ahora
−0.27 [1] −0.5
𝑎̅1 = 𝑓 ̅1 (𝑤 1 𝑎̅0 + 𝑏̅1 ) = log 𝑠𝑖𝑔
̅̅̅̅ ([ ] +[ ])
−0.41 −0.25
1
−0.77 0.77 0.3165
log 𝑠𝑖𝑔
̅̅̅̅ ([ ]) = [1 + 𝑒 ]=[ ]
−0.66 1 0.3407
1 + 𝑒 0.66
La segunda capa es

0.3165
𝑎̇ 2 = 𝑓 2 (𝑤 2 𝑎̅1 + 𝑏̅2 ) = 𝑝𝑢𝑟𝑒𝑙𝑖𝑛 ([0.04 −0.17] [ ] + 0.5) = 0.4706
0.3407

El error es
𝜋 𝜋
𝑒 = 𝑡 − 𝑎 = {1 + 𝑠𝑒𝑛 ( 𝑝)} − 𝑎 2 = {1 + 𝑠𝑒𝑛 ( )} − 0.4706 = 1.2365
4 4

Se requieren las derivadas

𝑑 1 𝑒̅ 𝑛 1 1
𝑓̇ 1 (𝑛) = ( 𝑛 ) = 𝑛 2 = (1 − 𝑛 )( ) = (1 − 𝑎̇ 1 )(𝑎1 )
𝑑𝑛 1 + 𝑒̅ (1 + 𝑒̅ ) 1 + 𝑒̅ 1 + 𝑒̅ 𝑛

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


Y la segunda
1
𝑓 ̅2 (𝑛) = (𝑛) = 1
𝑑𝑛

Se realiza ahora la retropropagación

𝑠̅ 2 = −2𝑓̇ 2̅ (𝑛̅2 )(𝑡̅ − 𝑎̅) = −2(𝑓̇ 2 (𝑛2 )(1.2365)) = −2(1)(1.2365) = −2.473

La primera sensibilidad

(1 − 𝑎11 )(𝑎11 ) 0 0.09 [−2.473]


𝑠̅1 = 𝐹̅1 (𝑛̅1 )(𝑤 2 )𝑇 (𝑠̅ 2 ) = [ 1 1 ][ ]
0 (1 − 𝑎2 )(𝑎2 ) −0.17

(1 − 0.365)(0.3165) 0 −0.2226 0.2163 [ ] −0.0481


=[ ][ ]=[ ] =[ ]
0 (1 − 0.3407)(0.3407) 0.4204 0.2246 0.0944

Ahora se actualizan los pesos

̅ 2 (1) = 𝑤
𝑤 ̅ 2 (0)−∝ 𝑠 2 (𝑎1 )𝑇 = [0.09 − 0.17] − 0.15(−2.473)[0.3165 0.3407]
= [0.09 −0.17] + [0.1174 0.1264 ] = [0.2074 −0.0436]
𝑏̅ 2 (1) = 𝑏̅2 (0)−∝ 𝑠̅ 2 = [0.5] − 0.15(−2.473) = 0.8710
−027 −0.0481 −2.6228
𝑤 1 (1) = 𝑤 1 (0)−∝ 𝑠̅1 (𝑎̅ 0 )𝑇 = [ ] − 0.15 [ ]=[ ]
−0.41 0.0944 −0.4242
−0.5 −0.0481 −0.4928
𝑏̅1 (1) = 𝑏̅1 (0)−∝ 𝑠̅ 1 = [ ] − 0.15 [ ]=[ ]
−0.25 0.0444 0.26416

Lo que completa la primera iteración …..(ver laboratorio)

Pag 11.34 f(n) de tansig

Como se observó en este ejemplo, la red se aproximó bastante a la función. Sin embargo, para
éste y otros problemas no podemos determinar a priori cuantas capas y cuantas neuronas son
necesarias.

Pero en general, si en una función entre más puntos de inflexión tenga más neuronas se
requieren en la capa oculta y más capas serán necesarias.

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


El método de retropropagación converge a un mínimo pero en general, converge a un mínimo
local, por lo que se hace necesaria probar diferentes condiciones iniciales para asegurar un
mínimo adecuado.

Lo pertinente es partir de redes simples o más complicadas.

III.2 VARIACIONES DE RETROPROPAGACIÓN

El algoritmo de retropropagación se basa en el método de pasos descendente, un método sentó,


revisamos otros dos métodos que son variaciones de éste y más rápidas: es el método de
Newton y el método del gradiente conjugando, estos dos métodos se aplican a
retropropagación.

El método de retrepropagación básico analizado anteriormente se llama también se llama


retropropagación de pasos descendentes (SDBP). También el método SDBP se analizó una
generalización del algoritmo LMS, así el método SDBP e equivalente a LMS cuando se utiliza una
sola capa.

Se analizará el comportamiento del error cuadrático para redes multicapa. Sea por ejemplo la
siguiente red 1-2-1

Donde

̅̅̅̅(𝑤 1 𝑝 + 𝑏̅1 )
𝑎̅1 = log 𝑠𝑖𝑔

𝑎 2 = log 𝑠𝑖𝑔
̅̅̅̅(𝑤 2 𝑎̅1 + 𝑏2 )
Con las siguientes condiciones
1 = 10 1 = 10
𝑤1,1 𝑤2,1 𝑏11 = −5 𝑏21 = 5
2 =1 2 =1
𝑤1,2 𝑤1,2 𝑏 2 = −1

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


Se obtiene la salida para la entrada en el intervalo [−2,2]

Y supongamos que deseamos entrenar la red para obtener esta salida. Para poder observar la
gráfica de la respuesta se variarán dos parámetros simultáneamente.

Se ajustan
1 y se obtiene una superficie con minglobal = 0
𝑤1,1
2 y se localiza en 𝑤 1 = 10 𝑤 2 = 1
𝑤1,1 1,1 1,1

Se ajustan
1 y se obtiene otra superficie en 0
𝑤1,1

𝑏11 y se localiza en 𝑤1,1


1 = 10 𝑏 2 = −5
1

Se ajusta

𝑏11 y se obtiene otra superficie en 0

𝑏12 en 𝑏11 = −5 𝑏11 = 5

Metodo ‘Batching’

Consiste en que los parámetros son actualizados después que el conjunto de entrenamiento
termina. El gradiente actualizado pasa cada vector de entrenamiento se promedian para
obtener una estimación más precisa del gradiente.

Por ejemplo, sea la red

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


Con entrenamiento

{𝑝1 = [−3], 𝑡1 = 0.5} {𝑝2 = 2, 𝑡2 = 1}

Y condiciones iniciales

𝑤0 = 0.4, 𝑏0 = 0.15

Aplicar retropropagación con batching

a) SDBP

Primera iteración
1
𝑎 (0) = log 𝑠𝑖𝑔(𝑤𝑝 + 𝑏) = = 0.2592
1 + 𝑒{𝑝} − 1.2 + 0.15

𝑒 (0) = 𝑡 − 𝑎 = 0.5 − 0.2592 = 0.2408

𝑠 (0) = −2𝑓̇(𝑛)𝑒 (0) = −2𝑎0 (1 − 𝑎0 )𝑒0 = −2(0.2592)(1 − 0.2592)0.2408 = −0.0925

𝑤(1) = 𝑤0 −∝ 𝑠 0 (𝑎0 )𝑇 = 0.4 − 0.5(−0.0925)(0.2592) = 0.4119

𝑏(1) = 𝑏(0)−∝ 𝑠(0) = 0.15 − 0.5(−0.0925) = 0.1962

Segunda iteración
1
𝑎(1) = 𝑙𝑜𝑔𝑠𝑖𝑔(𝑤𝑝 + 𝑏) = = 0.2650
1 + 𝑒𝑥𝑝{0.8231 + 0.1962}

𝑒(1) = 𝑡 − 𝑎(1) = 1 − 0.2650 = 0.7350

𝑠 (1) = −2𝑓̇(𝑛)𝑒 = −2𝑎 (1) (1 − 𝑎 (0) )𝑒(1) = −2(0.2650)(1 − 0.2650) = −0.2863

𝑤(2) = 𝑤1 −∝ 𝑠1 (𝑎1 )𝑇 = 0.4119 − 0.5(−0.2863)(0.2650) = 0.4498

𝑏(2) = 𝑏1 −∝ 𝑠1 = 0.1962 − 0.5(−0.2863) = 0.3399

Método de Momentos (MDBP)

Un filtro paso bajas tiene la característica de suavizar los cambios en una señal. De hecho un
filtro de primer de la orden forma

𝑦(𝑘) = 𝜑𝑦(𝑘 − 1) + (1 − 𝜑)𝑥(𝑘)

Donde 𝑥(𝑘) es la entrada y 𝑦(𝑘) su salida y 𝜑 es un coeficiente llamado ‘momento’ que


debe satisfacer 0 ≤ 𝜑 ≤ 1

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


Para el método SDBP se modifican los parámetros con

∆𝑤 𝑚 (𝑘) = −∝ 𝑠̅ 𝑚 (𝑎̅ 𝑚∙1 )𝑇

∆𝑏̅𝑚 = −∝ 𝑠̅ 𝑚

El propósito ahora es cambiar esta modificación con el filtro que llamaremos una
modificación por el momento de la retropropagación (MDBP); las ecuaciones cambian a:

∆𝑤 𝑚 (𝑘) = 𝜑∆𝑤 𝑚 (𝑘 − 1) − (1 − 𝜑)𝛼𝑠̅ 𝑚 (𝑎̅ 𝑚−1 )𝑇

∆𝑏̅𝑚 (𝑘) = 𝜑∆𝑏̅𝑚 (𝑘 − 1) − (1 − 𝜑)𝛼𝑠̅ 𝑚

Entre el mayor es el valor de 𝜑, mayor es el “momento” aplicado a la trayectoria.

Para el ejemplo anterior, son 𝑝 = 0.9

𝑎 (0) = 0.2592
𝑒(0) = 0.2408

𝑠(0) = −0.0925

𝑤(1) = 0.4[(1 − 0.9)0.5(−0.0925)(0.2592)] = 0.3613


𝑏(1) = 0.15[(1 − 0.9)0.5(−0.0925)] = 0.1396

𝑎 (1) = 0.2969
𝑒(1) = 0.7031

𝑠(1) = −0.2935

𝑤(2) = 0.3294
𝑏(2) = 0.1403

𝑎(0)0.2592

𝑒(0) = 𝑡 − 𝑎(0) = 0.2408


𝑠(0) = −0.0925

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


1
𝑎1 (1) = = 0.2789
1 + 𝑒𝑥𝑝{0.8 + 0.15}

𝑒1 (1) = 𝑡 − 𝑎(0) = 1 − 0.2789 = 0.7211

𝑠1 (1) = −2𝑓̇ (𝑛)𝑒1 (0) = −2𝑎(1 − 𝑎)𝑒 = −0.2901


0.2592 + 0.2769
𝑎𝑝 (0) = = 0.2691
2
−0.0925 − 0.2901
𝑠𝑝 (0) = = −0.1913
2

𝑇
𝑤(1) = 𝑤(0)−∝ 𝑠𝑝 (𝑎𝑝 (0)) = 0.4 − 0.5(−0.1913)(0.2691) = 0.4257

𝑏(1) = 𝑏(0)−∝ 𝑠(0) = 0.15 − 0.5(−0.1913) = 0.2457

1
𝑎(1) = log 𝑠𝑖𝑔 (𝑤𝑝 + 𝑏(1)) = = 0.7372
1 + 𝑒𝑥𝑝{−0.4257𝑥3 + 0.2457}
𝑒(1) = 0.5 − 𝑎(1) = −0.2372

𝑠(1) = −2𝑎(1)[1 − 𝑎(1)]𝑒(1) = −2(0.7372)(1 − 0.7372)(−0.2372) = 0.09191


1
𝑎1 (1) =
1 + 𝑒𝑥𝑝{− − −}

Tasa de Aprendizaje Variable (VLBP)

Se explota el concepto intuitivo de que si incrementamos la tasa de aprendizaje se aumenta


la velocidad de convergencia y si se decrementa la taza cuando la pendiente decrece.

Algunas reglas de este algoritmo son:

1. Si el error cuadrático del conjunto de entrenamiento se incrementa por más un cierto


porcentaje 𝜍 (típicamente del 1% al 5%) después de actualizar los pesos entonces los
pesos actualizados se descarta, la tasa de aprendizaje se multiplica por un factor 0 <
𝜌 < 1 y el momento (si es usado) se ajusta a cero.

2. Si el error cuadrático decrece después de actualizar los pesos, entonces los pesos
actualizados se aceptan y la tasa de aprendizaje es multiplicado por un factor 𝜂 > 1. Si
𝜑 ha sido previamente fijado en cero, se reasignará a su valor original.

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


3. Si el error cuadrático se incrementa a menos de 𝜍, entonces se aceptan los pasos
actualizados pero la tasa de aprendizaje y el momento no varían.

Por ejemplo, obtengamos dos pasos del algoritmo de tasa de aprendizaje variable a la función

𝐹(𝑥̅ ) = 𝑥12 + 𝑥22

Con condiciones iniciales


0.5
𝑥̅0 = ( ), ∝= 0.05, 𝜑 = 0.2, 𝜂 = 1.5, 𝜌 = 0.4, 𝜍 = −3%
0.5

En principio
1 𝑇 2 0 1 2 0 0.5
𝐹(𝑥̅ 0 ) = 𝑥̅ 0 ( ) 𝑥̅ 0 = (0.5 0.5) ( ) ( ) = 6.5
2 0 50 2 0 50 0.5
El gradiente es

2𝑥1 1
∇𝐹(𝑥̅ ) = [ ], 𝑔̅0 = ∇𝐹(𝑥̅ )|𝑥̅ =𝑥̅0 = ( )
50𝑥2 25
Primera iteración, 𝑥̅1𝑡 la t es tentativamente

0 1 −0.04
∆𝑥̅0 = 𝜑∆𝑥̅1 = (1 − 𝜑) ∝ 𝑔̅0 = 0.2 ( ) − 0.8(0.05) ( ) = ( )
0 25 −1
0.5 −0.04 0.46
𝑥̅1𝑡 = 𝑥̅ 0 + ∆𝑥̅ 0 = ( )+( )=( )
0.5 −1 −0.5

Como tenemos aproximación de función y no es clasificación de patrones, se obtiene

1 2 0 0.16
𝐹(𝑥̅1𝑡 ) = (0.46 −0.5) ( )( ) = 6.4616
2 0 50 −0.5
Como es menor a 𝐹(𝑥𝑜 ) el paso tentativo se acepta y se incrementa la tasa de aprendizaje

𝑥̅1 = 𝑥̅1𝑡 , ∝= 𝑛 ∝= 1.5(0.05) = 0.075

Segunda iteración
−0.04 0.92 −0.0632
∆𝑥̅1 = 𝜑∆𝑥̅ 0 − (1 − 𝜑) ∝ 𝑔̅1 = 0.2 ( ) − 0.8(0.075) ( )=( )
−1 −2.5 1.3

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO


0.46 −0.0632 0.3968
𝑥̅2𝑡 = 𝑥̅1 + ∆𝑥̅1 = ( )+( )=( )
−0.5 1.3 0.8
Se evaluó la función

1 2 0 0.3968
𝐹(𝑥̅ 2𝑡 ) = (0.3868 0.8) ( )( ) = 16.157
2 0 50 0.8
Este es mayor a 5% que 𝐹(𝑥̅1 ), se rechaza el peso, se reduce la tasa de aprendizaje y el
momento es cero.

𝑥̅ 2 = 𝑥̅1 , (𝐹𝑥̅ 2 ) = 𝐹(𝑥̅1 ) = 6.4616 ∝ 𝜌 =∝= 0.4(0.075) = 0.03 𝜑=0

Ahora se intenta una tercera iteración


0.92 −0.0276
∆𝑥̅2 = 0 − 1 ∝ 𝑔2 = 0.03 ( )=( )
−.025 0.25

0.46 −0.0270 0.4324


𝑥3𝑡 = 𝑥̅ 2 + ∆𝑥̅ 2 = ( )+( )=( )
−0.5 0.75 0.25

Otras dos variantes son: el gradiente conjugado y el método de Levenberg-Marquardt

1 2 0 0.4324
𝐹(𝑥̅3 ) = (0.4324 0.25) ( )( ) = 0.869 + 1.5625 = 1.7494
2 0 50 0.25
𝑥̅1 = 𝑥̅3𝑇 , ∝= 𝜂 ∝= 1.5(0.03) = 0.045 𝜑 = 0.2

APUNTES REDES NEURONALES DR. ABEL HERRERA CAMACHO

También podría gustarte