Está en la página 1de 9

PONTIFICIAUNIVERSIDADCATLICADELECUADOR

FACULTADDEINGENIERA

ApuntesdeInteligencia
Artificial

Laboratorio:
PerceptrnSimple
JORGEAGUILARJARAMILLO


LABORATORIO1:NEURONAYPERCEPTRONSIMPPLE

Objetivos.

BreverevisindelaherramientaMatlab
Reforzar el conocimiento adquirido sobre la neurona artificial y el perceptrn de
Rosemblatt
Implementarelalgoritmovistoenclasedelperceptrn,peroparaneuronaslineales,que
aceptencualquiervalor
RevisarlasfuncionesqueimplementaMatlabparaestecaso:
o newpysim

3.1

LANEURONA.

1. ReviselosdosdemosquetraeMatlab1sobrelaneuronayobservecomoelvalordelos
pesosinfluyeenlapendiente,yelvalordebensuubicacinenelejedelasy.
2. Pruebelasdiferentesfunciones
3. Observeenelsegundodemocomovaralasalidadelaneuronaenfuncindelosvalores
depesosWyb.

3.2

ELPERCEPTRON

Elperceptrnesunaneuronaconunafuncindetransferenciaescalnyunmecanismodeajuste
depesos(aprendizaje)quecomparalasalidareal,ydconlarespuestadesalidadelared,y,para
cualquierentradaoestmulodado.
LosPerceptronessonbiendefinidosparareconocimiento/clasificacindepatrones
Elmecanismodeajustedepesossellamaregladeaprendizajedelperceptrn.

Para ir a los demos, una vez abierto Matlab, en la ventana de comandos, escriba demo. Se
abrir una nueva ventana en la que debe ir al Neural Network que se encuentra en el
toolbox. Aqu encontrar los demos de la neurona (neurons) y del perceptron.
51 JorgeAguilarJ.


Ilustracin1.Esquemadeunperceptrnsimple(matlab,2006)

Matlabtrae6demosparaestetipode
redes:

1. Fronterasdedecisin(Decision
Boundaries)
2. Perceptrnlearningrule
3. Classificationwitha2input
perceptrn
4. Outlierinputvectors
5. Normalizedperceptrnrule
6. Linearlynonseparablevector

En el primer ejemplo, (Decision


Boundaries),seobservacomoladefinicindelvectordepesosyelvalordeb(umbral)definela
fronteradeseparacinentrelasdosclases.

Enelsegundoejemplo,seaplicalaregladelperceptrn,enelquesetienelasopcionesdeaplicar
onounbias(umbral):
Laopcinlearnaplicalareglaaunsoloejemplo.

52 JorgeAguilarJ.

LaopcinTrainaplicaelalgoritmohasta5datos,porestaraznnormalmentesenecesita
corrermsdeunavezestaopcinparaencontrarunasolucin.

Losdemosdel3al6,muestranelaprendizajedeestaredparaalgunoscasosparticulares

3.3

EJEMPLODECLASIFICACIN

Consideremosunejemplodeclasificacinde2clases:
Consideremoslos5ejemplosdelafigura:

1
0.8

x1

x2

yd(clase)

0.6

0.2

1(azul)

0.2

0.9

1(azul)

0.3

0.4

0(rojo)

0.1

0.1

0(rojo)

0.5

0.6

0(rojo)

0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8

-0.4

-0.2

0.2

0.4

0.6

0.8

ResolvamosesteproblemaenMatlab,aplicandounalgoritmocomoelrevisadoenclase,para
luegoresolverloconlasfuncionesqueimplementaMatlabparaelperceptrn.

% Ejemplo de entrenamiento del PS.


% Declaramos el vector de entrada P (tomando la convencin de
Matlab)
% y el vector de salida T e inicializamos los pesos, W y el bias
(b)
P=[0.6 -0.2 -0.3 0.1 0.5; 0.2 0.9 0.4 0.1 -0.6];
T=[1 1 0 0 0];
W=[-2 2];
b=-1;
% Graficamos estos datos de entrada y clase (0 y 1) juntamente con
la frontera de separacin: los valores iniciales.
plotpv(P,T);

% funcin para graficar los datos

53 JorgeAguilarJ.

plotpc(W,b);

% funcin para graficar la recta

% Definimos un contador para el nmero de pocas que se refiere al


% conjunto de todos los datos
nepoc=0
% calculamos la salida del perceptrn, para estos datos.
Y=hardlim(W*P+b);
% Introducimos un lazo que ajuste los pesos mientas no se
% cumpla la condicin de tener la salida del sistema igual a la
salida
% deseada.
while any(Y~=T)
Y=hardlim(W*P+b);
% Salida de la red
E=T-Y;

Error

[dW,db]= learnp(P,E);

% Aprendizaje

W=W+dW;

% Modificacin de pesos

b=b+db;

% Modificacin del valor de b

nepoc=nepoc+1;
disp('epochs='),disp(nepoc),
disp(W), disp(b);
plotpv(P,T);
plotpc(W,b);
pause(1);
end

Copieestecdigoenunarchivo.menMatlab(ejemplo,lab01.m)enalgunacarpetadefinida(por
ejemplo(C:\Matlab701\Work\LabIA\)

DefinaestacarpetaenelambientedeMatlab:
1. VayaelmenFileenMatlabalaopcinSetPath;
2. EnlanuevaventanaquesedespliegahagaclicenAddFolderyvayaalacarpetaenlaque
grablosarchivos.
3. SeleccinelayhagaclicenAceptar
4. LanuevacarpetaleaparecerenlaventanaMatlabsearchpath

54 JorgeAguilarJ.

5. EjecutelosbotonesdecontrolSaveyClose

Ahorasipuedeejecutarelprograma,tecleandosunombredelarchivoenelCommandWindow
deMatlab

Vectors to be Classified

Vectors to be Classified

1.5

1.5

0.5
P(2)

P(2)

0.5

-0.5

-0.5
-1

-1
-0.6

-0.4

-0.2

0.2
P(1)

0.4

0.6

0.8

Lospesosdefinidosnosonunasolucinal
problema

-0.6

-0.4

-0.2

0.2
P(1)

0.4

0.6

0.8

Luegode11iteracioneslaredhaencontrado
unasolucinaesteproblema

RESOLUCINDELMISMOEJEMPLODECLASIFICACINUSANDOLASFUNCIONESDE
MATLAB:NEWP

Matlabusalafuncinnewpparacrearunaredperceptrn.Estafuncintienecuatroparmetros
deentradayelresultado(salidadelafuncin)eslaredperceptrn.
red=newp(pr,s,tf,lf)

Donde:
prmatrizdelosvaloresmximosymnimosdelosdatosdeentrada(Nx2),dondeNes
elnmerodevariablesdeentrada
sNmerodeneuronas.
tffuncindetransferencia,pordefecto='hardlim'.

55 JorgeAguilarJ.

lffuncindeaprendizaje,pordefecto='learnp'.
redlaredperceptrn

Porloque,elmismoejemploqueacabamosdever,usandolafuncionquetraeMatlabpara
definirlaredperceptrnsetiene:

% Declaramos el vector de entrada P y El vector de salida T.


P=[0.60.20.30.10.5;0.20.90.40.10.6];
T=[11000];
% Graficamos
plotpv(P,T);
% Creamos el objeto red y le asignamos a la variable net:
net = newp([-0.3 0.6; -0.6 0.9],1);
% definimos el nmero de pases a 11 (como en el caso anterior)
entrenamos la red y graficamos los resultados
net.adaptParam.passes=11;
net=adapt(net,P,T);
plotpc(net.IW{1},net.b{1});
Normalmenteseentrenaunaredparaqueunavezqueaprende,estasirvaparaejemplosnuevos,
deloscualesnoconocemoslasalidayqueremosconocerlasalidadelared.
Matlabtraeotrafuncinparaclasificarejemplosnuevosconlosquenohasidoentrenadalared:
lafuncinsim.Esdecirsimdalasalidadelared,ely,dndolelosdatosdeentradayobviamente
elobjetonet,definidoanteriormente:
y = sim(net,p);
Veamoslaaplicacindeestafuncin.Sidefinimosundatodeentrada,lareddebeclasificarlo
correctamente.Consideremoselejemplo.
p=[0.56;0.1];
% calculamos la salida de la red.
y=sim(net,p);
plotpv(p,y);
point=findobj(gca,'type','line');
set(point,'Color','red');

56 JorgeAguilarJ.

holdon;
plotpv(P,T);
plotpc(net.IW{1},net.b{1});
holdoff;
Comoseobservaenlafiguralaredclasificaenformacorrectaelnuevodato(graficadodecolor
rojo).
Vectors to be Classified
1.5

P(2)

0.5

-0.5

-1

-0.6

-0.4

-0.2

0.2
P(1)

0.4

0.6

0.8

PREGUNTASARESOLVER.

Pruebedosclasesquenoseanlinealmenteseparables.Quseobserva?Porquocurre
esto?
Resuelveelcasodedosclasesenlasquesetengalosdatosseparados,comosemuestra
enlafigura.Existealgunadiferenciaenelentrenamientoconlosejemplosvistos.Cul
es?

57 JorgeAguilarJ.

2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2

-1.5

-1

-0.5

0.5

1.5

58 JorgeAguilarJ.

También podría gustarte