Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasificación de carros y la función Hardlims para la determinación de los movimientos de un robot
Este documento propone el uso de redes neuronales artificiales para resolver problemas linealmente separables como la clasificación de vehículos y la determinación de los movimientos de un robot, utilizando las funciones de transferencia Hardlim y Hardlims. Describe la simulación de estas redes neuronales artificiales desarrolladas en Matlab para dar solución a estos problemas.
Similar a Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasificación de carros y la función Hardlims para la determinación de los movimientos de un robot
Similar a Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasificación de carros y la función Hardlims para la determinación de los movimientos de un robot (20)
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasificación de carros y la función Hardlims para la determinación de los movimientos de un robot
1. 1
REDES NEURONALES ARTIFICIALES:
Aplicaci´on de la funci´on Hardlim para la
clasificaci´on de carros y la funci´on Hardlims para la
determinaci´on de los movimientos de un robot
ARTIFICIAL NEURAL NETWORKS: Application
of the Hardlim function for the classification of
vehicles and the Hardlims function determining the
movements of a robot
K. Barrionuevo and S. Pati˜no.
Tutor: H.Paz.
Resumen: El presente art´ıculo propone el uso de redes
neuronales artificiales para dar soluci´on a problemas
linealmente separables como la clasificaci´on de carros y la
determinaci´on de los movimientos de un robot, utilizando las
funciones de transferencia Hardlim y Hardlims. La simulaci´on
de las redes neuronales artificiales que se proponen para dar
soluci´on a los problemas antes mencionados se encuentran
desarrollados en el entorno Matlab.
Palabras clave: Neuronas artificiales, funci´on de transici´on,
entrenamiento/aprendizaje, problemas lineales.
Abstract—The paper present proposes the use of artificial
neural networks for solving linearly separable problems as
the classification of cars and determining the movements of a
robot, using the transfer functions Hardlim and Hardlims.The
simulation of the artificial neural networks proposed to solve the
aforementioned problems are developed in the Matlab environ-ment.
Index Terms—Artificial neurons, transition function , workout/
learning,linear problems.
I. INTRODUCCI´O
N
Con el transcurso de los a˜nos el hombre se ha caracterizado
siempre por su b´usqueda constante de nuevas v´ıas para
mejorar sus condiciones de vida. Estos esfuerzos le han
servido para reducir trabajos en operaciones donde la fuerza
y la capacidad juegan un papel principal. Los progresos
K. Barrionuevo, Universidad Nacional de Loja, Loja, Ecuador, E-mail:
ykbarrionuevo@unl.edu.ec
S. Pati˜no, Universidad Nacional de Loja, Loja, Ecuador, E-mail:
slpatinor@unl.edu.ec
H. Paz, Universidad Nacional de Loja, Loja, Ecuador, E-mail:
hpaz@unl.edu.ec
obtenidos han permitido direccionar estos esfuerzos en
muchos campos, como por ejemplo la inteligencia artificial
en la cual esta inmersa redes neuronales artificiales.
La importancia que se le ha dado a las redes neuronales
es porque con estas es capaz de emular ciertas caracter´ısticas
propios del ser humano, como capacidad de memorizar
y asociar hechos. En s´ı problemas que no son resueltos
a trav´es de un algoritmo, sino con la experiencia que se
tiene, por lo cual se dice que la soluci´on a estos problemas
es la construcci´on de sistemas capaces de reproducir esta
caracter´ıstica humana.
En conclusi´on, las redes neuronales no son m´as que
un modelo artificial y simplificado del cerebro humano,
siendo este un ejemplo para un sistema capaz de adquirir
conocimiento mediante la experiencia. Una red neuronal es
un nuevo sistema para el tratamiento de informaci´on, donde
la unidad b´asica de procesamiento es la neurona.
Tambi´en sabemos que el ser humano es capaz de aprender,
es decir que aquellos problemas que al principio no se
puede dar una soluci´on, pueden resolverse despu´es de
obtener informaci´on acerca del problema, por lo tanto cuando
de desarrollo una red para resolver dicho problema, se
une ejemplares que ser´an utilizados durante esta fase de
entrenamiento o aprendizaje, para lo cual se da valores a los
pesos de las conexiones entre las neuronas.
La organizaci´on del art´ıculo es la siguiente:
La Secci´on II (ESTADO DEL ARTE) se documenta
los conceptos acerca de la neurona artificial, red neuronal
artificial y del perceptr`on.
2. 2
La Secci´on III (CASO DE ESTUDIO) se muestra el caso
de estudio 1 que trata de la clasificaci´on de carros y el caso
de estudio 2 que trata de la determinaci´on de movimientos
de un robot; adem´as se dan los lineamientos necesarios de
ambos casos de estudio.
La Secci´on IV (RESULTADOS) se puede encontrar los
resultados obtenidos del caso de estudio 1 y el caso de
estudio 2.
La Secci´on V (CONCLUSIONES) se pueden encontrar las
conclusiones generadas apartir de la informaci´on recopilada
en el presente art´ıculo.
La Secci´on VI (RECOMENDACIONES) se puede
encontrar las recomendaciones que realizaron en base a la
experimentaci´on del estudio efectuado.
La Secci´on VII (TRABAJOS FUTUROS) se puede
encontrar las futuros trabajos que se pueden realizar a partir
del estudio planteado.
II. ESTADO DEL ARTE
A. LA NEURONA ARTIFICIAL
El modelo de una neurona artificial es una imitaci´on del
proceso de una neurona biol´ogica. puede tambi´en asemejarse
a un sumador hecho con un amplificador operacional tal como
se ve en la Fig. 1.
Fig. 1. Amplificador operacional
Existen varias formas de nombrar una neurona artificial, es
conocida como nodo, neuronodo, celda, unidad o elemento
de procesamiento (PE). En la Fig. 2 se observa un PE en
forma general y su similitud con una neurona biol´ogica [1]:
Fig. 2. Neurona artificial y Neurona biol´ogica
De la observaci´on detallada del proceso biol´ogico se han
hallado los siguientes an´alogos con el sistema artificial:
Las entradas Xi representan las se˜nales que provienen de
otras neuronas y que son capturadas por las dendritas.
Los pesos Wi son la intensidad de la sin´apsis que conecta
dos neuronas; tanto Xi como Wi son valores reales.
es la funci´on umbral que la neurona debe sobrepasar
para activarse; este proceso ocurre biol´ogicamente en el
cuerpo de la c´elula.
Las se˜nales de entrada a una neurona artificial X1, X2,..,
Xn son variables continuas en lugar de pulsos discretos, como
se presentan en una neurona biol´ogica. Cada se˜nal de entrada
pasa a trav´es de una ganancia o peso, llamado peso sin´aptico
o fortaleza de la conexi´on cuya funci´on es an´aloga a la de la
funci´on sin´aptica de la neurona biol´ogica. Los pesos pueden
ser positivos (excitatorios), o negativos (inhibitorios), el nodo
sumatorio acumula todas las se˜nales de entradas multiplicadas
por los pesos o ponderadas y las pasa a la salida a trav´es de
una funci´on umbral o funci´on de transferencia. La entrada neta
a cada unidad puede escribirse como se muestra en la Fig. 3
[1]:
Fig. 3. Entrada neta
Una idea clara de este proceso se muestra en la Fig. 4, en
donde puede observarse el recorrido de un conjunto de se˜nales
que entran a la red.
3. 3
Fig. 4. Proceso de trabajo de la red neuronal
Una vez que se ha calculado la activaci´on del nodo, el valor
de salida equivale a la Fig. 5;
Fig. 5. Salida seg´un el calculo de la activaci´on del nodo
Donde fi representa la funci´on de activaci´on para esa
unidad, que corresponde a la funci´on escogida para transfor-mar
la entrada neta i en el valor de salida xi y que depende
de las caracter´ısticas espec´ıficas de cada red. [1]
B. RED NEURONAL ARTIFICIAL
Las RNA se definen como sistemas de mapeos no lineales
cuya estructura se basa en principios observados en los
sistemas nerviosos de humanos y animales. Constan de
un n´umero grande de procesadores simples ligados por
conexiones con pesos. Las unidades de procesamiento se
denominan neuronas. Cada unidad recibe entradas de otros
nodos y genera una salida simple escalar que depende de la
informaci´on local disponible, guardada internamente o que
llega a trav´es de las conexiones con pesos. Pueden realizarse
muchas funciones complejas dependiendo de las conexiones
[2].
Las neuronas artificiales simples fueron introducidas por
McCulloch y Pitts en 1943. Una red neuronal se caracteriza
por los siguientes elementos:
1) Un conjunto de unidades de procesamiento o neuronas.
2) Un estado de activaci´on para cada unidad, equivalente a
la salida de la unidad.
3) Conexiones entre las unidades, generalmente definidas
por un peso que determina el efecto de una se˜nal de
entrada en la unidad.
4) Una regla de propagaci´on, que determina la entrada
efectiva de una unidad a partir de las entradas externas.
5) Una funci´on de activaci´on que actualiza el nuevo nivel
de activaci´on bas´andose en la entrada efectiva y la
activaci´on anterior.
6) Una entrada externa que corresponde a un t´ermino
determinado como bias para cada unidad.
7) Un m´etodo para reunir la informaci´on, correspondiente
a la regla del aprendizaje.
8) Un ambiente en el que el sistema va a operar, con se˜nales
de entrada e incluso se˜nales de error.
En muchas redes las unidades de proceso tienen la respuesta
como se muestra en la Fig. 6:
Fig. 6. Ecuaci´on de respuesta del proceso redes artificiales
Donde:
xk : se˜nales de salida de otros nodos o entradas externas.
!k : pesos de las ligas de conexi´on.
f() : funci´on no lineal simple.
La funci´on f puede ser sigmoidal, tangente hiperb´olica,
escal´on, entre otras. En MATLAB se tiene diferentes funciones
de activaci´on como tansig, hardlim y purelin, entre otras, lo
cual facilita las aproximaciones que se requieran hacer, emple-ando
RNA. Cada unidad de proceso tiene una tarea simple:
recibe la entrada de otras unidades o de fuentes externas y
procesa la informaci´on para obtener una salida que se propaga
a otras unidades. Una red puede tener una estructura arbitraria,
pero las capas que contienen estas estructuras est´an definidas
de acuerdo con su ubicaci´on en la topolog´ıa de la red neuronal.
Las entradas externas son aplicadas en la primera capa, y las
salidas se consideran la ´ultima capa. Las capas internas que
no se observan como entradas o salidas se denominan capas
ocultas. Por convenci´on, las entradas no se consideran como
capa porque no realizan procesamiento.
La entrada total u de una unidad k es la suma de los pesos de
las entradas conectadas, m´as un bias , la ecuaci´on se muestra
en la Fig. 7:
Fig. 7. Ecuaci´on: Entrada total de una unidad.
Si el peso !j es positivo se habla de una excitaci´on y si
el peso es negativo se considera una inhibici´on de la entrada.
Si consideramos a las entradas como funciones del tiempo, la
expresi´on anterior se convierte en la ecuaci´on mostrada en la
Fig. 8:
Fig. 8. Ecuaci´on: Entrada total de una unidad en funci´on del tiempo.
4. 4
C. PERCEPTRON
En los a˜nos 50 se dio la aparici´on del modelo Perceptron,
inventado por el psic´ologo Frank Rosemblatt. Este modelo
se concibi´o como un sistema capaz de realizar tareas de
clasificaci´on de forma autom´atica. El prop´osito era tener
un sistema que, mediante un conjunto de ejemplos de
clases diferentes, fuera capaz de determinar ecuaciones de
las superficies que hac´ıan referencia a dichas clases. La
informaci´on en la cual se basaba el sistema era mediante las
clases, a esto se lo conoce como patrones, estos patrones
eran quienes aportan la informaci´on necesaria para que el
sistema construyera la superficies y adem´as funcionar´a como
un discriminador para nuevas clases.
En si el objetivo principal era aprender, usando parte de la
informaci´on, de tal modo que siempre que se un patr´on de
entrada p la salida sea la salida deseada, oses t.
1) Estructura de la red:
La arquitectura de la red es muy simple. Se trata de
una estructura monocapa, en la que hay un conjunto
de entradas, y una o varias salidas. Cada entrada tiene
conexi´on con las salidas, y estas conexiones determinan
la superficie de discriminaci´on del sistema [3].
En el ejemplo de la Fig. 9 puede emplearse dos fun-ciones
de transferencia; hardlim con salidas 0 y 1 o
hardlims con salidas -1 y 1; su uso depende del valor de
salida que se espera para la red; sin embargo, la funci´on
hardlims es preferida sobre la hardlim, ya que en esta
´ultima al tener un cero multiplicando algunos de los
valores resultantes del producto de las entradas por el
vector de pesos, ocasiona que estos no se actualicen y
que el aprendizaje sea m´as lento.
Fig. 9. Estructura de la red.
2) Funciones de transferencia:
Un modelo m´as acad´emico que facilita el estudio de
una neurona, puede visualizarse en la Fig. 10: Las
entradas a la red ser´an ahora presentadas en el vector
p, que para el caso de una sola neurona contiene
solo un elemento, w sigue representando los pesos y
Fig. 10. Funci´on de transferencia
la nueva entrada b es una ganancia que refuerza la
salida del sumador n, la cual es la salida neta de la
red; la salida total est´a determinada por la funci´on de
transferencia , la cual puede ser una funci´on lineal o
no lineal de n, y que es escogida dependiendo de las
especificaciones del problema que la neurona tenga
que resolver; aunque las RNA se inspiren en modelos
biol´ogicos no existe ninguna limitaci´on para realizar
modificaciones en las funciones de salida, as´ı que se
encontrar´an modelos artificiales que nada tienen que
ver con las caracter´ısticas del sistema biol´ogico [1].
Limitador fuerte (Hardlim): la Fig. 11 muestra
como esta funci´on de transferencia acerca la salida
de la red a cero, si el argumento de la funci´on es
menor que cero y la lleva a uno si este argumento
es mayor que uno. Esta funci´on crea neuronas que
clasifican las entradas en dos categor´ıas diferentes,
caracter´ıstica que le permite ser empleada en la red
tipo Perceptr´on[1].
Fig. 11. Funci´on de transferencia: Hardlim
El ´ıcono para la funci´on Hardlim reemplazara a la
letra f en la expresi´on general, cuando se utilice la
funci´on Hardlim.
Limitador Fuerte Sim´etrico (Hardlims): Es una
modificaci´on de la funci´on Hardlim, como puede
verse en la Fig. 12, la que representa la funci´on de
5. 5
transferencia Hardlims que restringe el espacio de
salida a valores entre 1 y –1 [1].
Fig. 12. Funci´on de transferencia: Hardlims
3) Funciones de entrenamiento:
La funci´on de entrenamiento de la red de retropropa-gaci
´on BTF utilizada traingdx, es la funci´on de retro-propagaci
´on de gradiente descendente con momento y
con constante de aprendizaje adaptativa. Adem´as otra
funciones son [4]:
Trainlm: funci´on de retropropagaci´on que actualiza
los valores de peso y sesgo de acuerdo con la
optimizaci´on levenberg-marquardt.
Traingd: funci´on de retropropagaci´on, actualiza los
valores de peso y sesgo seg´un gradiente descen-dente.
Trainfg: funci´on de retropropagaci´on causi-Newton
BFGS.
Trainbr: funci´on de regularizaci´on bayesiana.
Trainwb: funci´on de entrenamiento por pesos y
umbrales de red.
4) Funciones de aprendizaje:
La funci´on de aprendizaje de pesos/umbrales de propa-gaci
´on BLF utilizada es learngdm, Es decir, la funci´on
de aprendizaje de gradiente descendente con momento
y pesos en umbrales. Pero tambi´en hay otras funciones
[4]:
Learcon: funci´on de aprendizaje de conciencia de
umbrales.
Learngd: funci´on de aprendizaje de gradiente de-scendente
con pesos en umbrales.
Learnp: funci´on de aprendizaje del perceptron con
pesos umbrales.
Learnpn: funci´on de aprendizaje normalizado con
pesos umbrales.
Learnwh: funci´on de aprendizaje de windrow-hoff
con pesos en umbrales.
III. CASO DE ESTUDIO
A. CASO DE ESTUDIO 1
Mediante la funci´on de activaci´on hardlim se pretende
solucionar el siguiente problema: Una compa˜n´ıa de carros
tienes la actividad de clasificar los carros que se encuentran
es esta, para llevar un control detallado sobre su producto.
Para ello cada carro deber pasar por un conjunto de sensores
que detecten las siguientes caracter´ısticas: n´umero de ejes,
capacidad y tama˜no.
El sensor contador de ejes sacar´a 0 si el carro tiene 1 y 2 ejes,
1 si 3,4 o 5 ejes. El sensor de la capacidad arrogara 0 si la
capacidad es para pocos tripulantes y 1 si es para varios. El
sensor de tama˜no sacar´a 0 si es peque˜no y 1 si es grande. Para
ello se muestra la Fig. 13 las caracter´ısticas a evaluar.
Fig. 13. Caracter´ısticas: sensores
n = Wp+b
a = hardlim(n)
En la Fig. 14 se muestra los valores de las entradas de la
neurona.
Fig. 14. Entradas de la neurona
B. CASO DE ESTUDIO 2
Mediante la funci´on de activaci´on hardlims se pretende
solucionar el siguiente problema:Se requiere que un robot se
movilice en un entorno con obst´aculos sin impactarse con
alguno de estos. Para ello dicho robot cuenta con cuatro
sensores de proximidad de obst´aculos, cada uno en distintas
ubicaciones (norte, sur , este, oeste) que permanentemente
detectan si hay obst´aculos cercanos en cualquiera de las
direcciones que eviten su movilizaci´on; adem´as el robot tiene
dos motores que comandan el movimiento de sus ruedas
laterales.
Los sensores S1, S2, S3 y S4, son los que deben detectar
la proximidad de un obst´aculos, adoptando el valor 1 ante la
presencia del obst´aculo o el valor -1 ante la no cercan´ıa del
obst´aculo. Los motores (M1, M2) adquieren un par ordenado
de valores que va a determinar el movimiento a efectuar, estos
valores pueden ser:
(-1 -1) Desplazamiento del robot hacia atr´as
6. 6
(-1 1) Desplazamiento del robot hacia la izquierda
(1 -1) Desplazamiento del robot hacia la derecha
(1 1) Desplazamiento del robot hacia delante
El primer elemento del par ordenado de valores es otorgado
a el Motor1 de acuerdo a el resultado del S1 y el S2, mientras
el el segundo elemento del par ordenado es otorgado al Motor2
de acuerdo al resultado del S3 y S4.
IV. RESULTADOS
A. RESULTADOS CASO DE ESTUDIO 1
De acuerdo al problema a solucionar se ha utilizado el
modelo perceptr´on ya que es un problema simple, pudiendo ser
entrenada con patrones de cualesquier dimensi´on en la entrada
y proporcionando la salida en datos binarios. El modelo de
perceptr´on que se propone tiene una capa de entrada y una
capa de salida, cuya arquitectura se puede observar en la Fig.
15:
Fig. 15. Arquitectura de la red neuronal-Caso estudio 1
La red est´a estructurada por 8 patrones, mismos que se
muestran en la tabla I, dependiendo de los resultados que env´ıa
los sensores se conocer´a el tipo de veh´ıculo.
Num. Ejes Capacidad Tama˜no Salida
1 0 0 0
2 0 1 0
3 1 0 1
4 1 1 1
5 0 0 1
2 0 1 0
3 1 0 1
5 1 1 1
TABLE I
MATRIZ DE ENTRADA-CASO DE ESTUDO 1
Los estados de lectura de los sensores en el caso de el
n´umero de ejes se trabajo con n´umeros de entre [1,5] y de
operaci´on de la clasificadora est´an designados con 0 y 1, y
seg´un la salida del problema a resolver es conveniente trabajar
con la funci´on de transferencia hardlim.
Para qu´e existe la clasificaci´on de los carros se ha planteado
2 matrices; matriz SC(contiene los datos de los sensores), y la
matriz TC(salidas esperadas seg´un los datos de los sensores).
Con los datos necesarios, se cre´o un Programa en MATLAB
tipo Script, llamado “ClasificacionCarro”, cuyo c´odigo se
transcribe a modo de ilustraci´on:
%Clasificaci´on tipo de carro
%Las variables a utilizarse para el entrenamiento son:
%Entradas en los sensores est´an en la matriz SC
% Ejes: 1y2=peque˜no, ¿3=grande
%SC= Capacidad: 0=pocos, 1=muchos
% Tama˜no: 0= peque˜no, 1=grande
clc
clear
SC=[1 2 3 4 5 2 3 5;0 0 1 1 0 0 1 1; 0 1 0 1 0 1 0 1];
%Las salidas est´an en la matriz TC:
TC=[0 0 1 1 1 0 1 1];
%Mediante una gr´afica de presenta la ubicaci´on de los
carros de acuerdo a los valores censados
plotpv(SC,TC)
%Se determina la variaci´on o rango que tendr´a el perceptr´on
de acuerdo al valor de las entradas
variaci´on=[1 5; 0 1; 0 1];
%Se crea una red tipo Perceptr´on con funci´on de transfer-encia
hardlims, dos neuronas en la salida
% Sintaxis
% NET = NEWP(PR,S,TF,LF) , crea un perceptr´on donde:
% PR - Rx2 matriz de valores m´aximos y m´ınimos para los
R elementos de entrada.
% S - N´umero de neuronas.
% TF - Funci´on de transferencias, que por defecto
es’‘hardlim’.
% LF - Funci´on de aprendizaje, que por defecto es ‘learnp’.
car=newp(variacion,1,’hardlim’);
% Cantidad de Epocas
car.trainParam.epochs=1000;
%Intervalo de visualizaci´on de los resultados
car.trainParam.show=5;
%Aprendizaje de la red
%Como par´ametros recibe la red, las entradas y las salidas
car=train(car,SC,TC);
%Simulaci´on de la red se almacena en una matriz control
%Se verifica luego las salidas deseadas y se las compara con
la simulaci´on:
simulacion= sim(car,SC);
simulacion
SP
La ejecuci´on de este c´odigo a trav´es de MATLAB, arroja
como resultado la salida de la red para este patr´on de
entrenamiento:
TC = 0 0 1 1 1 0 1 1
simulacion = 0 0 1 1 1 0 1 1
Como se puede observar en los resultados de la ejecuci´on,
existe la similitud de la salida “simulacion” con la matriz TC,
es decir que la salida de la red es igual a la salida deseada
del patr´on de entrenamiento; esto nos permite verificar que el
perceptr´on aprendi´o correctamente el patr´on.
Para la comprensi´on de la simulaci´on de la clasificaci´on de
los carros se desarroll´o un peque˜no programa que se compone
de dos archivos ClasificacionCarro.m y ClasificacionCarro.fig
7. 7
y se ha dise˜nado mediante el GUIDE de MATLAB [6].
En el cual se realizaron pruebas con otros valores
de entrada, los resultados se muestran en la Fig. 16 a
continuaci´on:
Fig. 16. Ingreso de valor de sensores C.E1
Las entradas de los sensores indican que el tipo de carro es
un AUTO, debido a que el sensor NumEjes detecta n´umeros
de 1 o 2, el sensor capacidad detecta valor de 0 o 1 y el
sensor tama˜no detecta valores de 0 o 1, en este caso la salida
ser´a 0, el cual indica que es un auto.
Las entradas de los sensores indican que el tipo de
carro es un CAMIO´ N, debido a que el sensor NumEjes
detecta n´umeros de 3,4 o 5, el sensor capacidad detecta
valor de 0 o 1 y el sensor tama˜no detecta valores de 0 o
1, en este caso la salida ser´a 1, el cual indica que es un cami´on.
Es importante destacar, que en el caso que los tres sensores
env´ıan valor de 0(detectan que no existe ningun tipo de
carro), la salida que me genera es un valor (0) el cual indica
un carro de tipo AUTO,pero esto es incorrecto debido a que
no deber´ıa generar ning´un tipo de clasificaci´on, por lo cual
el modelo que se propone para dar soluci´on al problema del
Caso de Estudio1 establece que debe haber algun carro para
que exista clasificac´on. Para ello se enviamos un mensaje de
NO HAY CARRO A CLASIFICAR cuando se reciba una
valor de 0 en todos los sensores pero esto solo como salida
did´actica; este caso se puede ver en la Fig. 17:
Fig. 17. Error: si ingresa valores erroreos en los sensores C.E1
B. RESULTADOS CASO DE ESTUDIO 2
Este caso de estudio puede ser solucionada con una red
de tipo Perceptr´on, ya que puede ser entrenada con patrones
de cualquier dimensi´on en la entrada y en la salida con datos
binarios, por la simplicidad del problema este tipo de red es la
m´as adecuada. El modelo de perceptr´on que se propone tiene
una capa de entrada y una capas de salida, cuya arquitectura
se puede observar en la Fig. 18:
Fig. 18. Arquitectura de la red neuronal-Caso estudio 2
A la red se le presentaran 8 patrones los cuales se muestran
en la tabla II, para los cuales dependiendo de las lecturas de los
sensores se le dir´a al robot que hacer espec´ıficamente y luego
se probar´a la red con otros casos restantes para comprobar la
capacidad de generalizaci´on de la red neuronal ante un patr´on
nunca antes visto
S1 S2 S3 S4 M1 M2
-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 -1 1
1 1 1 -1 1 -1
1 1 -1 1 -1 1
-1 1 -1 1 1 1
TABLE II
MATRIZ DE ENTRADA-CASO DE ESTUDO 2
8. 8
Los estados de lecturas de los sensores y de operaci´on
de los motores fueron designados con 1 y –1, puesto que
para la convergencia del proceso de entrenamiento resulta m´as
ventajosos propagar valores de 1 y –1 que de 1 y 0.
Debido a la naturaleza de la salida y de la entrada de la
red, la funci´on de transferencia apropiada es hardlims, la cual
trabaja con valores bipolares.
Para que el robot realice el movimiento indicado por los
motores, se debe armar la matriz PS (que contiene los datos
de los sensores), y la matriz M (las salidas esperada acuerdo
a los datos de los sensores).
Con todos estos datos necesarios, se cre´o un Programa
en MATLAB tipo Script, llamado “MovimientosRobot”, cuyo
c´odigo se transcribe a modo de ilustraci´on.
% ***********************
% MovimientosRobot
% ***********************
% Se definen las variables requeridas para el entrenamiento
% Las entradas est´an dadas por el valor de los sensores son
almacenados en la matriz SP
% Sens1
% Sens2
% Sens3
% Sens4
SP=[ -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 -1 -1 1 1];
% Las salidas est´an almacenadas en la matriz que generan
los motores
% M1
% M2
M= [ 1 1 -1 1 -1 1 -1 1 ;
1 1 -1 1 1 -1 1 1 ] ;
%Se crea una red tipo Perceptr´on con funci´on de
transferencia hardlims, dos neuronas en la salida
% Sintaxis
% NET=NEWP(PR,S,TF,LF) , crea un perceptr´on donde:
% PR= Rx2 matriz de valores m´aximos y m´ınimos para los
R elementos de entrada.
% S=N´umero de neuronas.
% TF=Funci´on de transferencias, que por defecto es’‘hardlim’.
% LF=Funci´on de aprendizaje, que por defecto es ‘learnp’.
% La funci´on de transferencia en nuestro caso es HARDLIMS.
net=newp([-1 1;-1 1;-1 1;-1 1],2,’hardlims’);
% Cantidad de Epocas
net.trainParam.epochs=1000;
%Intervalo de visualizaci´on de los resultados
net.trainParam.show=5;
%Aprendizaje de la red
%Como par´ametros recibe la red, las entradas y las salidas
net=train(net,SP,M);
%Simulaci´on de la red se almacena en una matriz control
%Se verifica luego las salidas deseadas y se las compara con
la tabla “control”:
control = sim(net,SP);
control
SP
La ejecuci´on de este c´odigo a trav´es de MATLAB, arroja
como resultado la salida de la red para este patr´on de entre-namiento:
MovimientosRobot
M =
1 1 -1 1 -1 1 -1 1 1 1 -1 1 1 -1 1 1
control =
1 1 -1 1 -1 1 -1 1 1 1 -1 1 1 -1 1 1
Como se puede observar en los resultados de la ejecuci´on,
existe la similitud de la salida “control” con la matriz M, es
decir que la salida de la red es igual a la salida deseada del
patr´on de entrenamiento; esto nos permite verificar que el
perceptr´on aprendi´o correctamente el patr´on.
Para la comprensi´on de la simulaci´on de los movimientos
de un robot se desarroll´o un peque˜no programa que se
compone de dos archivos InterfazRobot.m y InterfazRobot.fig
y se ha dise˜nado mediante el GUIDE de MATLAB [6].
En el cual se realizaron pruebas con otros valores de entrada,
los resultados se muestran a continuaci´on en la Fig. 19:
Fig. 19. Ingreso de valores a los sensores C.E2
Las entradas de los sensores indican que el movimiento
a efectuar ser´a hacia ADELANTE, debido a que el S1 no
detecta obst´aculo por lo que env´ıa un valor -1, el S2 detecta
obst´aculo por se envia un valor 1, el S3 tambi´en detecta
obst´aculo por lo tanto env´ıa 1 y el S4 detecta obst´aculo por
9. 9
ello tambien se envia un 1. Generando como salida en el
Motor1 un valor 1 y en el Motor2 un valor 2, por lo tanto
el par ordenado de valores es (1,1) lo que indica que el
movimiento ser´a hacia ADELANTE.
Es importante destacar, que en el caso que los cuatro
sensores env´ıan valor de 1(detectan obst´aculos en todas las
direcciones), la salida que me genera en el Motor1 y Mo-tor2
son los valores(1,1) el cual indica un movimiento ha-cia
ADELANTE,pero esto es incorrecto debido a que no
deber´ıa generar ning´un tipo de movimiento pero el modelo
que se propone para dar soluci´on al problema del Caso de
Estudio2 establece que el robot tiene que realizar alg´un tipo
de movimiento. Para ello solo enviamos un mensaje de NO
EFECTUAR MOVIMIENTO cuando se reciba una valor de
1 en todos los sensores pero esto solo como salida did´actica;
este caso se puede ver en la Fig. 20:
Fig. 20. Error: si ingresa valores erroneos en los sensores C.E2
V. CONCLUSIONES
Para resolver casos de estudio como los presentados en
el presente art´ıculo se puede utilizar una red neuronal de
tipo perceptr´on debido a que las entrada y las salida son
datos binarios.
Matlab es una herramienta muy potente para la creaci´on
y simulaci´on de redes neuronales artificiales que nos
permiten dar soluci´on a diferentes tipos de problemas
gracias a las funciones que nos brinda.
Las funciones hardlim y hardlims nos permiten resolver
problemas linealmente separables
La funci´on hardlims es preferida sobre la hardlim, ya
que el tener un cero multiplicando algunos de los valores
resultantes del producto de las entradas por el vector de
los pesos, ocasionan que estos no se actualicen y que el
aprendizaje sea m´as lento.
VI. RECOMENDACIONES
Para resolver cualquier tipo de problema se puede utilizar
redes neuronales artificiales.
Utilizar Matlab para la simulaci´on de redes neuronales
de cualquier tipo.
Utilizar las funciones hardlim y hardlims cuando se
tengan entradas y salidas con dos valores diferentes en
problemas linealmente separable.
Entender bien el tipo de problema a solucionar para poder
aplicar la o las funciones adecuadas.
VII. TRABAJOS FUTUROS
El presente trabajo puede servir como punto de partida para
generar trabajos futuros sobre la aplicaci´on de las funciones
hardlim y hardlims para dar soluciones a otros problemas
linealmente separables.
Se tiene previsto utilizar otra funciones de transferencia
(purelin, poslin) para resolver problemas que son linealmente
separables, con el fin de determinar la eficiencia de cada una
de estas funciones frente a los casos de estudio presentados
en este art´ıculo.
REFERENCIAS
[1] Fernando Tanco . INTRODUCCIO´ N A LAS REDES NEURONALES
ARTIFICIALES. UNIVERSIDAD TECNOLO´ GICA NACIONAL
FACULTAD REGIONAL BUENOS AIRES; [En linea] link:
http://www.secyt.frba.utn.edu.ar/gia/RNA.pdf, consulta realizada 30-
Oct-2014.
[2] P. Ponce Cruz; ”Redes neuronales artificiales”, en Inteligencia artificial
con aplicaciones a la ingenier´ıa publicado por: Alfaomega; Editorial:
Mexico, 2011, pp: 198-199.
[3] P. Isasi Vi˜nuela, I. M. Galv´an Le´on; ”Primeros modelos
computacionales”, en Redes neuronales artificiales un enfoque pr´actico
publicado por: Pearson Prentice Hall; Editorial: Ribera del Loira, 28
28042 MADRID (Espa˜na), 2004, pp: 26-27.
[4] I.F. Su´arez B´arcena; ”Materiales y m´etodos”, en Utilidad diagnosticada
en la glucoma del an´alisis de las fibras retinianas mediante polarimetr´ıa
l´aser asociado a la autoperimetr´ıa y a sistemas de inteligencia artificial
(Redes neuronales) publicado por: Colecci´on Vitor; Editorial: Salamanca,
Espa˜na, 2011, pp: 103-104.
[5] A E. Hossian, G. E. Monte, V. Olivera; ”An´alisis del comportamiento
de robots m´oviles aut´onomos en base a RNA”, en Un
enfoque desde el paradigama relativo publicado por: Universida
Tecnol´ogica Nacional; Facultad Reqional Neuqu´en; [En linea] link:
http://www.unilibre.edu.co/revistaavances/avances-8-2/r8-2 art3.pdf,
consulta realizada: 30-Oct-2014
[6] El c´odigo de los casos de estudio, se lo puede encontrar en l
siguiente enlace;[En linea] link: https://github.com/KarinaBarrionuevo/
Redes-Neuronales-Artificiales-Funciones-Hardlim-Hardlims/tree/
e5898a6b7ca424cbafcab378bc4c2edd1f79379c
10. 10
Karina Barrionuevo
Estudiante de la Carrera de Ingenier´ıa en Sistemas de la
Universidad Nacional de Loja, Provincia de Loja, Ciudad Loja,
Ecuador, 2014.
Sheimy Pati ˜no
Estudiante de la Carrera de Ingenier´ıa en Sistemas de la
Universidad Nacional de Loja, Provincia de Loja, Ciudad Loja,
Ecuador, 2014.