ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf ·...

46
Introducción a las Redes Neuronales Artificiales ALGUNOS MODELOS DE UNA NEURONA Μ 1 w 2 w m w

Transcript of ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf ·...

Page 1: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

ALGUNOS MODELOS DE UNA NEURONA

Μ

1w

2w

mw

Page 2: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Neuronas de McCulloch-Pitts(El Perceptrón)

Μ

1w

2w

mw

Rosenblatt, F. (1958), The Perceptron: A Probabilistic Modelfor Information Storage and Organizationin The Brain, Psychological Review, Vol. 65, pp. 386408

Rosenblatt, F. (1962), Principles of Neurodynamics: Perceptrons and the Theory ofBrain Mechanisms. Spartan Books, Washington, DC.

Page 3: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

xwxwbxwv tm

iii

m

jjj

ρρ==+= ∑∑

== 01

1x

2x

mxΜ Μ

1w

2w

mw

x0

v

b

)(vy φ=

⎩⎨⎧

≤−>

=0101

xwxw

yt

t

ρρρρ[ ]

[ ]tm

tm

xxxx

wwwbw

Λρ

Λρ

21

21

1=

=con

Page 4: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

El Perceptrón divide al hiperplano en dos clasessiempre y cuando estas sean linealmente separables.

En 2D:No es separable

No es linealmente separable

Si es separable

Page 5: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

Entrenamiento: Actualizar los pesos sinápticos para minimizar el error de clasificación.

4) n= n+1, retornar a 2) hasta alcanzar la condición de parada

AlgoritmoEntrada: X(n)=[1, x1(n),x2(n),......,xm(n)]t

W(n)=[b(n),w1(n),w2(n),......,wm(n)]t

y(n), respuesta reald(n), respuesta deseadaη, constante positiva (tasa de aprendizaje)

1) Inicializar W(0)=0, n=1.

2) En el paso n, activamos le perceptrón con la entrada X(n) y la salida deseada d(n). y(n)=sgn[W t(n) * X(n) ];

3) Actualizar los pesos según la reglaW(n+1)= W(n) + η[d(n)-y(n)]X(n)

1 si X(n) pertenece a C1d(n)=

-1 si X(n) pertenece a C2

Page 6: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

OBSERVACIONES

1. Definimos Δ(n) = d(n) –y(n). Δ(n) es el error de la clasificación en la iteración n.

2. Cuando el error de clasificación es 0, los pesos no se actualizan.

3. Condición de parada: Realizar tantas épocas como hagan falta hasta lograr que todos los Δ(n) de una época sean 0.

4. La inicialización de los pesos iniciales puede ser a cualquier valor.

5. Se puede demostrar que el algoritmo termina con Δ(n)=0 para cualquier valor de η positivo (OJO)

Definición: Una época es la presentación del conjunto completo de datos.

Page 7: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

Interpretación Geométrica

Queremos encontrar pesos W tales que

sgn( ) = d La proyección del patrón X sobreW tenga el mismo signo que d

La frontera entre proyecciones positivas y negativas es......

El hiperplano =0 En 2D, es la ec. de la rectaCon vector perpendicular W

Si y=d no cambio W

Si y d actualizo según la reglaWnuevo=Wviejo + η (d - y) X, para todo d

xwt ρρ

xwt ρρ

Page 8: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

d=1d=-1

P1

w2ηp1

Wnuevo=Wviejo + η (d - y) X

Page 9: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

Qué pasa si η es muy grande?

Qué pasa si P1es un punto atípico?

Tardaremos MUCHO en converger

Tardaremos MUCHO en converger

Mejora es este caso: Wnuevo=Wviejo + η (d - y) X / ||X||

Page 10: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

Ejemplo:x1 x2 d(X)1 1 -11 2 +12 1 +12 2 +1

Es linealmente separable?

Hay algún punto atípico?

Si

No

Page 11: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

TEOREMA DE CONVERGENCIA

Considere la entrada: que representanMuestras de dos clases linealmente separables,

y , asuma que existe un vector w tal que

sisi

Λ,, 21 xx

1C

1Cx ∈ρ

2C

0≤xwt ρρ2Cx ∈

ρ

•Sea H1 el subconjunto de entrenamiento que pertenecen a la clase .•Sea H2 el subconjunto de entrenamiento que pertenecen a la clase

1C2C

Si H es el conjunto de entrenamiento (linealmente separable) y para η positivo, elAlgoritmo termina (converge).

0>xwt ρρ

Page 12: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

Demostración:Queremos encontrar los pesos tales que se satisfaga:

2

1

para0 para0

CxxwCxxw

t

t

∈≤∈>

ρρρρρρ

(1)

Si no es clasificado correctamente actualizo los pesos según la regla:)(nx

(Les quitamos las flechitas)

)(y 0)()( si )()()()1(

)(y 0)()( si )()()()1(

1

2

Cnxnxnwnxnnwnw

Cnxnxnwnxnnwnwt

t

∈≤+=+

∈>−=+

η

η

)(n

(2)

Controla el ajuste que se aplica en la iteración nη

Page 13: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

Caso 1: 0)( >=ηη n Supongamos que :

• la constante es igual a 1.• w(0)=0•• x(n) pertenece a H1 (está mal clasificado) para n=1,2,3,..

0)()( <nxnwt

w(n+1)=x(1)+x(2)+ ….+ x(n) (3) Utilizando la regla (2) e iterando

Existe una solución w0 para la cual 0)()( >nxnwt Para x(1),x(2),….,x(n) en H1

Definimos 10 )( sobre )( min Hnxnxwt ∈=α

αnnwwt ≥+ )1(0 (4)

Multiplicando a (3) por W0t

Page 14: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

Ahora,

[ ] 2220

22 )1()1( αnnwwnww to ≥+≥+

Des. Cauchy Schwartz (4)

20

222)1(

wnnw α

≥+

Note que w(i+1) = w(i) + x(i) para x(i), una muestra de la clase C1 con i = 1, 2, 3, …,nTomamos norma a ambos lados y obtenemos||w(i+1)||2 = ||w(i)||2 + ||x(i)||2 + 2wT(i)x(i)Pero si el perceptrón clasifica incorrectamente (como asumimos al inicio), wT(i)x(i) < 0Por lo tanto,

||w(i+1)||2 <= ||w(i)||2 + ||x(i)||2

Page 15: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

||w(i+1)||2 - ||w(i)||2 <= ||x(i)||2 for i = 1, 2, 3, …,n

( ||w(1)||2 - ||w(0)||2 <= ||x(1)||2 ) +( ||w(2)||2 - ||w(1)||2 <= ||x(2)||2 ) +( ||w(3)||2 - ||w(2)||2 <= ||x(3)||2 ) +

…( ||w(n+1)||2 - ||w(n)||2 <= ||x(t)||2 ) con w(0)=0,

( ) 2

)(1

22

1

maxcon )()1( ixnixnwenHix

n

i

ρ=≤≤+ ∑

=

ββ

Tenemos que:βα nnw

w

n≤+≤ 2

2

0

22

)1(

Qué pasa con n grandes?

Page 16: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Debe existir un n tal que ambas desigualdades se satisfagancon igualdad, nmax

βαmax2

0

22max nw

n=

2

20

max αβ w

n =

Hemos probado que el proceso termina luego de un número finito de iteraciones

El Perceptrón

Page 17: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

Caso 2: )(nη variable

Sea el menor entero tal que )(nη

)()()()()( nxnwnxnxn tt >η

Si el producto interno en la n-ésima iteración tiene signo incorrecto,Entonces, tiene el signo correcto. (Tarea)

)()( nxnwt

)()1( nxnwt +

Sugiere mostrar la data una y otra vez hasta que sea clasificado correctamente

QED

Page 18: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

Como motiva esto al algoritmo propuesto?

[ ] )()()()()1( nxnyndnwnw −+=+ α

Supongamos que x(n) está mal clasificado, por ejemplo:

X(n) pertenece a C2 (d(n)=-1),pero y(n) =1 d(n)-y(n)=-2

)()()1( nxnwnw η−=+

Con αη 2= Constante!!!

Page 19: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Ejemplos (1 Neurona)

Σ ϕ(.)

wk1

wk2

wkm

bkx1

x2

xm

vk yk

x1

Matemáticamente:yk = j(x1wk1+ x2wk2+ ........+xmwkm + bk)

= j(XW+ b)

Una neurona con múltiples entradas

En Matlab la data es representada en forma vectorial:>>w=[2,-2]; b=2;>>x=[-1,1]; out=w*x‘+ b

out=-2

Page 20: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

>> 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')

Algunos comandosen Matlab

Dibujar una función de transferencia

Page 21: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

x2

x1

x2 = x1+1

w1x1+w2x2+b=0 x2= -b/w2 - w1/w2 x1 b = w1 = 2 w2= -2

Clasificar con una neurona

Page 22: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

w1x1+w2x2+b= -4 hardlim(-4) = 0

Clasificar con una neurona

Para un nuevo punto en la data

x2

x1

Page 23: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción 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 epocasuma(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

Page 24: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

Page 25: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

¿Cómo entrenamos en Matlab a una neurona dada una data?>>load classdata

Entrenamiento en Matlab

(Esta data se puede obtener de http://prof.usb.ve/mvillasa/redes)

T = t(1) t(2) t(3) ...................... t(n)

P = p1(1) p1(2) p1(3) p1(4) p1(5) ..... p1(n)

p2(1) p2(2) p2(3) p2(4) p2(5) ...... p2(n)

1er dato2ndo dato

N-ésimo dato

Este ejemplo tiene dos coordenadas (2D)

Misión: entrenar un perceptrón para que clasifique la data correctamente.

t(i) = 1 o 0, dependiendo a qué grupo pertenece.

>>who

Page 26: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

>>[P’ T’]>>help plotpv>>plotpv(P,T)

Explorar la data

Estos comandosAyudan a visualizarLa data

Page 27: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

>>help newp>>net = newp([-2 2;-2 2],1);

Acabamos de crear un perceptrón 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

Page 28: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Crear un perceptron

Automáticamente Matlab coloca marcadores distintos para cada caso

Originalmentelos pesos son 0, asi quela neurona no hacenada.

>>help plotpc

>>plotpc(net.IW{1},net.b{1})

Con esto visualizamosel efecto del perceptrón

Page 29: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Entrenar el perceptrón

¿Cuál es el algoritmo de entrenamiento?>>help adapt>>help trainLa diferencia radica en la forma en que se presentan los datos

Si los datos son presentados en una matriz la actualización es por lote (lo veremos la próxima clase)

>>[net1,y,e] = adapt(net,P,T);>>mse(e)Si los datos son presentados en celdas la actualización es secuencial (teorema)• texto2='TS={';• texto='PS={';• for i=1:40,• texto=[texto,' [',num2str(P(1,i)),’;’,num2str(P(2,i)), ']'];• texto2=[texto2,' ',num2str(T(i))];• end;• texto=[texto, '}'];• texto2=[texto2, '}'];• eval(texto)• eval(texto2)

>>[net2,y,e] = adapt(net,PS,TS);>>mse(e)

Page 30: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Por defecto el número de pases por la data es 1.Fijamos algunos parámetros del algoritmo>>net.adaptParam.passes = 2;Entrenamos la red y retornamos su valor.>>[net,y,e] = adapt(net,P,T);>>mse(e)

El perceptrón ha sido entrenado, es decir se han modificado los pesos para que la salida del perceptrón concuerde con el vector t.

>>plotpc(net2.IW{1},net2.b{1});

Entrenar el perceptron

Page 31: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Entrenar el perceptron

Hemos clasificado exitosamente!!

Page 32: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Validar el perceptrón

Exploramos la data de validación>>Val

La validación se realiza con la simulación de nueva data en la red (pasamos nueva información por el perceptrón)

>>help sim>>a = sim(net,Val);

Ahora queremos mostrar en una misma gráfica la data de entrenamiento y la data que usamos para la validación pero al esta última le cambiamos el color a rojo.

>>plotpv(Val,a);>>point = findobj(gca,'type','line');>>set(point,'Color','red');>>hold on;>>plotpv(P,T);>>plotpc(net.IW{1},net.b{1});

Page 33: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Validar el perceptrón

Page 34: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Observaciones

• Se puede inicializar el perceptrón con otros valores, como por ejemplo valores aleatorios.

>> net.inputweights{1,1}.initFcn = ‘rands’>> net.biases{1}.initFcn = ‘rands’>> net=init(net)

• Un perceptrón puede aprender utilizando varias reglas de aprendizaje– Learnp: El algoritmo para el cual probamos convergencia con

parametro fijo– Learnpn: La iteración modificada para ser robusta ante puntos

atípicos con parámetros fijos– Learnwh: la iteración LMS con parámetro variable. (lo veremos

próxima clase)

Page 35: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

• Podemos también controlar la cantidad de “pasadas” del entrenamiento.

>> net.TrainParam.epochs=1;>>net=train(net,P,T);>>net.IW{1}

De esa forma vemos el cambio de una iteración del algoritmo de entrenamiento.

Observaciones

Page 36: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón

•Como vimos antes, un perceptrón produce un hiperplano que discierne entre dos clases.•Dos perceptrones, producen dos hiperplanos que pueden diferenciar hasta22 clases.

•K perceptrones distinguen hasta 2k clases

Page 37: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Más de dos clases

1x

2x

11w

12w21w

22w

1b

2b

1y

2y

⎟⎟⎠

⎞⎜⎜⎝

⎛)()(

2

1

kxkx

Una entrada

tiene valor deseado

⎬⎫

⎩⎨⎧

⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

⎛10

,11

,01

,00

)()(

2

1

kdkd

( )( )222212112

121211111

bwxwxybwxwxy

++=++=

ϕϕ

Page 38: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón multiple

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎥⎥⎥⎥

⎢⎢⎢⎢

+

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=+⋅

km

T

kmmm

k

k

T

b

bb

x

xx

www

wwwwww

bxWΜΜ

ΛΜΛΜΜ

ΛΛ

ρρρ 2

1

2

1

21

22212

12111

)( φφ

Vectorialmente lo podemos escribir como ……

Page 39: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón multiple

⎥⎥⎥⎥

⎢⎢⎢⎢

+

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

+

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

+

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

kkk

T

mkkk

m

mT

kmmm

k

k

kmmm

k

k

T

mk

T

kmmm

k

k

kmmm

k

k

e

ee

b

bb

b

bb

xexexe

xexexexexexe

www

wwwwww

www

wwwwww

x

xx

e

ee

www

wwwwww

www

wwwwww

ΜΜΜ

ΛΜΛΜΜ

ΛΛ

ΛΜΛΜΜ

ΛΛ

ΛΜΛΜΜ

ΛΛ

ΜΜΛ

ΜΛΜΜΛΛ

ΛΜΛΜΜ

ΛΛ

2

1

2

1

2

1

21

22212

12111

21

22212

12111

21

22212

12111

2

1

2

1

21

22212

12111

21

22212

12111

Los pesos se actualizan según la regla

Page 40: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

El Perceptrón multiple

(perceptron3.m)(class3data.mat)

(Este archivo y la data se pueden obtener de la página web)

Page 41: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Para curucutear

Si se quieren divertir:•Para practicar Matlab:Generar data aleatoria que siga ciertasespecificaciones 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 según 4 atributos: long y anchode la sepa y long y ancho de los pétalos. Mirar la data por pares y darsecuenta de la no-separabilidad de dos de los subconjuntos. Pueden ustedessegregar entre esta y las anteriores? (incluida en la tarea)

Page 42: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

The Pocket Algorithm

Los perceptrones no se comportan bien cuando las clases no son linealmente separables. Podemos pensar en un conjunto óptimo de pesos.

optimalidad mayor número de clasificados

• Un perceptrón pudiera visitar un conjunto de pesos óptimos en una iteración del algoritmo del perceptrón y luego pasar al peor de todos.

• El algoritmo del perceptrón puede nunca estabilizarse en los casos no separables linealmente.

El algoritmo del bolsillo (pocket) lo que hace es añadirle un refuerzo positivoal aprendizaje de los pesos buenos para estabilizar el algoritmo.

Page 43: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Variante del Perceptrón-Pocket Algorithm

Idea: usar el algoritmo del perceptrón manteniendo un conjunto de pesos en el bolsillo.

Algoritmo

1) Inicializar W(0) a algún valor aleatorio.2) Definir algún vector wb (en el bolsillo). 3) Inicializar hb =0 (un contador de historia de wb).

4) En el paso n, calcular la actualización W(n+1) según elalgoritmo del perceptrón. Usar el nuevo vector de pesospara calcular h (número de muestras clasificados correctamente)

Si h>hb,wb W(n+1)hb h

fin

Page 44: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Se puede demostrar que el algoritmo del bolsillo (Pocket Algorithm) converge con probabilidad 1 a la solución óptima.

Gallant, S.I.Neural Networks, IEEE Transactions onVolume 1, Issue 2, Jun 1990 Page(s):179 - 191

Otras variantes:Thermal Perceptron algorithmLoss minimization algorithmBarycentric correction prodecure

Variante del Perceptrón-Pocket Algorithm

Page 45: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

clasificación basado en aprendizaje competitivo

Suponga que se tienen multiples clases (L) y se cuentan con M patrones para el entrenamiento (X1, X2, ..... XM) .

El conjunto se dice linealmente separable si (y solo si) existen vectores de pesos wi con i=1,...,L tal que para cualquier patrón z en la i-ésima clase

wit z > wj

t z para todo j distinto de i.

Page 46: ALGUNOS MODELOS DE UNA NEURONA - prof.usb.veprof.usb.ve/mvillasa/redes/perceptron-c-vl.pdf · Introducción a las Redes Neuronales Artificiales Neuronas de McCulloch-Pitts (El Perceptrón)

Introducción a las Redes Neuronales Artificiales

Suponga que el patrón z se sabe pertenece a la clase i y que la neurona ganadora (la clase ganadora) se denota por un entero j, por lo tanto para todo l~=j,

wjt z > wl

t z 1. Cuando j=i (el patrón está correctamente

clasificado), no hay actualizaciones.2. Cuando j ~=i (z está mal clasificado), se hacen

las siguientes actualizaciones:1. RL: Wi

nuevo = Wiviejo + η z

2. ARL: Winuevo = Wi

viejo - η z

Dejando los demás pesos sin alterar

clasificación basado en aprendizaje competitivo