Laboratorio de Redes Neuronales

Inteligencia Artificial Laboratorio de Redes Neuronales PERCEPTRON Ejemplo 1.- Escribir un programa MATLAB para generar

Views 180 Downloads 4 File size 479KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Inteligencia Artificial

Laboratorio de Redes Neuronales PERCEPTRON Ejemplo 1.- Escribir un programa MATLAB para generar unas pocas funciones de activación que se utilizan en las redes neuronales. Solución Las funciones de la activación desempeñan un papel importante en la determinación de la salida de las funciones. Uno de estos programas para la generación de las funciones de activación es como se indica a continuación. % Funciones de activación 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('Función Logística'); xlabel('(a)'); axis('square'); subplot(132); plot(x, y2); grid on; axis([min(x) max(x) -2 2]); title('Función Tangente Hiperbolica'); xlabel('(b)'); axis('square'); subplot(133); plot(x, y3); grid on; axis([min(x) max(x) min(x) max(x)]); title('Función 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

X2 0 1 0 1

d 1 1 1 0

Solución clc P=[1 1 0 0;1 0 1 0]; % patrón de entrada T=[1 1 1 0]; % patrón 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 mínimos y máximos de las entradas], Número de neuronas, ‘Función %de Transferencia’, ‘Regla de Aprendizaje) net.IW{1,1}=[rands(1) rands(1)]; % También puede ser net=init(net); net.b{1}=rands(1); net.trainParam.epochs = 20; % Número máximo 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 sinápticos 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 cuadrático medio

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 ecuación de la recta de separación es: Se puede visualizar los patrones y la recta de separabilidad P=[1 1 0 0;1 0 1 0]; % patrón de entrada T=[1 1 1 0]; % patrón 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 implementación en cualquier lenguaje de programación, utilizando la ecuación:

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

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

X2 0 1 0 1

d 0 0 0 1

Inteligencia Artificial

Solución 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 diámetro, en centímetros y su intensidad de color naranja, medida entre 0 y 255 Ejemplos Naranjas ={(10,200);(8,150);(7,170);(15,250)} Melón ={(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 programación 2. Una agencia de modelos publicó los resultados de la última selección de postulantes. En ella se habían presentado seis mujeres. Cada una de ellas ha sido caracterizada sólo 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 selección adecuada. b) Cuál sería la respuesta del perceptrón de a) si se presentaran estas postulantes: {(56,1.73);(70,1.60);(45,1.80)} c) Implemente utilizando un lenguaje de programación

3. Implemente en un lenguaje de programación, todos los ejercicios anteriores y que muestre gráficamente la separabilidad lineal.