You are on page 1of 5

Inteligencia Artificial

Laboratorio de Redes Neuronales


PERCEPTRON
Ejemplo 1.- Escribir un programa MATLAB para generar unas pocas funciones de activacin que se utilizan en las redes neuronales. Solucin Las funciones de la activacin desempean un papel importante en la determinacin de la salida de las funciones. Uno de estos programas para la generacin de las funciones de activacin es como se indica a continuacin.
% Funciones de activacin de Redes Neuronales x = -10:0.1:10; tmp = exp(-x); y1 = 1./(1+tmp); y2 = (1-tmp)./(1+tmp); y3 = x; subplot(131); plot(x, y1); grid on; axis([min(x) max(x) -2 2]); title('Funcin Logstica'); xlabel('(a)'); axis('square'); subplot(132); plot(x, y2); grid on; axis([min(x) max(x) -2 2]); title('Funcin Tangente Hiperbolica'); xlabel('(b)'); axis('square'); subplot(133); plot(x, y3); grid on; axis([min(x) max(x) min(x) max(x)]); title('Funcin Identidad'); xlabel('(c)'); axis('square');

Se muestra la siguiente figura:

Inteligencia Artificial
Ejemplo 2.- Compuerta OR de dos entradas binarias X1 0 0 1 1 Solucin
clc P=[1 1 0 0;1 0 1 0]; % patrn de entrada T=[1 1 1 0]; % patrn de salida Plotpv(P,T); net = newp([0,1;0 1], 1,'hardlim','learnp'); % No es necesario especificar %'hardlim','learnp', las toma por defecto % newp([matriz de valores mnimos y mximos de las entradas], Nmero de neuronas, Funcin %de Transferencia, Regla de Aprendizaje) net.IW{1,1}=[rands(1) rands(1)]; % Tambin puede ser net=init(net); net.b{1}=rands(1); net.trainParam.epochs = 20; % Nmero mximo de pocas net.trainParam.goal = 0; % Error admisible [net, tr, Y, E] = train(net, P, T) S= sim(net, P) disp('Los pesos son: ') W= net.IW{1} % se presentan los pesos sinpticos de la red disp('El umbral es: ') b=net.b{1} % se presenta el sesgo de la red disp('El error final es: ') E= mae(S-T) % se presenta el error absoluto medio. mse nos da el error cuadrtico medio

X2 0 1 0 1

d 1 1 1 0

Un resultado es: Los pesos son: W = 1.6162 0.9713 El umbral es: b = -0.7028 El error final es: E = 0 La arquitectura de la red neuronal es:

Inteligencia Artificial
La ecuacin de la recta de separacin es: Se puede visualizar los patrones y la recta de separabilidad
P=[1 1 0 0;1 0 1 0]; % patrn de entrada T=[1 1 1 0]; % patrn de salida plotpv(P,T); % Grafica los patrones hold on; %mantiene la figura plotpc(W,b); % Grafica la recta de separabilidad

Obteniendo

Una vez obtenido, es posible la implementacin en cualquier lenguaje de programacin, utilizando la ecuacin:

Comprobando con matlab, por ejemplo para el patrn X=[1;1] >> X=[1;1]; >> Y=hardlim(W*X) Y= 1

Ejemplo 3.- Escriba un programa MATLAB para la red perceptron de una funcin AND con dos entradas binarias y salidas. X1 0 0 1 1 X2 0 1 0 1 d 0 0 0 1

Inteligencia Artificial

Solucin
clc X=[1 1 1 1;0 0 1 1;0 1 0 1]; Yd=[0 0 0 1]; W=rand(3,1); alpha=0.5 Neta=W'*X Yred=escalon(Neta); N=50; for i=1:N Neta=W'*X; Yred=escalon(Neta); Waux=W'+alpha*(Yd-Yred)*X'; W=Waux'; Error=Yd-Yred; if sum((Error.^2))==0 break; end; end; Neta=W'*X; Yred=escalon(Neta); disp('La salida final de la red neuronal es') disp(Yred) disp('Numero de pocas realizadas') disp(i) disp('Los pesos finales son') W disp ('El bias final es') W(1,:)

function out=escalon(in) for i=1:4 if in(i)>=0 out(i)=1; else out(i)=0; end; end;

Actividad
1. Sobre una cinta transportadora circulan naranjas y melones. Se busca obtener un clasificador de frutas que facilite su almacenamiento. Para cada fruta se conoce su dimetro, en centmetros y su intensidad de color naranja, medida entre 0 y 255 Ejemplos Naranjas ={(10,200);(8,150);(7,170);(15,250)} Meln ={(20,30);(26,30);(24,32);(19,31)}

Inteligencia Artificial
a) Obtenga los pesos que clasifiquen las frutas. Ingresando los patrones de manera secuencial Ingresando los patrones de manera alternada b) Implemente en un lenguaje de programacin 2. Una agencia de modelos public los resultados de la ltima seleccin de postulantes. En ella se haban presentado seis mujeres. Cada una de ellas ha sido caracterizada slo por su peso y altura. El resultado fue el siguiente: Aceptadas={(52,1.79);(53,1.81);(55,1.75)} Rechazadas={(65,1.70);(68,1.65);(58,1.71)} a) Obtenga los pesos correspondientes que permiten la seleccin adecuada. b) Cul sera la respuesta del perceptrn de a) si se presentaran estas postulantes: {(56,1.73);(70,1.60);(45,1.80)} c) Implemente utilizando un lenguaje de programacin

3. Implemente en un lenguaje de programacin, todos los ejercicios anteriores y que muestre grficamente la separabilidad lineal.

You might also like