Backpropagation

Contenido
MLP (Multi Layer Perceptron) entnado con el algoritmo de retropropagación es la red más usada

Ejemplo: Fronteras de desición

p1 = [0 0]';
p2 = [0 0.5]';
p3 = [2 0.5]';
p4 = [2 1]';
P = [p1 p2 p3 p4];
figure
plot(P(1,1:4),P(2,1:4), 'ok','MarkerSize',15, 'LineWidth',5)
%hold on
%plot(P(1,3),P(2,3),'ob','MarkerSize',15, 'LineWidth',5)
axis([-1 2.5 -1 1.5])
g = gca;
g.XAxisLocation = 'origin';
g.YAxisLocation = 'origin';
g.Box = 'off';
W1 = [-1 0;0 -1;1 0;0 1];
W2 = [1 1 0 0;0 0 1 1];
W3 = [1 1];
b1 = [0.5 0.75 -1.5 -0.25]';
b2 = [-1.5 -1.5]';
b3 = [-0.5];
muestras = 1000;
p1 = unifrnd(-0.5,2.5,1,muestras);
p2 = unifrnd(-0.5,1.5,1,muestras);
p = [p1;p2];
n1 = W1*p + b1;
a1 = hardlim(n1);
n2 = W2*a1 + b2;
a2 = hardlim(n2);
n3 = W3*a2 + b3;
a3 = hardlim(n3);
hold on
scatter(p(1,:),p(2,:),[],a3)

Problema P11.1

P11_1.png
Los pratrones en la abstracción usual de Hagan
Clase I
Clase II
Si es linealente separable existe un hiperplano tal que
realizando las multiplicaciones
Pero (1) y (2) se contradicen, así el problema no es linealmente separable.
Para la solución de ii) es observación cualitativa (parecida al ejemplo de las notas)
la arquitectura es la siguiente
P11_1_1.png

Problema P11.2

P11_2.png
Como en el ejemplo, se encuentran los hiperplanos separadores para aislar a los punto en negro despues se hacen opraciones and (todos los hiperpalno contienen a la clase) y después operaciones or para la fuentes de información.
P11_2_1.png
Arquitectura
P11_2_3.png
Los primeros parametros son las ecuacions de las rectas.
La segunda capa
Motivada por las regiones definidas en las figuras
Finalmente

Problema P11.3

P11_3.png
Solución:
Se define
De igual forma

Problema P11.4

P11_4.png
La derivada parcial para el algoritmo del del gradiente descendiente
Se define
Regla de la cadena al término
de la dinámica del sistema
entonces
Observamos que
Por lo tanto

Problema P11.5

P11_5.png
i)
syms p t w1 w2 b1 b2
n1(p,w1,b1) = p*w1 +b1
n1(p, w1, b1) = 
a1 = logsig(n1)
a1(p, w1, b1) = 
n2(p,w1,b1,w2,b2) = a1*w2 +b2
n2(p, w1, b1, w2, b2) = 
a2 = n2
a2(p, w1, b1, w2, b2) = 
e2(w1,w2,b1,b2,p,t) = (t-a2)^2 % cuidado con los simbolos
e2(w1, w2, b1, b2, p, t) = 
ii)
de2dw1 = diff(e2,w1)
de2dw1(w1, w2, b1, b2, p, t) = 
res = de2dw1(1,-2,1,1,1,1)
res = 
eval(res)
ans = 0.7398
iii)
tn=1;
s2 = -2 * (1) * (tn-a2(1,1,1,-2,1))
s2 = 
syms n
s1(n) = diff(logsig(n))*(-2)*s2
s1(n) = 
s1n = s1(n1(1,1,1))
s1n = 
de2dw1 = s1n*(1)
de2dw1 = 
eval(de2dw1)
ans = 0.7398

Problema P11.6

P11_6.png
Solución:

Problema P11.7

P11_7.png
P11_7_1.png
syms p t w1 w2 b1 b2 a1n n1n n2n
alpha= 1;
n1(p,w1,b1) = p*w1 +b1
n1(p, w1, b1) = 
a1(n1n) = tansig(n1n)
a1(n1n) = 
n2(a1n,w2,b2) = a1n*w2 +b2
n2(a1n, w2, b2) = 
a2(n2n) =tansig(n2n)
a2(n2n) = 
Propagación hacia adelante
n1v = n1(-1,-1,1);
a1v = a1(n1v);
n2v = n2(a1v,-2,1);
a2v = a2(n2v);
Propagacion hacia atras
s2 = eval(-2* subs(diff(a2,n2n),n2n,n2v)*(1-a2v));
s1 = subs(diff(a1,n1n),n1n,n1v)* (-2) * s2;
w2_1 = -2 - alpha*s2*(a1v)';
eval(w2_1)
ans = -0.4407
b2_1 = 1 - alpha*s2
b2_1 = 2.6175
w1_1 = -1 -alpha*s1*(-1) ;
eval(w1_1)
ans = -0.7715
b1_1 = 1 - alpha*s1;
eval(b1_1)
ans = 0.7715

Problema P11.8

P11_8.png
De acuerdo a la arquitectura
Termino aditivo, la regla de la cadena en las derivadas parciales no ve este termino, las parciales para el paso los pesos son los usuales de retropropaganación
Para los pesos nuevos
La entrada a la función de activación en la capa dos
entonces
Así la regla queda como

Problema P11.9

P11_9_1.png
P11_9_2.png
Indice de desempeño
No hay desviación solo el cambio en el peso
Se deriva la estimación
Derivando con rsepcto a los pesos la salida de la neurona (con el objetivo de conseguir la que se necesita)
Dadas las condiciones iniciales
Entonces los incrementos para la primer entrada
Para la segunda entrada
Así sucesivamente.

Problema P11.10

P11_10.png
La sesibilidad
La regla de actualización
Coincide con la regla Adaline, era de esperarse, el problema que se plantea resolver es el mismo salvo por el numero de capas.

APP

Network Function
nnd11nf
Backpropagation Calculation
nnd11bc
Function Approximation
nnd11fa
Demostration Generalization
nnd11gn

Referencias

El material se toma del libro de Martin Hagan et. al. enlace