Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNA NEURONA
w1
w2
wm
Neuronas de McCulloch-Pitts
(El Perceptrn)
Rosenblatt, F. (1958), The Perceptron: A Probabilistic Model
for Information Storage and Organization
in The Brain, Psychological Review, Vol. 65, pp. 386408
Rosenblatt, F. (1962), Principles of Neurodynamics:
Perceptrons and the Theory of
Brain Mechanisms. Spartan Books, Washington, DC.
w1
w2
wm
El Perceptrn
x0
b
x1
w1
x2
xm
con
w2
wm
y = (v )
t
v = w j x j + b = wi xi = w x
m
j =1
i =0
t
w = [b w1 w2 wm ]
t
x = [1 x1 x2 xm ]
t
1 w x>0
y=
t
1 w x 0
El Perceptrn
No es
separable
No es
linealmente
separable
El Perceptrn
El Perceptrn
El Perceptrn
Interpretacin Geomtrica
Queremos encontrar pesos W tales que
sgn(wt x ) = d
t
El hiperplano w x =0
Si y=d no cambio W
Si y d actualizo segn la regla
El Perceptrn
d=1
d=-1
P1
w
2p1
Wnuevo=Wviejo + (d - y) X
Introduccin a las Redes Neuronales Artificiales
El Perceptrn
El Perceptrn
Ejemplo:
x1
1
1
2
2
x2
1
2
1
2
d(X)
-1
+1
+1
+1
Es linealmente separable? Si
Hay algn punto atpico? No
El Perceptrn
TEOREMA DE CONVERGENCIA
la entrada: x1 , x2 ,
que representan
Muestras de dos clases linealmente separables,
C1 y C2 , asuma que existe un vector w tal que
zConsidere
t
w
t x > 0
w x0
si x C1
si x C2
El Perceptrn
Demostracin:
Queremos encontrar los pesos tales que se satisfaga:
w x > 0 para x C1
t
w x 0 para x C2
(1)
(n)
(2)
El Perceptrn
Caso 1:
( n) = > 0
Supongamos que :
la constante es igual a 1.
w(0)=0
t
w ( n) x ( n) < 0
x(n) pertenece a H1 (est mal clasificado) para n=1,2,3,..
w(n+1)=x(1)+x(2)+ .+ x(n)
Existe una solucin w0 para la cual
Definimos
(3)
w0t w(n + 1) n
(4)
El Perceptrn
Ahora,
wo
w ( n + 1)
w w ( n + 1)
t
0
w ( n + 1)
n 2
(4)
n 2 2
w0
Note que w(i+1) = w(i) + x(i) para x(i), una muestra de la clase C1 con i = 1, 2, 3, ,n
Tomamos norma a ambos lados y obtenemos
||w(i+1)||2 = ||w(i)||2 + ||x(i)||2 + 2wT(i)x(i)
Pero si el perceptrn clasifica incorrectamente (como asumimos al inicio), wT(i)x(i) < 0
Por lo tanto,
||w(i+1)||2 <= ||w(i)||2 + ||x(i)||2
El Perceptrn
w( n + 1)
2
2
x (i ) n con = max x (i )
2
x ( i ) enH 1
i =1
Tenemos que:
n 2
w0
2
2
w ( n + 1)
n
Qu pasa con n grandes?
El Perceptrn
nmax 2
2
w0
= nmax
nmax
w0
=
2
El Perceptrn
Caso 2:
(n)
Sea
variable
( n ) x t ( n ) x ( n ) > wt ( n ) x ( n )
t
El Perceptrn
d(n)-y(n)=-2
= 2
Constante!!!
Ejemplos (1 Neurona)
x1
wk1
x2
wk2
bk
xm
wkm
vk
(.)
yk
Matemticamente:
yk = j(x1wk1+ x2wk2+ ........+xmwkm + bk)
= j(XW+ b)
Algunos comandos
en Matlab
>> x1=-3:0.1:3;
>> y1=hardlim(x1);
>> plot(x1,y1,'k');
>> axis([-3 3 -0.25 1.25]);
>> xlabel('entrada'); ylabel('salida');
>> title('Funcion de transferencia')
x2
x1
x2 = x1+1
w1x1+w2x2+b=0
b = w1 = 2
w2= -2
x2
x1
w1x1+w2x2+b= -4
hardlim(-4) = 0
Introduccin a las Redes Neuronales Artificiales
w = [.1,-.1,.1]';
Epoca = 0;
error = ones(1,4);
dibujarecta(w,X,d,Epoca)
while any(error)
for i = 1 : 4, %una epoca
suma(i) = X(i,:)*w;
if suma(i) > 0,
y(i) = 1;
else
y(i) = -1;
end;
error(i) = d(i) - y(i);
if error(i) ~= 0, % no converge, actualizo los pesos.
w(1) = w(1) + Eta*error(i);
w(2) = w(2) + Eta*error(i)*X(i,2);
w(3) = w(3) + Eta*error(i)*X(i,3);
end;
end;
Epoca = Epoca + 1;
dibujarecta(w,X,d,Epoca)
end
Introduccin a las Redes Neuronales Artificiales
El Perceptrn
Entrenamiento en Matlab
2ndo dato
1er dato
N-simo dato
t(2)
Explorar la data
>>[P T]
>>help plotpv
>>plotpv(P,T)
Estos comandos
Ayudan a visualizar
La data
Crear un perceptron
>>help newp
>>net = newp([-2 2;-2 2],1);
Acabamos de crear un perceptrn con los rangos
especificados y con una neurona. Veamos ......
>>net
>>net.layers{1}
>>net.IW{1}
>>net.b{1}
Exploremos las opciones
>>help(net.inputweights{1,1}.learnfcn)
>> net.inputWeights{1,1}.learnFcn=learnwh
>>net.inputweights{1,1}
Recapitulamos
>>net=newp([-2 2; -2 2],1)
Crear un perceptron
Originalmente
los pesos son 0, asi que
la neurona no hace
nada.
>>help plotpc
>>plotpc(net.IW{1},net.b{1})
Con esto visualizamos
el efecto del perceptrn
Entrenar el perceptrn
Cul es el algoritmo de entrenamiento?
>>help adapt
>>help train
La diferencia radica en la forma en que se presentan los datos
Si los datos son presentados en una matriz la actualizacin es por lote (lo veremos la prxima
clase)
>>[net1,y,e] = adapt(net,P,T);
>>mse(e)
Si los datos son presentados en celdas la actualizacin es secuencial (teorema)
texto2='TS={';
texto='PS={';
for i=1:40,
texto2=[texto2,' ',num2str(T(i))];
end;
texto=[texto, '}'];
texto2=[texto2, '}'];
eval(texto)
eval(texto2)
>>[net2,y,e] = adapt(net,PS,TS);
>>mse(e)
Entrenar el perceptron
Entrenar el perceptron
Validar el perceptrn
Validar el perceptrn
Observaciones
Observaciones
El Perceptrn
Ms de dos clases
b1
x1
x2
w11
y1
w12
w22
w21
b2
Una entrada
x1 (k )
x2 ( k )
y2
d1(k) 0 1 1 0
= , , ,
d2(k) 0 0 1 1
y1 = 1 ( x1w11 + x2 w21 + b1 )
y2 = 1 (x1w12 + x2 w22 + b2 )
Introduccin a las Redes Neuronales Artificiales
El Perceptrn multiple
w11 w21
w12 w22
T
(W x + b ) =
w1m w2 m
T
wk1 x1 b1
wk 2 x2 b2
wkm xm bk
El Perceptrn multiple
w
w22 wk 2
w
w22
= 12
12
w
w
w
w1m w2 m
km
2m
1m
T
w11 w21 wk1 w11 w21 wk1
w
w
wk 2
w
w
w
k
12
22
2
12
22
w
w
w
w
w
w
km
km
2m
2m
1m
1m
b1 b1 e1
b b e
2 = 2 + 2
bk bk ek
wk 1
wk 2
wkm
e1 x1
e x
2 1
+
ek x1
e1 x1
e x
2
2
+
ek x m
e1 x 2
e2 x 2
ek x 2
e1 x m
e2 x m
ek x m
El Perceptrn multiple
(perceptron3.m)
(class3data.mat)
Para curucutear
Si se quieren divertir:
Para practicar Matlab:Generar data aleatoria que siga ciertas
especificaciones y data de validacion. Crear un perceptron y practicar.
(ayuda: randn, uso de vectores)
La data de las flores: (iris.dat) Esta es una data interesante, hay tres
clases de irises que deben ser clasificadas segn 4 atributos: long y ancho
de la sepa y long y ancho de los ptalos. Mirar la data por pares y darse
cuenta de la no-separabilidad de dos de los subconjuntos. Pueden ustedes
segregar entre esta y las anteriores? (incluida en la tarea)
optimalidad
Otras variantes:
Thermal Perceptron algorithm
Loss minimization algorithm
Barycentric correction prodecure