Tarea redes neuronales

Solo disponible en BuenasTareas
  • Páginas : 14 (3264 palabras )
  • Descarga(s) : 0
  • Publicado : 20 de enero de 2011
Leer documento completo
Vista previa del texto
Tarea Final

“PRACTICAS DE REDES NEURONALES”

Por

INTELIGENCIA COMPUTACIONAL: Redes Neuronales
Profesor: xxx

CURSO: INTELIGENCIA COMPUTACIONAL - REDES NEURONALES

Practica #1

1. Ejercicio 1: Red Perceptrón de un solo neurona

Para los datos a continuación, entrenar una red neuronal.

Para resolver el problema se utiliza un perceptrón de una solo neurona con dos entradas.En este ejercicio, la red neuronal es inicializada aleatoriamente y posteriormente entrenada usando la función de entrenamiento por defecto hardlim y la función de aprendizaje learnp.

Para esto se utilizó el siguiente código en MATLAB:
clear all,close all,clc
X = [-0.5 -0.5 0.3 0.0; -0.5 0.5 -0.5 1.0];
Y = [1.0 1.0 0.0 0.0];
% Se Crea el Perceptron:
pr = [-2 2; -2 2]; m = 1;
net = newp(pr, m); % Función de entrenamiento: hardlim y función de aprendizaje learnp

% Inicializa aleatoriamente los pesos y las polarizaciones del perceptron
net.initFcn = 'initlay';
net.layers{1}.initFcn = 'initwb';
net.inputWeights{1}.initFcn = 'rands'; %pesos aleatorios
net.biases{1}.initFcn = 'rands'; %polarizacion aleatoria
net = init (net); %se inicializa la red

%Entrenamiento delperceptron
net.trainParam.epochs = 4; % Número de épocas=4
net = train (net, X, Y); %se entrena la red

%Simula la salida de la red, dadas las columnas de X como entradas.:
Y_nn = sim(net, X);
clear all,close all,clc
X = [-0.5 -0.5 0.3 0.0; -0.5 0.5 -0.5 1.0];
Y = [1.0 1.0 0.0 0.0];
% Se Crea el Perceptron:
pr = [-2 2; -2 2]; m = 1;
net = newp (pr, m); % Función deentrenamiento: hardlim y función de aprendizaje learnp

% Inicializa aleatoriamente los pesos y las polarizaciones del perceptron
net.initFcn = 'initlay';
net.layers{1}.initFcn = 'initwb';
net.inputWeights{1}.initFcn = 'rands'; %pesos aleatorios
net.biases{1}.initFcn = 'rands'; %polarizacion aleatoria
net = init (net); %se inicializa la red

%Entrenamiento del perceptron
net.trainParam.epochs =4; % Número de épocas=4
net = train (net, X, Y); %se entrena la red

%Simula la salida de la red, dadas las columnas de X como entradas.:
Y_nn = sim(net, X);

El entrenamiento solo toma 2 iteraciones.

Resultado en MATLAB: Salida simulada Y_nn

Y_nn =

1 1 0 0
Y_nn =

1 1 0 0

Comparación con una red lineal de una sola capa
Para este casose modifica la línea net = newp (pr, m) por net = newlin(pr,m). Las funciones de inicialización y entrenamiento se auto-ajustan para usar las reglas de entrenamiento más apropiadas.

Para este caso, fue necesario aumentar el número de épocas a 1000, ya que con una red neuronal lineal, el aprendizaje es más lento.
El error cuadrático medio converge alrededor de las 600 épocas.

Resultado enMATLAB: Salida simulada Y_nn

Y_nn =

1.0845 0.8841 -0.0457 0.0775
Y_nn =

1.0845 0.8841 -0.0457 0.0775

2. Ejercicio 2: Red feed-forward de dos capas para aproximación de una función.

Para este ejercicio trata con una arquitectura feed-forward para realizar una aproximación de una función no lineal basándose en datos de muestra. Esta red tiene una capaoculta de neuronas con función de activación sigmoidal, lo cual le proporciona la capacidad de aproximar una función con un número finito de discontinuidades en una dimensión.

Los datos de la función se muestran a continuación:

Para esto se utilizó el siguiente código en MATLAB:

% se cargan los datos de entrada y los targets
load inputs.dat
X=inputs;
load outputs.dat
Y=outputs;
m1 = 5;%5 neuronas en la capa oculta
m2 = 1; %1 neurona en la capa de salida
%Inicializa una red feed-forward de dos capas

net = newff (minmax(X), [m1 m2], {'logsig' 'purelin'});
net = init (net); %Función de inicialización Nguyen-Widrow


%Entrenamiento
net.trainParam.goal = 0.02; %error esperado
net.trainParam.epochs = 50; %número de epocas
net = train (net, X, Y);


%Simulación...
tracking img