You are on page 1of 5

Ing. Ivn A. Blanco P.

Programa: Ingeniera de Sistemas Asignatura: Sistemas Expertos

Ejemplo Redes Neuronales Artificiales (RNA) con MATLAB


RNA: El Perceptrn
El Perceptrn es un tipo de red neuronal artificial desarrollado por Frank Rosenblatt. Este tipo de red neuronal tiene la capacidad de realizar separaciones lineales, lo cual veremos en el desarrollo de laboratorio. Emplearemos una red tipo perceptrn para solucionar el problema de la AND usando el toolbox de redes neuronales de MATLAB.

Entre las funciones utilizadas por el MATLAB para disear el Perceptrn tenemos: NEWP: PLOTPV: PLOTPC: TRAIN: SIM: Inicializa el Perceptrn. Grafica los vectores de entrada cuando la salida es 1/0. Grafica la lnea de clasificacin que genera el Perceptrn. Entrena la red con el algoritmo del Perceptrn. Simula o prueba la red.

Solucin del problema de funcin lgica AND


La funcin lgica AND se define como: X1 0 0 1 1 X2 0 1 0 1 Y 0 0 0 1

Introduccin a las RNA & MATLAB | RNA: El Perceptrn

Ing. Ivn A. Blanco P.


Programa: Ingeniera de Sistemas Asignatura: Sistemas Expertos

Definicin del problema


Definir el problema que una red neuronal va a resolver es proporcionarle a la misma la informacin necesaria para que puede llevar la tarea con xito, en otras palabras en este paso se le define a red neuronal los patrones de aprendizaje que se van a utilizar el proceso de entrenamiento. En MATLAB esto se hace definiendo dos matrices: una para las entradas y otra para las salidas, donde cada patrn de aprendizaje se define por columnas. Los comandos necesarios para definir las matrices de entrada y salidas son: >> % Definicin de la funcin lgica AND >> X=[0 0 1 1 ; 0101]; >>Y=[0 0 0 1] ; Para ver la grfica de estos patrones se usa el comando plotpv >> plotpv(X,Y) La grfica resultante es la siguiente:
Vectors to be Classified 1.5

P(2)

0.5

-0.5 -0.5

0.5 P(1)

1.5

Como se puede observar MATLAB grfica los puntos dados en el vector X y le asigna un smbolo para la clasificacin dependiendo de la salida deseada, en este caso: Para salida deseada cero (0) =o Para salida deseada uno (1) = + Introduccin a las RNA & MATLAB | Solucin del problema de funcin lgica AND 2

Ing. Ivn A. Blanco P.


Programa: Ingeniera de Sistemas Asignatura: Sistemas Expertos

Inicializacin de la red neuronal


Ya teniendo los patrones de entrenamiento que definen el problema a resolver, se procede a inicializar la red neuronal, para el caso del Perceptrn se usa la funcin initp de la siguiente manera:

>> RedNeuro = newp([0 1;0 1],1)

Donde: RedNeuro: [0 1;0 1]:

Objeto donde se va almacenar la red neuronal creada por MATLAB. Rango del valor de la entrada de la red neuronal, el nmero de filas de esta matriz lo utilizar MATLAB para definir el nmero de entradas que tiene la red neuronal. Nmero de neuronas que tiene la red neuronal en la capa de salida.

1:

Ahora se proceder a generar los pesos inciales de la red, este paso no es necesario hacerlo pero permite generar un perceptrn con un superficie de separacin conocida

>> RedNeuro.iw{1,1}=[1 1]; >> RedNeuro.b{1}=0.5; >> Pesos= RedNeuro.iw{1,1}; >> Bias= RedNeuro.b{1};

Con el siguiente comando se grafica la lnea de separacin inicial que tiene el Perceptrn

>>plotpc(Pesos,Bias)

Introduccin a las RNA & MATLAB | Solucin del problema de funcin lgica AND

Ing. Ivn A. Blanco P.


Programa: Ingeniera de Sistemas Asignatura: Sistemas Expertos

El comando anterior adiciona la recta clasificadora al grfico generado por plotpv, la grfica quedara as:
Vectors to be Classified 1.5

P(2)

0.5

-0.5 -0.5

0.5 P(1)

1.5

Patrones a clasificar y la recta clasificadora inicial.

Entrenamiento de la red
El entrenamiento de la red se realiza con el comando train el cual implementa un entrenamiento con la regla de aprendizaje tipo Perceptrn, en MATLAB el entrenamiento se hace as: >> RedNeuro = train(RedNeuro,X,Y) Donde RedNeuro: X: Y:

Red neuronal a ser entrenada por MATLAB. Entrada de los patrones de aprendizaje. Salida deseada de los patrones de aprendizaje.

Al entrenar MATLAB genera la grfica que indica cmo va evolucionando error al transcurrir las iteraciones (pocas).

Cuando se ha entrenado la red, es posible generar una grfica que visualice la nueva lnea clasificadora que la red ha llevado a cabo la tarea.

Introduccin a las RNA & MATLAB | Solucin del problema de funcin lgica AND

Ing. Ivn A. Blanco P.


Programa: Ingeniera de Sistemas Asignatura: Sistemas Expertos

>> figure; % Crea una nueva figura >> Pesos= RedNeuro.iw{1,1}; >> Bias= RedNeuro.b{1}; >> plotpv(X,Y) >>plotpc(Pesos,Bias)
Vectors to be Classified 1.5

P(2)

0.5

-0.5 -0.5

0.5 P(1)

1.5

Patrones clasificados y la recta clasificadora obtenida.

Validacin de la red
Finalmente, al tener una red entrenada se procede a validar si el comportamiento de la misma es correcto o no, para esto se usa el comando sim como se muestra a continuacin: >> in_prueba=[0;0]; % Patrn de prueba >> salida = sim(RedNeuro, in_prueba) salida = 0 >> in_prueba=[1;1]; % Otro patn de prueba >> salida = sim(RedNeuro, in_prueba) salida = 1 Como se puede observar el comportamiento de la red es el adecuado por lo que se da por finalizado el entrenamiento.

Introduccin a las RNA & MATLAB | Solucin del problema de funcin lgica AND

You might also like