Variantes de Backpropagation
Problema 12.1
Primero sin Batching
s1 = eval(-2*subs(diff(logsig(n)),n,n1_n)* e1)
La dirección (ver formula de back)
d1 = [-s1*p1;-s1] % pesos y bias
Para la segunda entrada
s2 = eval(-2*subs(diff(logsig(n)),n,n2_n)* e2)
La dirección (ver formula de back)
Con Batching
Hay dependeciadel problema respecto a preferir incremental o batching. Incremental requiere menos almacenamiento, y si las entradas se elegen de forma aleatoria es menos probable quedar atrapado en un mínimo local. Pero toma más tiempo converger respecto al modo Batching
Problema 12.2
Solución: revisar después del reporte de Momentum II
El algoritmo estándar de gradiente descendiente
Si se cálculo con momentum
La forma cuadrática general
Con gradiente
Sustituyendo el gradiente en la actualización de momentum
Sustitutendo la definición de incremento 
Se difine el vector
Entonces el momentum se puede escribir como
Este es un sistema dinamico lineal discreto, que será estable si los valores pripiios de la matriz del sistema (W) tienen magnitud menor a la unidad.
La matriz del sistema se puede esribir como
Los valores y vectorios porpios satisfacen que
Por componentes, esto es:
Pensando que
es un vector porpio de la matriz T Sustituyendo la primer ecuación en la segunda
resolviendo la cuadratica (pues el vector propio no puede ser cero)
Obteniendo la magnitud de este número (pensado en que en complejo y qie el valor propio de T es reas, pues es el valor propio de una matriz simetrica, basta ver la definición de T para esto)
como el parámetro γ esta entre cero y uno, entonces todos los valores propios tendrán magnitud menor a uno, y así el sistema será estable, siempre y cuando los valores priopios sean complejos. Entonces se vera que existe γ de tal forma que siempre los valores propios son complejos. Para ello es necesario que
Entonces se tienen que caraterizar a
, que es un valor propio de T. Sean
los valores propios de A y
sus vectores propios. Se probara que estos vectores porpios de A también son vectores propios de T Así los valores propios asociados son
Entonces el rango de γ queda como
TAREA MORAL: Demostar que la última desigualdad se cumple para valores de γ cecanos a uno independiente del valore deα.y de 
Al aplicar la variante de momentum a la función
con una tasa de convergencia inestable
para gradiente descendiente, pero con 
Problema 12.3
Solución:
F(x1,x2) = x1^2 + 25*x2^2;
GF = gradient(F)
GF(x1, x2) =

g0 = GF(x0(1),x0(2))
g0 =

deltax0 = gamma * [0 0]' - (1-gamma)*alpha*g0;
x1 = x0 + deltax0
x1 =

El cambio se acepta porque la evaluación en la función es menor que la inicial
alpha = eta * alpha; % actualización de alpha
g1 = GF(x1(1),x1(2))
g1 =

deltax1 = gamma * deltax0 - (1-gamma)*alpha*g1;
x2 = x1 + deltax1
x2 =

eval((F(x2(1),x2(2))-F(x1(1),x1(2)))/F(x1(1),x1(2)))
Aumento de más del 150% en la magnitud de la evaluación respecto al punto anterior, lo que es mayor al límite establecido (zeta) entonces se rechaza el cambio
x2 = x1; % se descarta el nuevo punto
g2 = GF(x2(1),x2(2))
g2 =

deltax2 = gamma * deltax1 - (1-gamma)*alpha*g2; % -alpha*g2
x3 = x2 + deltax2
x3 =

Por lo que el cambio se acepta
Problema 12.4
Solución
F(x1,x2) = (1/2)* [x1 x2] * A * [x1; x2]
F(x1, x2) =

GF = gradient(F)
GF(x1, x2) =

p0 = -g0
p0 =

Se minimiza F a lo largo del vector
x11(alpha0) = x0(1) + alpha0*p0(1)
x11(alpha0) =

x12(alpha0) = x0(2) + alpha0*p0(2)
x12(alpha0) =

Fa1 = F(x11(a1),x12(a1));
Fb1 = F(x11(b1),x12(b1));
Fb2 = F(x11(b2),x12(b2));
Fb3 = F(x11(b3),x12(b3));
Fb4 = F(x11(b4),x12(b4));
La elección es en el intervalo [0.15, 0.60] del parámetro.
Ahora se reduce el intervalo con el algoritmo de busqueda aurea.
c1 = a1 + (1 - tau) * (b1 - a1)
d1 = b1 - (1 - tau) * (b1 - a1)
eval(F(x11(c1), x12(c1)))
eval(F(x11(d1), x12(d1)))
Algoritmo 
d2 = b2 -(1 - tau)*(b2 - a2)
eval(F(x11(c2), x12(c2)))
eval(F(x11(d2), x12(d2)))
Algoritmo 
c3 = a3 + (1 - tau)*(b3 - a3)
Esto sigue hasta que 
Problema 12.5
Solución
% el primer indice hace referencia al nuemro de entrada
Las sensibiidades de Marquardt
dF1 = diff(F1)
dF1(n) = 
% el primer indice hace referencia al nuemro de entrada
s12 = -dF2(n12)
s12 = 
s11 = dF1(n11)*W2'*s12
s11 = 
s22 = -dF2(n22)
s22 = 
s21 = dF1(n21)*W2'*s22
s21 = 
S1 = [s11 s21]
S1 = 
S2 = [s12 s22]
S2 = 
La matriz Jacobina del problema
% el último subindice hace referencia a la capa
n111(w111,b11) = w111 * a10 + b11;
dn111w111 = diff(n111,w111);
J11 = s11 * dn111w111(W1,b1)
J11 = 
dn111b11 = diff(n111,b11);
J12 = s11 * dn111b11(W1,b1)
J12 = 
n112(w112,b12) = w112 * a11 + b12;
dn112w112 = diff(n112,w112);
J13= s22 * dn112w112(W2,b2)
J13 = 
dn112b12 = diff(n112,b12);
J14 = s22 * dn112b12(W2,b2)
J14 = 
n121(w111,b11) = w111 * a20 + b11;
dn121w111 = diff(n121,w111);
J21 = s21 * dn121w111(W1,b1)
J21 = 
dn121b11 = diff(n121,b11);
J22 = s21 * dn121b11(W1,b1)
J22 = 
n122(w112,b12) = w112 * a21 + b12;
dn122w112 = diff(n122,w112);
J23= s12 * dn122w112(W2,b2)
J23 = 
dn122b12 = diff(n122,b12);
J24= s12 * dn122b12(W2,b2)
J24 = 
J = [J11 J12 J13 J14;J21 J22 J23 J24]
J =

App
Steepenst Descent Backpropagation
Momentum Backpropagation
Variable Learning Rate Backpropagation
Conjugate Gradinet Line Search
Conjugate Gradient Backprop
Marquardt Step
Marquardt Backpropagation
Referencias
El material se toma del libro de Martin Hagan et. al. enlace