Está en la página 1de 8

Perceptron Simple Aprende la Regla

M.Sc. Ricardo Rodrguez Bustinza


robust@uni.edu.pe

Indice
1. Objetivos 2
2. Marco Te orico 2
2.1. Red Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. Creaci on del Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3. Comandos para el Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.4. Algoritmo de Aprendizaje del Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Experiencia 4
1
2 MARCO TE

ORICO
1. Objetivos
Entrenar la red perceptron simple usando el Toolbox de Redes Neuronales de MATLAB para resolver
la tarea de clasicaci on de patrones.
Desarrollar el algoritmo perceptron aprende la regla.
2. Marco Te orico
Una prueba de convergencia importante para el modelo neuronal que fue desarrollada y publicada por
Frank Rosenblatt en 1958 y 1962 en su obra Perceptrons. Este teorema se llama el teorema de con-
vergencia del perceptron. Rosenblatt no s olo present o un algoritmo mediante el cual su red poda ser
entrenada, sino adem as prob o que si el problema estaba dentro del conjunto de problemas resolvibles
por su red, su algoritmo convergera a una soluci on. Este trabajo impuls o mucho el estudio de las RNAs
en sus inicios porque adem as se present o como un m etodo de reconocimiento de patrones (herramienta
computacional) con logros importantes, no s olo como modelo neuronal.
2.1. Red Perceptron
El perceptron simple es un modelo unidireccional compuesto por dos capas de neuronas, una sensorial
o de entradas y otra de salida. En el laboratorio anterior, se ha creado a la red perceptron usando las
funciones del TRN de MATLAB y se ha explicado la arquitectura del modelo neuronal como la mostrada en
la Figura 1.
Entrada
W
b
+
+1
p
Rx1
SxR
Sx1
S
n a
Sx1 Sx1
R
Capa Perceptron
a = hardlim(Wp+b)
Figura 1: Arquitectura del perceptron simple.
2.2. Creaci on del Perceptron
El perceptron es usado para soluciones simples de funciones que sean linealmente separables (clasi-
caci on en 2 regiones). El perceptron se crea mediante la funci on newp, cuya sintaxis es:
net = newp(PR,S,TF,LF)
net toma valores de entradas, PR es la matriz de R2 de mnimos y m aximos valores para R elementos de
entrada, S es el n umero de neuronas, TF es la funci on de transferencia, por defecto usa hardlim y LF es
la funci on de aprendizaje, por defecto usa learnp.
Podemos usar la funci on mas actualizada nnt2p para crear al perceptron cuya sintaxis es:
M.Sc. Ricardo Rodrguez Bustinza 2
2.3 Comandos para el Perceptron 2 MARCO TE

ORICO
net = nnt2p(PR,W,B,TF,LF)
En este caso se mantienen los argumentos de la funci on newp solo cambian, W matriz de pesos SR, B
matriz de bias S1 y la funci on de entrenamiento LF puede ser learnp o learnpn.
2.3. Comandos para el Perceptron
El Toolbox de Redes Neuronales proporciona los comandos utiles que se listan a continuaci on:
Comando Sintaxis Descripci on
sim a = sim(net,P) Simula la salida de la red sin entrenarla.
init init(net) Pone a cero los valores de los pesos y bias.
adapt [net,a,e]=adapt(net,P,T) Lleva a cabo un c alculo cerrado. La red
ajusta los pesos y bias y devuelve el error.
train net=train(net,P,T) Entrena a la red y muestra un gr aco de la
evoluci on del error versus las epocas.
MATLAB mediante sus comandos de ploteo nos ayuda a resolver la representaci on gr aca del espacio
de patrones, que incluye al lmite de decisi on y al vector de pesos. Adicionalmente nos proporciona
comandos de ploteo de la supercie del error que nos proporciona a los mnimos locales. Los comandos
de ploteo tienen una limitaci on en cuanto al n umero de entradas a la red. Entre los comandos de ploteo
podemos citar:
PLOTPV: Graca los patrones de entrada y la salida deseada (binaria).
Sintaxis: plotpv(P,T), o plotpv(P,T,V)
donde, P es una matriz de RxQ cuyas columnas est an formada por los vectores de entrada (R<=3), T es una
matriz de SxQ con la salida binaria esperada (S<=3) y V indica los lmites del gr aco de la forma [x

min
x

max y

min y

max].
PLOTPC: Plotea la lnea de clasicaci on.
Sintaxis: plotpc(W,b), o plotpc(W,b,h)
donde, W es la matriz de pesos de SxR (R<=3), b es el vector bias de Sx1 y h es un handle (manejador) de la
ultima lnea trazada (anula la ultima lnea antes de trazar el nuevo).
ERRSURF: Presenta al error de supercie para una neurona.
Sintaxis: E=errsurf(P,T,WV,BV,F)
donde, P es un vector de entrada de 1xQ, T es un vector deseado de 1xQ, WV y BV son vectores la del valor
de los pesos W y bias B respectivamente y F es la funci on de transferencia.
PLOTEP: Plotea la posici on de los pesos-bias en una supercie de error de una neurona.
Sintaxis: h=plotep(w,b,e), o h=plotep(w,b,e,h)
donde, w es el valor de peso actual, b es el valor del bias actual, e es el error actual y h contiene los handles
(puntos trazados en la supercie del error).
PLOTES: Se usa para plotear el aprendizaje de la red de una neurona.
Sintaxis: plotes(wv,bv,es,v)
donde, wv-1xN vector de la la de valores de W, bv-1xM vector de la la de valores de B, ES-MxN vector de
error, V es el rango visual cuyo valor predeterminado es [-37.5, 30].
M.Sc. Ricardo Rodrguez Bustinza 3
2.4 Algoritmo de Aprendizaje del Perceptron 3 EXPERIENCIA
2.4. Algoritmo de Aprendizaje del Perceptron
Dados los k pares del conjunto de entrenamiento:
{
(x
1
, t
1
), (x
2
, t
2
), (x
3
, t
3
), . . . , (x
K
, t
K
)
}
Donde, x
k
= (x
k
1
, . . . , x
k
n
), t
k
= (t
k
1
, . . . , t
k
m
), k = 1, 2, ..., K.
paso 1: Se elige > 0
paso 2: Se inicializan los pesos w
i
con valores peque nos aleatorios, la corrida del error E se ja a
0, k := 1
paso 3: Empieza el entrenamiento, se presenta x
k
, x := x
k
, t :=t
k
y la salida O es computada.
O
i
(x) = sign(< w
i
, x >), i = 1, ..., m
paso 4: Se actualizan los pesos
w
i
:= w
i
+(t
i
sign(< w
i
, x >))x, i = 1, ..., m
paso 5: El error del ciclo acumulativo se computa agregando el error presente a E,
E := E +
1
2
y O
2
paso 6: Si k < K, entonces k := k +1 y continua el entrenamiento en el paso 3, en otro caso ir al
paso 7.
paso 7: El ciclo de entrenamiento es completado. Si E = 0, termina la sesi on de entrenamiento. Si
E > 0 el error se ja a 0, k := 1 se inicia el entrenamiento, ir al paso 3
3. Experiencia
Ejercicio # 1
Considere el siguiente conjunto de entrenamiento dada en la tabla de abajo.
N

Patrones de Entrada (x) Salida deseada (t)


1 x
1
= (1, 0, 1)
T
t
1
= 1
2 x
2
= (0, 1, 1)
T
t
2
= +1
3 x
3
= (1, 0.5, 1)
T
t
3
= +1
(a) A continuacion se lista un c odigo MATLAB que representa al algoritmo perceptron aprende la regla
solucion al problema. Se ha considerado el factor de entrenamiento = 0.1 y el vector de peso
inicial dado por:
w
0
= (1, 1, 0)
T
M.Sc. Ricardo Rodrguez Bustinza 4
3 EXPERIENCIA
P = [1 0 -1
0 -1 -0.5
1 -1 -1];
T = [-1 1 1];
w = [1;-1;0];
[in,pt]=size(P);
pesos=zeros(1,3);
salidas=zeros(1,3);
error=zeros(1);
Emse=zeros(1);
n = 0.1;
it = 0;
e = 1;
while e~=0
e = 0;
it = it+1;
for k=1:3
y(k) = sign(w*P(:,k));
w = w+n*(T(k)-y(k))*P(:,k);
e = e+((T(k)-y(k))^2)/2;
end
emse=mse(e);
pesos(it,:)=w;
error(it,:)=e;
Emse(it)=emse;
end
Se pide plotear la evoluci on de error versus las epocas como se muestra en la Figura 2.
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0
5
10
15
20
Evolucin del error
k

e
r
r
o
r
Figura 2: Evoluci on del error.
(b) Resuelva el problema esta vez use el algoritmo proporcionado por los comandos del TRN de
MATLAB. Comente estos resultados con los obtenidos en el tem anterior.
Ejercicio # 2
Resolver el problema de clasicaci on de patrones desde el espacio de patrones mostrado en la Figura 3.
(a) Entrene la red de tal forma que pueda separar las clases. Use el c odigo del algoritmo propuesto
lneas arriba, adem as plotear el lmite de decisi on y la evoluci on del error MSE. Finalmente halle
los valores de pesos y bias nales.
M.Sc. Ricardo Rodrguez Bustinza 5
3 EXPERIENCIA
2
X
1
X
Figura 3: Espacio de patrones.
(b) Resolver el problema de clasicaci on de patrones usando el algoritmo del perceptron, en este caso
debe considerar el uso de la funci on LEARNP, ADAPT y TRAIN del TRN de Matlab. Indicar
tambi en para cada caso el n umero de iteraciones y epocas del entrenamiento.
Ejercicio # 3
Para ordenar la fruta seg un el tipo, nosotros usamos tres sensores para medir las tres propiedades de la
fruta: la forma, textura y peso. Las tres salidas del sensor ingresaran a una red neuronal (ver Figura 4).
Sensor
Motor DC
Faja Transportadora
RNA
Contenedor
Vlvula
Figura 4: Sistema neuronal de reconocimiento de frutas.
El prop osito de la red es decidir el tipo de fruta seg un una entrada especca. Asumamos que hay s olo dos
tipos de fruta: manzanas y naranjas. Cada paso de las frutas a trav es de los sensores puede representarse
por un vector x tridimensional de tres elementos. El primer elemento del vector representa la forma, el
segundo elemento representa la textura y el tercer elemento representa el peso, tal vector es:
x =

Forma
Textura
Peso

Por consiguiente, una naranja y una manzana prototipo se representara por:


x
1
=

1
1
1

(Naranja) x
2
=

1
1
1

(Manzana)
La red neuronal recibir a un vector de la entrada tridimensional para cada fruta y debe tomar una decisi on
acerca de si la fruta es una naranja (x
1
) o una manzana (x
2
). Dise ne el perceptron para reconocer estos
M.Sc. Ricardo Rodrguez Bustinza 6
3 EXPERIENCIA
patrones. Use una data bipolar y compare con la data binaria que concluye al respecto. C omo reaccionara
la red si repentinamente aparece la fruta mango?.
Ejercicio # 4
Sean el conjunto de patrones de entrada y salida deseada dados en la tabla siguiente:
p
1
p
2
t
1
t
2
1 0.5 0 0
2.7 1 0 0
3 3.5 0 1
7 6 1 1
8 1 1 0
2 2.3 0 0
2 5 0 1
5.5 7 1 1
7 2 1 0
En base a los c odigos de las experiencia anteriores, escriba el algoritmo perceptron aprende la regla y
entrene el conjunto de patrones para realizar la clasicaci on (ver Figura 5). Plotear la evoluci on del error.
0.9
1
1.1
0
5
10
2
0
2
4
6
8
P
(
3
)
Clasificacin de vectores 3D
P(1)
P(2) 0 2 4 6 8 10
2
0
2
4
6
8
Clasificacin de vectores 2D
P(1)
P
(
2
)
0 2 4 6 8
0
0.2
0.4
0.6
0.8
Evolucion del error para a
1
0 2 4 6 8
0.1
0.2
0.3
0.4
0.5
0.6
Evolucion del error para a
2
Figura 5: Clasicaci on de patrones.
Entrene el conjunto de patrones para realizar la clasicaci on de patrones (ver Figura 5). Plotear la evolu-
ci on del error para los casos ADAPT y TRAIN. Comente acerca de los valores de los pesos encontrados
en ambas simulaciones.
M.Sc. Ricardo Rodrguez Bustinza 7
3 EXPERIENCIA
Ejercicio # 5
Considere el conjunto de entrenamiento Q = {(P, T)}:
{(
p
1
=
[
0.5
0.5
]
, t
1
= 1
)
,
(
p
2
=
[
0.5
0.5
]
, t
2
= 1
)
,
(
p
3
=
[
0.3
0.5
]
, t
3
= 0
)
,
(
p
4
=
[
0.1
1.0
]
, t
4
= 0
)
,
(
p
5
=
[
40.0
50.0
]
, t
5
= 1
)}
Escriba un programa en c odigo MATLAB para resolver el problema de la clasicaci on de patrones para una
red tipo perceptron. Los resultados del entrenamiento son mostrados en la Figura 6. El dato de entrada
para validar la clasicaci on es p = [0.7, 1.2]
T
.
2 1.5 1 0.5 0 0.5 1 1.5 2
2
1
0
1
2
Vector entrada Vector salida deseada
p(1)
p
(
2
)
2 1.5 1 0.5 0 0.5 1 1.5 2
2
1
0
1
2
Vectores para ser clasificados
p(1)
p
(
2
)
2 1.5 1 0.5 0 0.5 1 1.5 2
2
1
0
1
2
Vector clasificado correctamente
P(1)
P
(
2
)
Figura 6: Evoluci on del entrenamiento para clasicar clases.
Pseudoc odigo en Matlab para visualizar la evoluci on de los lmites de decisi on.
E=1;
while(sse(E)) % sse error cuadratico medio
[net,y,E]=adapt(net,P,t);
linehandle=plotpc(net.iw{1,1},net.b{1},linehandle);
drawnow;
end;
M.Sc. Ricardo Rodrguez Bustinza 8

También podría gustarte