Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
Aproximación de funciones
La salida 𝑎 2 vs la entrada es
El Algoritmo de Retropropagación
Donde:
𝑎̅ 3 = 𝑓3̅ (𝑊 3 𝑎 2 + 𝑏̅3 )
Entonces
La función --- es
𝜕𝐹̂
𝑏𝑖𝑚 (𝑘 + 1) = 𝑏1𝑚 (𝑘) − 𝛼
𝜕𝑏𝑖𝑚
Donde
𝑠𝑚−1
𝑛𝑖𝑚 = ∑ 𝑤𝑖,𝑗
𝑚 𝑚−1
𝑎𝑗 + 𝑏𝑖𝑚
𝑖=1
Entonces
Se define ahora 𝑠𝑖𝑚 como la sensibilidad del error en el i-esimo elemento de la capa m
𝜕𝐹̂
𝑠𝑖𝑚 ≡
𝜕𝑛𝑖𝑚
Entonces
𝜕𝐹̂ 𝑚 𝑚−1
𝑚 = 𝑠𝑖 𝑎𝑗
𝜕𝑤𝑖,𝑗
𝜕𝐹̂
= 𝑠2𝑚
𝜕𝑏𝑖𝑚
𝑚 (𝑘 𝑚 (𝑘)
𝑤𝑖,𝑗 + 1) = 𝑤𝑖,𝑗 − 𝛼𝑠𝑖𝑚 𝑎𝑗𝑚−1
O en forma matricial
Donde
𝑚
𝜕𝑛𝑖𝑚+1 𝜕(∑𝑠𝑖=1 𝑤𝑖,𝑗
𝑚+1 𝑚
𝑎𝑖 + 𝑏𝑖𝑚+1 ) 𝑚+1
𝜕𝑎𝑗𝑚 𝑚+1
𝜕𝑓 𝑚 (𝑛𝑗𝑚 ) 𝑚+1 ̇ 𝑚
= = 𝑤𝑖,𝑗 = 𝑤𝑖,𝑗 = 𝑤𝑖,𝑗 𝑓 (𝑛𝑗𝑚 )
𝜕𝑛𝑗𝑚 𝜕𝑛𝑗𝑚 𝜕𝑛𝑗𝑚 𝜕𝑛𝑗𝑚
Donde
𝜕𝑓 𝑚 (𝑛𝑗𝑚 )
𝑓̇ 𝑚 (𝑛𝑗𝑚 ) =
𝜕𝑛𝑗𝑚
𝜕𝑛̅𝑚+1
= 𝑊 𝑚+1 𝐹̅̇ 𝑚 (𝑛̅𝑚 )
𝜕𝑛̅𝑚
Donde
𝑓̇ 𝑚 (𝑛1𝑚 ) 0 … 0
0 𝑓̇ 𝑚 (𝑛𝑚 )
… 0
𝐹̅̇ 𝑚 (𝑛̅𝑚 ) = 1
⋮ ⋮ … ⋮
[ 0 0 … 𝑓̇ 𝑚 (𝑛𝑠𝑚𝑚 )]
𝑇
𝜕𝐹̂ 𝜕𝑛̅𝑚+1 𝜕𝐹̂ 𝜕𝐹̂
𝑠̅ 𝑚 = 𝑚=( ) = ̅̇ 𝑚 (𝑛̅𝑚 )(𝑊
𝐹 ̅ 𝑚+1 )𝑇 = 𝐹̅̇ 𝑚 (𝑛̅𝑚 )(𝑊
̅ 𝑚+1 )𝑇 𝑠̅ 𝑚+1
𝜕𝑛̅ 𝜕𝑛̅𝑚 𝜕𝑛̅𝑚+1 𝜕𝑛̅𝑚+1
𝑆 𝑀 2
𝜕𝐹̂ 𝜕(𝑡̅ − 𝑎̅)𝑇 (𝑡̅ − 𝑎̅) 𝜕 ∑𝑗=1 (𝑡𝑗− 𝑎𝑗 ) 𝜕𝑎𝑖
𝑠𝑖𝑀 = 𝑀= = = −2(𝑡𝑖 − 𝑎 𝑖 )
𝜕𝑛̅ 𝜕𝑛𝑖𝑀 𝜕𝑛𝑖𝑀 𝜕𝑛𝑖𝑀
Ahora
Y se puede escribir
O en forma matricial
−0.27 −0.5
𝑤 1 (0) = ( ), 𝑏̅1 (0) = ( ) , 𝑤 2 (0) = [0.09 −0.17], 𝑏̅2 (0) = (0.5)
−0.41 −0.25
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
𝑑 1 𝑒̅ 𝑛 1 1
𝑓̇ 1 (𝑛) = ( 𝑛 ) = 𝑛 2 = (1 − 𝑛 )( ) = (1 − 𝑎̇ 1 )(𝑎1 )
𝑑𝑛 1 + 𝑒̅ (1 + 𝑒̅ ) 1 + 𝑒̅ 1 + 𝑒̅ 𝑛
La primera sensibilidad
̅ 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
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.
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
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
Se ajusta
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.
Y condiciones iniciales
𝑤0 = 0.4, 𝑏0 = 0.15
a) SDBP
Primera iteración
1
𝑎 (0) = log 𝑠𝑖𝑔(𝑤𝑝 + 𝑏) = = 0.2592
1 + 𝑒{𝑝} − 1.2 + 0.15
Segunda iteración
1
𝑎(1) = 𝑙𝑜𝑔𝑠𝑖𝑔(𝑤𝑝 + 𝑏) = = 0.2650
1 + 𝑒𝑥𝑝{0.8231 + 0.1962}
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
∆𝑏̅𝑚 = −∝ 𝑠̅ 𝑚
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:
𝑎 (0) = 0.2592
𝑒(0) = 0.2408
𝑠(0) = −0.0925
𝑎 (1) = 0.2969
𝑒(1) = 0.7031
𝑠(1) = −0.2935
𝑤(2) = 0.3294
𝑏(2) = 0.1403
𝑎(0)0.2592
𝑇
𝑤(1) = 𝑤(0)−∝ 𝑠𝑝 (𝑎𝑝 (0)) = 0.4 − 0.5(−0.1913)(0.2691) = 0.4257
1
𝑎(1) = log 𝑠𝑖𝑔 (𝑤𝑝 + 𝑏(1)) = = 0.7372
1 + 𝑒𝑥𝑝{−0.4257𝑥3 + 0.2457}
𝑒(1) = 0.5 − 𝑎(1) = −0.2372
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.
Por ejemplo, obtengamos dos pasos del algoritmo de tasa de aprendizaje variable a la función
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
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
Segunda iteración
−0.04 0.92 −0.0632
∆𝑥̅1 = 𝜑∆𝑥̅ 0 − (1 − 𝜑) ∝ 𝑔̅1 = 0.2 ( ) − 0.8(0.075) ( )=( )
−1 −2.5 1.3
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.
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