Informe Del Ing Leonid

12
Diciembre 18, 2014 Universidad Andina Néstor Cáceres Velásquez INFORME DE LA “IMPLEMENTACION DEL ALGORITMO DE ENTRENAMIENTO Y PERCEPCION Y SU CODIFICACION EN MATLAB” Dennis Incacutipa Mamani Ingeniería Meca trónica .RESUMEN Por medio de este informe, daré a conocer algunas funciones, y describiré el código de programación y funcionamiento de este en MATLAB. OBJETIVOS General Conocer la manera como se pueden simular redes neuronales con el MATLAB Conocer las funciones con las cuales se implementa en el MATLAB las redes tipo Perceptrón. Entrenar una Red Neuronal para que resuelvan un problema con parámetros linealmente separables. Validar el modelo que se tiene con una Red Neuronal luego de entrenarla con los datos provenientes de la planta. 1

description

Informe

Transcript of Informe Del Ing Leonid

AUTOTRONICA

Diciembre 18, 2014 Universidad Andina Nstor Cceres Velsquez

INFORME DE LA IMPLEMENTACION DEL ALGORITMO DE ENTRENAMIENTO Y PERCEPCION Y SU CODIFICACION EN MATLAB

Dennis Incacutipa Mamani Ingeniera Meca trnica

.RESUMENPor medio de este informe, dar a conocer algunas funciones, y describir el cdigo de programacin y funcionamiento de este en MATLAB.OBJETIVOSGeneral

Conocer la manera como se pueden simular redes neuronales con el MATLAB

Conocer las funciones con las cuales se implementa en el MATLAB las redes tipo Perceptrn. Entrenar una Red Neuronal para que resuelvan un problema con parmetros linealmente separables.

Validar el modelo que se tiene con una Red Neuronal luego de entrenarla con los datos provenientes de la planta.

MARCO TEORICOREDES NEURONALES

Lasredes de neuronas artificiales(denominadas habitualmente comoRNAo eninglscomo: "ANN"1) son unparadigmadeaprendizajeyprocesamiento automticoinspirado en la forma en que funciona elsistema nerviosode los animales. Se trata de unsistemade interconexin deneuronasque colaboran entre s para producir un estmulo de salida. Eninteligencia artificiales frecuente referirse a ellas comoredes de neuronasoredes neuronales.

Una red neuronal se compone de unidades llamadas neuronas. Cada neurona recibe una serie de entradas a travs de interconexiones y emite una salida. Esta salida viene dada por tres funciones:1. Unafuncin de propagacin(tambin conocida comofuncin de excitacin), que por lo general consiste en elsumatoriode cada entrada multiplicada por el peso de su interconexin (valor neto). Si el peso es positivo, la conexin se denomina excitatoria; si es negativo, se denominainhibitoria.2. Unafuncin de activacin, que modifica a la anterior. Puede no existir, siendo en este caso la salida la misma funcin de propagacin.

3. Unafuncin de transferencia, que se aplica al valor devuelto por la funcin de activacin. Se utiliza para acotar la salida de la neurona y generalmente viene dada por la interpretacin que queramos darle a dichas salidas. Algunas de las ms utilizadas son lafuncin sigmoidea(para obtener valores en el intervalo [0,1]) y latangente hiperblica(para obtener valores en el intervalo [-1,1]).

Diseo y programacin de una RNA (red neuronal artificial)Con unparadigma convencional de programacineningeniera del software, el objetivo del programador es modelar matemticamente (con distintos grados de formalismo) el problema en cuestin y posteriormente formular una solucin (programa) mediante unalgoritmocodificado quetengauna serie de propiedades que permitan resolver dicho problema. En contraposicin, la aproximacin basada en las RNA parte de un conjunto de datos de entrada suficientemente significativo y el objetivo es conseguir que la red aprendaautomticamente las propiedades deseadas. En este sentido, el diseo de la red tiene menos que ver con cuestiones como los flujos de datos y la deteccin de condiciones, y ms que ver con cuestiones tales como la seleccin del modelo de red, la de las variables a incorporar y el pre procesamiento de la informacin que formar el conjunto de entrenamiento. Asimismo, el proceso por el que los parmetros de la red se adecuan a la resolucin de cada problema no se denomina genricamente programacin sino que se suele denominarentrenamiento neuronal.Por ejemplo en una red que se va a aplicar al diagnstico de imgenes mdicas; durante la fase de entrenamiento el sistema recibe imgenes de tejidos que se sabe son cancergenos y tejidos que se sabe son sanos, as como las respectivas clasificaciones de dichas imgenes. Si el entrenamiento es el adecuado, una vez concluido, el sistema podr recibir imgenes de tejidos no clasificados y obtener su clasificacinsano/no sanocon un buen grado de seguridad. Las variables de entrada pueden ser desde los puntos individuales de cada imagen hasta un vector de caractersticas de las mismas que se puedan incorporar al sistema (por ejemplo, procedencia anatmica del tejido de la imagen o la edad del paciente al que se le extrajo la muestra)

1. CLASIFICACION USANDO UN PERCEPTRON Y CON AYUDA DEL TOOLBOX DE REDES NEURONALES

En la siguiente figura se muestra que para el problema del laboratorio 2 es posible separarlos linealmente y se utilizara el perceptron para lo cual implementaremos nuestro cdigo en MATLAB para que solucione este problema.

red=newp([-1 1;-1 1],1) %para hardlims se especifica red=newp([0 1;0 1],1,'hardlims)red.iw{1,1}=[1 1]; %Carga a la red el vector de pesos inicialred.b{1}=2.5; %Carga a la red el vector de bias pesos=red.iw{1,1}; %Llevar a la vble pesos el vector de pesos inicialbias=red.b{1}; %Llevar a la vble pesos el vector de biasplotpc(pesos,bias) %Grafica lnea de separacin que tiene el perceptronred=train(red,x,d) %grafica la evolucion del errorfigure;pesos=red.iw{1,1};bias=red.b{1};plotpv(x,d)plotpc(pesos,bias) %grafica de lnea clasificador

Esta programacin nos ayudara a linealizar la separacin, la grafica siguiente indica al programador que el entrenamiento de la red ha sido terminado ahora la salida siempre ser la deseada de acuerdo a los patrones de entrada; adems indica que la red fue entrenada en dos epochs o ciclos de entrenamiento.

Este vendra ser el cdigo de comprobacin de que nuesta red neuronal a sido correctamente entrenada.

2. DETECCIN DE OBSTCULOS PARA UN ROBOT

DESCRIPCIN DEL PROBLEMA

Un robot cuenta con cuatro sensores de proximidad en distintas ubicaciones que permanentemente detectan si hay objetos en una distancia superior o inferior a la preestablecida. Con base en esto, se decide si se da marcha adelante o atrs con cada uno de los dos motores que posee. Para las entradas, tenga en cuenta que un objeto cercano es presentado por un sensor como un 1, y un objeto lejano como un 1. En la salida, la marcha hacia adelante se presenta como un 1 y la marcha hacia atrs como un 1.

El software implementado para entrenar este perceptrn es el siguiente:

clear allclcX=[1 1 1 1;-1 1 1 1;1 1 -1 -1;-1 -1 -1 -1;1 -1 1 1;1 1 -1 1;1 1 1 -1]'D=[-1 -1;-1 1;1 -1;1 1;1 -1;-1 1;1 -1]'; red=newp(-1 1;-1 1;-1 1;-1 1],2,'hardlims'tic red.iw{1,1}=rand(2,4);red.b{1}=[0.5;0.5]; ); red.adaptParam.passes=20;red=adapt(red,X,D) Toc in_prueba=[1;1;-1;1]b=sim(red,in_prueba)

Este cdigo de programacin al momento de pasarlo al MATLAB tuvo algunos pequeos errores que ajustar, como algunos parntesis y eliminar una que otra palabra.

En nuestro cdigo de programacin del perceptron definimos nuestros vectores tanto como los de entrada y de salida segn a nuestra tabla del laboratorio 3, como tambin definimos nuestros max y min y numero de capas de salida.Indicamos la eleccin de la seleccin aleatoria de pesos de entrada, delimitamos un lmite de repeticiones para el entrenamiento del cdigo de percepttron y realizamos un patrn de prueba para determinar la efectividad del perceptron y finalmente simulamos con los valores de prueba y comprobamos si son o no deseados.

Estos son las funciones usadas en nuestro cdigo de perceptron

newp, para definir la arquitectura de la rednet.IW{1,1}, para definir o llamar un vector de pesosnet.b{1}, para definir o llamar un vector de umbralesnet.adaptParam.passes, para definir el nmero de iteraciones mximo.adapt, para entrenarsim, para simular la red con el vector de pesos final (despus de haber entrenado).rand, seleccin aleatoria de valores de los vectores de pesos.

3. ANALICE YDESCRIBA EL PROGRAMA DEL PERCEPTRON PRESENTADO

X=[0 0 1 1;0 1 0 1]; Yd=[0 0 0 1]; W=rand(2,1); B=rand(1,1); Neta=W'*X+B*ones(1,4);Yred=escalon(Neta); disp('La salida inicial de la red es') disp(Yred) N=50; figure; plot(X(1,1:3),X(2,1:3),'Ob');axis([-0.2 1.2 -0.2 1.2]) hold on ; plot(X(1,4),X(2,4),'or'); m=W(1)/W(2);b=B/W(2); x1=-0.2:0.2:1.2; x2=-m*x1-b; plot(x1,x2,'k'); hold off; for i=1:N Neta=W'*X+B*ones(1,4); Yred=escalon(Neta); Waux=W'+0.5*(Yd-Yred)*X'; W=Waux'; B=B+0.5*(Yd-Yred)*ones(4,1); Error=Yd-Yred;

if sum((Error.^2))==0 break; end; end; Neta=W'*X+B*ones(1,4); Yred=escalon(Neta); disp('La salida final de la red es') disp(Yred) disp('Numero de iteraciones realizadas') disp(i) figure; plot(X(1,1:3),X(2,1:3),'ob'); axis([-0.2 1.2 -0.5 1.2]) hold on plot(X(1,4),X(2,4),'or'); m=W(1)/W(2 b=B/W(2); x1=-0.2:0.2:1.2; x2=-m*x1-b; plot(x1,x2,'k');

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

Descripcin:

Le indicamos a nuestro cdigo lo siguiente:Primeramente los patrones de entrara y la salida deseada, definimos nuestros pesos aleatorios una suma ponderada, esto para que muestre un valor a la salida inicial.Le damos axis y plot para que nos de las grficas como de salida con obalos azules y para hacer sobre posicin, realizamos una divisin para obtener la lnea pendiente, interceptamos con el eje x1 y x2 obtenemos resultados para la lnea de separacin.Introducimos la funcin for desde 1 a n=50 para las iteraciones y si el error es igual a cero sale del entrenamento de la red.

CONCLUSIONES

Como las salidas esperadas son iguales a las obtenidas, entonces podemos afirmar que el vector de pesos obtenido es el ideal para el funcionamiento del robot y por tanto la red ha quedado bien entrenada.

Debido a que el problema es linealmente separable se pudo utilizar un perceptrn, el cual con una funcin de activacin diferente a la funcin Hardlims no entregaba los valores esperados en la salida.

Una red neuronal es un sistema que no es memorstico sino que este generaliza de acuerdo a las entradas de la neurona, ya que ante nuevos patrones de entrada para los cuales no fue entrenada, la red entrega una respuesta lgica al sistema a controlar.

El seleccionar o no un vector de pesos inicial para la neurona parece no tener gran relevancia, ya que si este no es el vector de pesos adecuado la red automticamente ira modificando este hasta conseguir el vector de pesos ideal para el proceso.

4