Está en la página 1de 22

AUTOMATIZACIN INDUSTRIAL MECATRNICA

CARRERA: INGENIERA MECATRNICA


NIVEL: OCTAVO
NOMBRE:
David Fabrizzio Lpez

FECHA: 25 / 05 / 2015

TEMA:

ENTRENAMIENTO DE PERCEPTRON PARA RED NEURONAL DE


LA COMPUERTA XOR

1. OBJETIVO GENERAL:

Entrenar un perceptron para la red neuronal de la compuerta


XOR

1.1.
OBJETIVOS ESPECIFICOS:

Realizar un script donde se pueda crear, entrenar una RNA de la


compuerta XOR
Entrenar el perceptron para la compuerta XOR mediante nntool
Entrenar el perceptron para la compuerta XOR mediante nnstart

2. MARCO TEORICO:

Perceptron
El perceptrn dentro del campo de las redes neuronales tiene dos
acepciones. Puede referirse a un tipo de red neuronal artificial
desarrollado por Frank Rosenblatt. Y dentro de la misma teora de
Rosenblatt. Tambin puede entenderse como la neurona artificial y
unidad bsica de inferencia en forma de discriminador lineal, es decir,
un algoritmo capaz de generar un criterio para seleccionar un subgrupo, de un grupo de componentes ms grande. La limitacin de este
algoritmo es que si dibujamos en un plot estos elementos, se deben
poder separar con un hiperplano los elementos "deseados" de los "no
deseados". El perceptrn puede utilizarse con otros perceptrones u otro
tipo de neurona artificial, para formar redes neuronales ms
complicadas.

Ilustracin 1. Perceptron con dos entradas

(Wikipedia, 2015)
Comando nnstart

Matlab Neural Network Toolbox proporciona herramientas para el


diseo, la implementacin, la visualizacin y la simulacin de redes
neuronales.

Es compatible con redes feedforward, redes de base radial, redes


dinmicas, mapas auto-organizados y otros paradigmas de red
probadas.
Vamos a seguir ejemplos de Matlab para aprender a utilizar cuatro
herramientas grficas para la formacin de redes neuronales para
solucionar problemas en la funcin de ajuste, reconocimiento de
patrones (clustering, y series de tiempo por su cuenta)

Para iniciar el tipo de interfaz grfica de usuario maestro


Nnstart

Ilustracin 2. nnstar command

Esto nos permite acceder a las interfaces grficas de usuario para las
siguientes tareas
Funcin de ajuste
Reconocimiento de patrones
Agrupamiento de datos
Anlisis de series temporales
La segunda forma de utilizar la caja de herramientas es a travs de la
operacin de lnea de comandos, que no vamos a cubrir.

Los pasos estndar en el diseo de un NN en Matlab son:


Recolectar datos
Crear la red
Configurar la red
Inicializar los pesos y sesgos
Capacitar a la red
Validar la red
Utilice la red

Ilustracin 3. Introduccin a nnstart

Ilustracin 4. Seleccin de entradas y objetivos

Ilustracin 5.Datos de Validacin y Prueba

Ilustracin 6. Arquitectura de la red

Ilustracin 7. Entrenamiento de una red

Ilustracin 8. Datos del Entrenamiento

Ilustracin 9. Grabar resultados

(Ranga, 2014)
Compuerta XOR
La puerta XOR, compuerta XOR u OR exclusiva es una puerta lgica
digital que implementa el o exclusivo; es decir, una salida verdadera
(1/HIGH) resulta si una, y solo una de las entradas a la puerta es
verdadera. Si ambas entradas son falsas (0/LOW) o ambas son
verdaderas, resulta en una salida falsa. La XOR representa la funcin
de la desigualdad, es decir, la salida es verdadera si las entradas no son
iguales, de otro modo el resultado es falso. Una manera de recordar
XOR es "uno o el otro, pero no ambos".

Tabla 1. Compuerta XOR

(Wikipedia, 2015)
3. DESARROLLO:

3.1. Mediante Script Matlab

Seleccionar un nuevo Script en Matlab para realizar la


programacin correspondiente para el entretenimiento de la red
neuronal de la compuerta XOR. Declarar las entradas y el
objetivo como se indica en la tabla 1. O en anexos

Es muy importante correr el programa hasta obtener la salida


deseada es decir entrenar a la red hasta que la salida sea la que
se desee como se indica en la ilustracin

Ilustracin 10. Salidas de la red neuronal mediante Script Matlab

3.2.

Mediante nntool

Declarar las variables de entrada y de salida en la ventana de


comandos

Ilustracin 11. Entrada y Objetivo XOR

Digitar el comando de Matlab nntool el cual nos dar la siguiente


interfaz

Ilustracin 12. Interfaz nntool

En la cual en import se indicara las entradas y el objetivo


deseado

Ilustracin 13. Importada las entradas correctamente

Ilustracin 14. Importada el objetivo correctamente

Dar clic en new donde se indicara el nombre de la red y adems


se indicara las entradas y el objetivo

Ilustracin 15. Creacin de datos de red

Dar clic en ok y close lo que retornara a la ilustracin 12. Donde


se selecciona la red y se da clic en open la cual se abrir la
siguiente pantalla

Ilustracin 16. Red creada nntool

Elegir Train, seleccionar la input, el target, y tambin colocar


distintos nombres a la salida y al error y seleccionar Train
Network, esto es para que se d el entrenamiento de la red
neuronal.

Ilustracin 17. Entrenamiento de la Red

Regresar al Data Manager, seleccionar la salida y dar clic en


Open. Aqu deben aparecer los valores de que corresponden a la
salida.

Ilustracin 18. Interfaz de salida nntool

3.3.

Ilustracin 19. Datos de Salida

Mediante nnstart

Crear un script en el software de Matlab con la programacin que


se indica en el anexo, para la entrada.
Una vez creadas las entradas y el objetivo de nuestra red
procedemos en la ventana de comandos insertar el comando
nnstar
A continuacin nos saldr la siguiente pantalla

Ilustracin 20. Inicio nnstart

Dar clic en la primera opcin como se indica en la ilustracin 20


A continuacin se mostrara la siguiente pantalla

Ilustracin 21. Introduccin a la red

La ilustracin 21. Indica lo que es la introduccin a la red se da


clic en next como se indica en la misma ilustracin
Continuando dar la siguiente pantalla

Ilustracin 22. Seleccin de datos

En la ilustracin 22. Se elige los parmetros antes ya creados por


medio del script, esto es las entradas y los objetivos y se continua
A continuacin aparecer la siguiente pantalla

Ilustracin 23. Datos de validacin y prueba

Seleccionar los datos los cuales son el porcentaje de


entrenamiento , la validacin y el entrenamiento para que nuestra
red se entrene correctamente
Una vez dado clic en next aparecer la siguiente ventana.

Ilustracin 24. Arquitectura de la red

En esta pantalla se puede definir la arquitectura que va a tener la


red es decir el nmero de neuronas que la red va a poseer, esto
es muy importante para el entrenamiento de la misma.
A continuacin se da clic en next y aparecer la siguiente pantalla

Ilustracin 25. Entrenar la red

Esta pantalla lo que nos permite es entrenar la red con los


parmetros previamente configurados, lo que se hace es dar clic
en Train como se indica en la ilustracin y a continuacin
obtendremos la siguiente pantalla

Ilustracin 26. Datos del entrenamiento

Esta pantalla indica los distintos datos que tuvo nuestra red para
ser entrenada como el nmero de iteraciones, el tiempo, etc.
Retornando a la ilustracin 25. Se da clic en next y aparecer la
siguiente pantalla

Ilustracin 27. Evaluacin de la red

En esta pantalla lo que se hace es seleccionar nuevamente las


entradas y los objetivos definidos en primera instancia,
habilitndose la opcin para evaluar la red
A continuacin dar clic en next, aparecer la siguiente pantalla

Ilustracin 28. Guardar los resultados

Finalmente aparecer la pantalla para grabar los resultados de la


red dar clic en grabar e ir a la ventana de comandos
Escribir salidas para visualizar las salidas que se obtiene del
entrenamiento de la red como indica la ilustracin 29.

Ilustracin 29. Salidas del sistema

En este caso dio las salidas correctas ya que previamente ya se


entren con distintos valores hasta llegar hasta la respuesta en
caso de que la salida vari o no sea igual a los objetivos regresar
a la ilustracin 28 y dar atrs hasta llegar a la ilustracin 23. Y
variar los parmetros, seguir el mismo procedimiento pero
variando los datos tanto de las ilustraciones 23 y 24. Hasta
obtener los valores deseados

Para visualizar el error que se tiene en la salida se hace el mismo


procedimiento en la ventana de comandos se pone error a
continuacin dar la siguiente pantalla

Ilustracin 30. Error del sistema

Para evaluar es decir verificar que los valores de nuestra salida


sean los correctos dado entradas se utiliza el comando x=
sim(net,[1;1;1;1]) este es un ejemplo para las distintas entradas
ir cambiando y ver el resultado que dar
Al estar bien entrenada la red nos dar los valores
correspondientes a la salida que se desea

4. ANALISIS DE RESULTADOS:
4.1. Mediante Script de Matlab

Tabla 2. Resultados Mediante Script de Matlab

SA
LI
DA
V.

ENTRADAS

SA
LI
DA
R.
0,
00
3
1,
00
01
1,
00
5
0,
00
5

ER
RO
R
0,
03
0,
01
0,
5
0,
05

ERROR
12
10
8
6
4
2
0

4.2.

4.3.

10

Ilustracin 31. Error mediante Script de Matlab

Mediante nntool

Este mtodo no funciona ya que los valores de salida no


corresponden a los deseados debido a que no es linealmente
separable y es necesario ocupar un perceptron multicapa

Mediante nnstart

Tabla 3. Resultado Valores Conocidos

SA
LI
DA

ENTRADAS
0
0
1
1

12

0
1
1
0

ER
RO
R
5,
3
5,
6
19
,9
4,
1

ERROR
12
10
8
6
4
2
0

10

12

Ilustracin 32. Error en el sistema

5. CONCLUSIONES:

La parte de datos de validacin y de prueba es muy importante ya


que aqu se debe poner los valores necesarios para que la red se
entrene correctamente
El nmero de neuronas tambin tiene una relacin directa para el
entrenamiento de la red ya que de esto tambin depende los
resultados esperados
Los valores de la salida al utilizar el comando nntool no
corresponden al deseado, esto sucede porque no es linealmente
separable, y para resolver esta se necesita de un perceptrn
multicapa

6. RECOMENDACIONES:

Buscar correctamente el porcentaje de entrenamiento y el nmero


de neuronas que poseer la red ya que de esto depender la salida
del sistema.
Verificar que el error sea muy pequeo de tal manera que nos
asegure que la red est bien entrenada.
Verificar adecuadamente todos los comandos especialmente nntool
y nnstart para poder entrenar redes adecuadamente y si es posible
usarlos para tener resultados eficientes


7. BIBLIOGRAFIA:

Ranga, R. (2014, Abril 05). Retrieved Mayo 25, 2015, from


http://www.ent.mrt.ac.lk/~ranga/courses/ecse515_2014/L09%20Using
%20Matlab%20Neural%20Networks%20Toolbox.pptx.

Wikipedia. (2015, Mayo 11). Wikipedia. Retrieved Mayo 26, 2015, from
http://es.wikipedia.org/wiki/Perceptr%C3%B3n

8. ANEXOS
Mediante Script en Matlab

red=newff([0 1;0 1],[2 1],{'logsig','logsig'});% Definir la entrada, salida y


funcin de activacin.
entrada=[1 1 0 0;1 0 1 0]% Definir Entradas
objetivo=[0 1 1 0]% Definir lo que yo quiero conseguir, es decir
determinar el objetivo.
salida=sim(red, entrada)% Definir Salida, lo que la Red me va a dar a la
Salida.
plot(objetivo,'X')
hold on
plot(salida,'H')
red.IW{1,1}% Se puede ver los pesos de la Red Neuronal.
red.LW{2,1}
net.b{1}=[1;0.5]
net.b{1}=[2;1]
red=train(red,entrada,objetivo)% Entrenar a la Red Automticamente.
salida=sim(red,entrada)
plot(salida,'b')

Mediante nnstar
red=newff([0 1;0 1],[1 1],{'logsig','logsig'}) % creacion red
entrada=[0 0; 0 1; 1 0; 1 1] %entrada de la red
objetivo=[0; 1; 1; 0]
%salida deseada por la red
salida=sim(red,entrada) %simular la red
% Solve an Input-Output Fitting problem with a Neural Network
% Script generated by NFTOOL
% Created Tue May 26 00:58:10 COT 2015
%
% This script assumes these variables are defined:

%
% entrada - input data.
% objetivo - target data.
x = entrada';
t = objetivo';
% Create a Fitting Network
hiddenLayerSize = 8;
net = fitnet(hiddenLayerSize);
% Choose Input and Output Pre/Post-Processing Functions
% For a list of all processing functions type: help nnprocess
net.input.processFcns = {'removeconstantrows','mapminmax'};
net.output.processFcns = {'removeconstantrows','mapminmax'};

% Setup Division of Data for Training, Validation, Testing


% For a list of all data division functions type: help nndivide
net.divideFcn = 'dividerand'; % Divide data randomly
net.divideMode = 'sample'; % Divide up every sample
net.divideParam.trainRatio = 90/100;
net.divideParam.valRatio = 5/100;
net.divideParam.testRatio = 5/100;
% For help on training function 'trainlm' type: help trainlm
% For a list of all training functions type: help nntrain
net.trainFcn = 'trainlm'; % Levenberg-Marquardt
% Choose a Performance Function
% For a list of all performance functions type: help nnperformance
net.performFcn = 'mse'; % Mean squared error
% Choose Plot Functions
% For a list of all plot functions type: help nnplot
net.plotFcns = {'plotperform','plottrainstate','ploterrhist', ...
'plotregression', 'plotfit'};

% Train the Network


[net,tr] = train(net,x,t);
% Test the Network
y = net(x);
e = gsubtract(t,y);
performance = perform(net,t,y)

% Recalculate Training, Validation and Test Performance


trainTargets = t .* tr.trainMask{1};
valTargets = t .* tr.valMask{1};
testTargets = t .* tr.testMask{1};
trainPerformance = perform(net,trainTargets,y)
valPerformance = perform(net,valTargets,y)
testPerformance = perform(net,testTargets,y)
% View the Network
view(net)
% Plots
% Uncomment these lines to enable various plots.
%figure, plotperform(tr)
%figure, plottrainstate(tr)
%figure, plotfit(net,x,t)
%figure, plotregression(t,y)
%figure, ploterrhist(e)
% Deployment
% Change the (false) values to (true) to enable the following code
blocks.
if (false)
% Generate MATLAB function for neural network for application
deployment
% in MATLAB scripts or with MATLAB Compiler and Builder tools, or
simply
% to examine the calculations your trained neural network performs.
genFunction(net,'myNeuralNetworkFunction');
y = myNeuralNetworkFunction(x);
end
if (false)
% Generate a matrix-only MATLAB function for neural network code
% generation with MATLAB Coder tools.
genFunction(net,'myNeuralNetworkFunction','MatrixOnly','yes');
y = myNeuralNetworkFunction(x);
end
if (false)
% Generate a Simulink diagram for simulation or deployment with.
% Simulink Coder tools.
gensim(net);
end

También podría gustarte