Sie sind auf Seite 1von 6

Hardlim y Hardlims en Matlab, aplicado a la deteccion de obstaculos por

medio de un robot
Hardlim and Hardlims in Matlab, applied to obstacle detection by a robot
E. Cartuche, R. Granda, and H. Paz

Resumen- Las redes neuronales tienen la capacidad

unica
de aprender de alguna fuente de informacion integrada en su entorno. En 1958 el psicologo Frank Ronsenblant desarrollo un modelo simple de neurona basado
en el modelo de McCulloch y Pitts y el aprendizaje en
una regla basada en la correccion de errores; este modelo
fue llamado Perceptron. Las funciones de transferencia
aplicables a un perceptron, hardlim y hardlims crean
neuronas que clasifican las entradas en dos categoras;
se utilizan en problemas linealmente separables, como se
vera en un ejemplo del mundo real, cuya solucion ha sido
implementada en el lenguaje de alto nivel Matlab.
Palabras clave- Neurona, red, red neuronal, modelo,
perceptron, aprendizaje, hardlim, hardlims, Matlab
AbstractNeural networks have the unique ability to learn
from some source of information embedded in their environment.
In 1958 the psychologist Frank Ronsenblant developed a simple
model neuron based on the model of McCulloch and Pitts
and learning in a rule-based error correction; This model was
called Perceptron. Transfer functions applicable to a perceptron,
hardlim and hardlims, creates neurons that classify the inputs
into two categories, they are used on linearly separable problems,
as will be seen in an example of the real world, the solution has
been implemented in high-level language Matlab.

el estado del arte. La seccion IV establece las conclusiones a


las cuales se ha llegado una vez finalizado el caso de estudio.
La seccion V corresponde a la revision bibliografica.
II. E STADO DEL A RTE
A. Neurona Biologica
Una neurona es el elemento fundamental del sistema
nervioso, en esta celula se puede distinguir un cuerpo o
soma donde se cumplen la mayor parte de las funciones de
nutricion y una serie de arborizaciones que se conocen como
dendritas que le permite tener contacto con otras neuronas para
intercambiar informacion, as mismo, las dendritas receptan
informacion del exterior. Del soma sale tambien una fibra
u nica, que recibe el nombre de axon; por lo comun va de
una a otra zona del sistema nervioso o sale a la periferia, en
donde puede inervar distintas a reas de la piel, de los o rganos
del cuerpo o diferentes estructuras musculares. La figura 1
muestra la estructura de una neurona biologica.

Index TermsNeuron, network, neural networks, model, Perceptron, learning, hardlim, hadlims, Matlab

I. I NTRODUCCI ON

l presente artculo trata sobre las redes neuronales artificiales aplicadas a problemas de la vida real, haciendo
uso exclusivo de las funciones de transferencia Hardlim y
Hardlims, implementadas en el lenguaje de programacion
Matlab; especificamente para resolver el problema de la deteccion de obstaculos por medio de un robot, que sera resuelto
haciendo uso de una red de tipo Perceptron.
El artculo esta estructurado de forma tal que se ha tratado
de abarcar la mayor parte de contenidos referentes a las redes
neuronales:
La seccion I comprende la parte introductoria del trabajo que
se ha realizado. La seccion II corresponde al estado del arte
acerca de las redes neuronales y sus funciones. La seccion III
comprende al caso de estudio, caso practico donde se aplica
E. Cartuche, Universidad Nacional de Loja, Loja, Ecuador, elcartucheg@unl.edu.ec
R. Granda, Universidad Nacional de Loja, Loja, Ecuador, rcgrandav@unl.edu.ec
H. Paz, Universidad Nacional de Loja, Loja, Ecuador, hpaz@unl.edu.ec

Figura 1. Neurona Biologica

La interaccion entre las neuronas recibe el nombre de


sinapsis y se realiza de varias maneras, dependiendo de las
membranas que se ponen en contacto pero lo comun es el
contacto entre el axon y las dendritas. Las sinapsis son unidireccionales y el hecho de que sean excitadoras o inhibidoras
se determina biologicamente a traves del aprendizaje.
B. Neurona Artificial
Existen varias formas de nombrar una neurona artificial, es
conocida como nodo, neuronodo, celda, unidad o elemento de
procesamiento (PE); En la figura 2 se observa un PE en forma
general y su similitud con una neurona biologica.
De la observacion detallada del proceso biologico se han
hallado los siguientes analogos con el sistema artificial:
Las entradas Xi representan las se
nales que provienen de
otras neuronas y que son capturadas por las dendritas.

Las neuronas son tolerantes a fallos, si parte de la


red no trabaja, solo dejara de funcionar la parte para
que dicha neurona sea significativa; el resto tendra su
comportamiento normal.
Las neuronas pueden reconocer patrones que no han
sido aprendidos, solo deben tener cierto parecido con el
conocimiento previo que tenga la red.
2) Desventajas de las Redes Neuronales:
Complejidad de aprendizaje para grandes tareas, cuanto
mas cosas se necesiten que aprenda una red, mas complicado sera ensenarle.
Tiempo de aprendizaje elevado. Esto depende de dos
factores: primero si se incrementa la cantidad de patrones
a identificar o clasificar y segundo si se requiere mayor
flexibilidad o capacidad de adaptacion de la red neuronal
para reconocer patrones que sean sumamente parecidos,
se debera invertir mas tiempo en lograr que la red
converja a valores de pesos que representan lo que se
quiera ensenar.
No permite interpretar lo que se ha aprendido, la red por
s sola proporciona una salida, un numero, que no puede
ser interpretado por ella misma, sino que se requiere de
la intervencion del programador y de la aplicacion en s
para encontrarle un significado a la salida proporcionada.
Elevada cantidad de datos para el entrenamiento, cuanto
mas flexible se requiere que sea la red neuronal, mas
informacion tendra que ensenarle para que realice de
forma adecuada la identificacion. (Hilera 1995, Freeman
1993).

Figura 2. Neurona Artificial

Los pesos Wi son la intensidad de la sinapsis 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 biologicamente en el
cuerpo de la celula.
Las senales de entrada a una neurona artificial X1, X2,.., Xn
son variables continuas en lugar de pulsos discretos, como se
presentan en una neurona biologica. Cada senal de entrada
pasa a traves de una ganancia o peso, llamado peso sinaptico
o fortaleza de la conexion cuya funcion es analoga a la de la
funcion sinaptica de la neurona biologica. Los pesos pueden
ser positivos (excitatorios), o negativos (inhibitorios), el nodo
sumatorio acumula todas las senales de entradas multiplicadas
por los pesos o ponderadas y las pasa a la salida a traves de
una funcion umbral o funcion de transferencia. La entrada neta
a cada unidad puede escribirse de la siguiente manera:

D. Funcion de Activacion
C. Red Neuronal
Las redes neuronales artificiales son sistemas que imitan
esquematicamente la estructura neuronal del cerebro humano
y buscan emular su comportamiento en lo que se refiere al
aprendizaje y la extraccion de conocimiento generico a traves
de un conjunto de datos.
Una red neuronal esta formada por un grupo interconectado
de capas compuesta por una o varias matrices de pesos W;
sus respectivos vectores de ganancias (bias) b, un vector de
entradas p, un vector de salida a, y una o varias funciones de
activacion.
Las redes neuronales se pueden clasificar segun el numero de
capas, as por ejemplo la red neuronal monocapa. Es la red
neuronal mas sencilla ya que tiene una sola capa de neuronas
que pondera y suma las entradas para obtener la salida.
1) Ventajas de las Redes Neuronales:
El procesado de la informaci
on es local, es decir que
al estar compuesto por unidades individuales de procesamiento dependiendo de sus entradas y pesos y de que
todas las neuronas de una capa trabajan en forma paralela
y proporcionan una respuesta al mismo tiempo.
Los pesos son ajustados bas
andose en la experiencia, lo
que significa que se le tiene que ensenar a la red lo que
necesita saber antes de ponerla en funcionamiento.

La funcion de activacion calcula el estado de actividad de


una red formando la entrada global en un valor (estado) de
activacion, cuyo rango normalmente va de (0 a 1) o de (1
a 1). Esto es as, porque una neurona puede estar totalmente
inactiva (0 o 1) o activa (1).
Existen diferentes funciones de activacion o de transferencia, como las funciones Limitador fuerte, Limitador fuerte
simetrico (ambas conocidas como funciones tipo escalon) o
la funcion de tipo Lineal. Las funciones de transferencia mas
comunes se definen en la figura 4 ademas de que muestra
algun ejemplo de la red en la que se emplea cada funcion y el
nombre y smbolo empleado en MATLAB para identificarla.
1) Funcion Escalon: La funcion de activacion escalon se
asocia a neuronas binarias en las cuales, cuando la suma de
las entradas es mayor o igual que el umbral de la neurona es
1; si es menor, la activacion es 0 (o -1). La figura 3 muestra
la representacion grafica de la funcion escalon.

Figura 3. Funcion Escalon

2) Diferentes Funciones y sus representaciones: La figura 4


hace referencia a las diferentes funciones de transferencia utilizadas para el entrenamiento de redes neuronales artificiales.
El icono para la funcion Hardlim reemplazara a la letra f
en la expresion general, cuando se utilice la funcion Hardlim
Una variante de esta funcion puede verse en la figura 7, la que

Figura 6. Funcion Limitador Fuerte

representa la funcion de transferencia Hardlims que restringe


el espacio de salida a valores entre 1 y 1.
Figura 4. Tipos de funciones

E. Funcion de Transferencia
El modelo mas simple lo podemos observar en la figura 5.
Las entradas a la red seran ahora presentadas en el vector

Figura 7. Funcion Hardlims


Figura 5. Funcion de Transferencia

p, que para el caso de una sola neurona contiene solo un


elemento, w sigue representando los pesos y 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 esta determinada
por la funcion de transferencia, la cual puede ser una funcion
lineal o no lineal de n, y que es escogida dependiendo de
las especificaciones del problema que la neurona tenga que
resolver.
1) Limitador fuerte (Hardlim): La figura 6, muestra como
e sta funcion de transferencia acerca la salida de la red a cero,
si el argumento de la funcion es menor que cero y la lleva
a uno si este argumento es mayor que uno. Esta funcion
crea neuronas que clasifican las entradas en dos categoras
diferentes, caracterstica que le permite ser empleada en la
red tipo Perceptron.

F. Funcion de Aprendizaje
El aprendizaje consiste en la modificacion del conocimiento
inducido por la interaccion con el entorno y como resultado
de experiencias conducen al establecimiento de nuevos
modelos de respuesta a estmulos externos (Hilera y Mart`nez
1995).
Esta es una de las caractersticas mas importantes de las
RNA, ya que esto les brinda la flexibilidad y adaptabilidad ante
diferentes problemas que a pesar de contar con caractersticas
comunes tambien se diferencian en a mbitos cruciales. Gracias
al aprendizaje, la RNA puede auto-organizarse y cambiar
su estructura hasta conseguir un algoritmo de ejecucion. El
aprendizaje consiste en hacer cambios en los pesos de las
conexiones entre las neuronas de la red hasta conseguir la
respuesta deseada de la red y el entrenamiento es el procedimiento por el cual la red aprende; mientras que el aprendizaje
es externo, el entrenamiento es interno. El aprendizaje puede
ser, supervisado, no supervisado y por reforzamiento.

1) Aprendizaje supervisado: En el aprendizaje supervisado,


se presenta una entrada a la capa de entrada junto con
una respuesta deseada para la capa de salida, el proceso de
aprendizaje se basa en la comparacion entre la salida que
calculo la red y la respuesta deseada, generando un error, el
error se utiliza para cambiar los parametros de la red (pesos)
de modo que resulte un mejor rendimiento.
2) Aprendizaje no supervisado: Las redes neuronales artificiales con aprendizaje no supervisado son aquellas que
no necesitan un asesor externo para realizar su aprendizaje.
La red no recibe informacion por parte del entorno que le
indique si la salida generada en respuesta a una entrada es
o no correcta. El aprendizaje no supervisado consiste en que
la red descubra por s misma caractersticas, regularidades,
correlaciones o categora en los datos de entrada y se obtengan
de forma codificada en la salida. En algunos casos, la salida
representa el grado de similitud entre la informacion que se
le esta presentado en la entrada y la que se le ha mostrado
en el pasado. En otro caso podra realizar un clustering o
establecimiento de categoras, indicando con la salida de
la red a que categora pertenece la informacion presentada
como entrada, siendo la propia red quien deba encontrar las
categoras apropiadas a partir de correlaciones en las entradas
presentadas.
III. C ASO DE E STUDIO
Las funciones hardlim y hardlims, como se ha visto anteriormente, se utilizan en perceptrones de una sola capa, por
lo que son u tiles en la resolucion de problemas linealmente
separables.
Un ejemplo practico y sencillo se puede dar en la:
Deteccion de Obstaculos por medio de un Robot.
Se cuenta con un robot con cuatro sensores de proximidad
en distintas ubicaciones que permanentemente detectan si hay
objetos que se encuentren a una distancia superior o inferior
a la preestablecida, con base en esto se decide si dar marcha
adelante o atras a cada uno de los dos motores que posee;
en las lecturas de los sensores podran darse 16 posibles
combinaciones y para cada combinacion cada uno de los dos
motores podra dar marcha adelante o marcha atras. Cuando
los sensores detectan un objeto que se encuentra a distancia
inferior a la predeterminada, se dira que el objeto se encuentra
cerca y esto se representa por medio de un 1 y cuando se
detecte un objeto a una distancia mayor a la predeterminada
se dira que el objeto esta lejos lo cual se indica con un -1;
dependiendo de estas lecturas los motores podran dar marcha
adelante, lo que se representa por un 1 o dar marcha atras con
un -1.
A. Por que elegir este tipo de red?
Este tipo de problema generalmente es resuelto
suministrandole al robot una base de datos que contiene
todas las posibles situaciones que se podran presentar
y sus respectivas soluciones, en este caso se necesitara
almacenar las respuestas para ambos motores ante las 16
posibles combinaciones en las lecturas de los sensores,

Figura 8. Comportamiento del robot

cuando el numero de variables de entrada y el numero de


salidas es mucho mayor, la cantidad de datos necesarios
para especificar cada posible situacion crece indefinidamente,
debido a esto se requeriran dispositivos con gran capacidad
de almacenamiento; en contraste, una red neuronal puede
entrenarse con un numero representativo de patrones
y aprender el comportamiento del sistema utilizando
dispositivos de menos capacidad de almacenamiento y costo.
Una red tipo Perceptron puede ser entrenada con patrones de
cualquier dimension en la entrada y en la salida con datos
binarios, por la simplicidad del problema este tipo de red es
la mas adecuada.
Para garantizar que el problema puede ser resuelto por
una red neuronal tipo Perceptron se debe comprobar que
los patrones de entrenamiento son linealmente separables,
para esto se deben plantear las desigualdades generadas por
cada patron de entrenamiento, en este caso cada patron de
cuatro dimensiones generara dos desigualdades (una por cada
salida), estas desigualdades no deben contradecirse, si esto
ocurriera el problema no podra ser resuelto por una red tipo
Perceptron de una sola capa y debera buscarse otro tipo de
solucion.
Debido a la naturaleza bipolar de la salida, la funcion de
transferencia a utilizar es hardlims.

B. Entrenamiento de la red
A la red se le presentaran 7 patrones para los cuales
dependiendo de las lecturas de los sensores se le dira al robot
que hacer especficamente y luego se probara la red con los
casos restantes para comprobar la capacidad de generalizacion
de la red neuronal ante un patron nunca antes visto
Los estados de lecturas de los sensores y de operacion de
los motores fueron designados con 1 y 1, puesto que para
la convergencia del proceso de entrenamiento resulta mas
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
funcion de transferencia apropiada es hardlims, la cual trabaja
con valores bipolares.
Se creara una red de 4 entradas con una neurona tipo Perceptron para cada salida, teniendo as una salida bidimensional, los pesos iniciales aleatorios de la red se muestran a
continuacion:
El siguiente codigo crea una red tipo Perceptron con funcion
de transferencia hardlims, dos neuronas en la salida, utiliza
como patrones de entrenamiento las lecturas de los cuatro
sensores almacenados en p y como patrones objetivo o salidas

Figura 9. Pesos iniciales

IV. C ONCLUSIONES
deseadas las acciones de ambos motores almacenados en el
vector t.

Figura 10. Codigo Matlab

De la ejecucion del codigo en matlab obtenemos la representacion de nuestra red perceptron la misma que nos indica
la cantidad de entradas, el numero de capas y las salidas de
la red.

Figura 11. Representacion de la Red

Los pesos finales de la red que satisfacen todos los patrones


de entrada y salida son:

Figura 12. Pesos Finales

La red fue simulada para la totalidad de combinaciones


posibles de entrada para comprobar que no exista error en el
aprendizaje de los patrones de entrenamiento y para observar
su capacidad de generalizacion en los casos restantes.

Una vez realizada la revision del estado del arte de las redes
neuronales y realizado el caso practico en el presente a rticulo
se ha llegado a las siguientes conclusiones:
La redes neuronales buscan cambiar el paradigma de
procesamiento secuencial de la maquina de Von Neumann, por el procesamiento en paralelo de las neuronas
artificiales.
La principal ventaja de las redes neuronales, ya sean
biologicas o artificiales, es la capacidad de respuesta,
dado que dicha respuesta es el resultado global de interaccion del sistema, en lugar de respuestas particulares
por cada uno de las neuronas.
Es conveniente en las redes neuronales artificiales as
como en el cerebro humano, evitar el entrenamiento
excesivo del sistema, ya que esto puede conllevar a
respuestas erroneas cuando cambia el entorno.
Las redes neuronales son capaces de imitar y pronosticar
el funcionamiento de sistemas dinamicos sin contar con
un modelo explcito, esto es muy importante al momento
de clasificar datos que pueden contener errores.
Una red tipo Perceptr
on de una sola capa es una buena
solucion a un problema que involucre patrones linealmente separables, en el caso de contar con patrones que
no son linealmente separables se tiene la alternativa de
utilizar una red Perceptron multicapa o cambiar definitivamente de red, notese que una red Perceptron multicapa
puede solucionar el problema de separabilidad lineal a
medida que aumenta el numero de capas de la red.
En las aplicaciones desarrolladas con redes neuronales
juega un papel importante la tolerancia a fallas que las
caracteriza, pues en caso de fallar uno o varios sensores
la red siempre producira una salida que en la mayora de
los casos es la mas acertada, debido a que la red despues
de un proceso de aprendizaje exitoso esta en capacidad
de generalizar el comportamiento del sistema.
R EFERENCES
[1] T Alcaraz Romero Vctor Manuel. Estructura y funci`on del sistema
nervioso. Recepci`on sensorial y estados del organismo 2da edicion.
Editorial El manual moderno. M`exico DF Mexico 2001 ISBN 968-895952-9.
[2] Lahoz-Beltra Rafael . Bioinformatica: Simulacion, vida artificial e
inteligencia artificial. Ediciones Daz Santos Madrid Espana. 2004 ISBN
978-84-7978-645-8
[3] Flores, R. Fernandez, J. Las Redes Neuronales Artificiales. Editorial
Netbiblo. La Coruna, Espana. 2008. ISBN 978- 84- 9745-2465
[4] APLICACIONES DE LAS REDES NEURONALES A INGENIERIA

ELECTRICA,
Universidad Tecnologica de Pereira, Recuperado de: http:
//medicinaycomplejidad.org/pdf/redes/Capitulo3.pdf
[5] Tanco, F. (2003). Introduccion a las redes neuronales artificiales. Grupo
de Inteligencia Artificial. Recuperado de: http://www.secyt.frba.utn.edu.
ar/gia/RNA.pdf
[6] Hugo Galan Asensio, Alexandra Martnez Bowen, Inteligencia artificial.Redes neuronales y aplicaciones, I.T.T Telematica Universidad
Carlos III de Madrid.

[7] J.M.Gonzalez de Durana, Introduccion a MATLAB, Dpto. de Ingeniera


de Sistemas y Automatica EUITI e ITT, UPV-EHU VITORIA-GASTEIZ
Recuperado de: http://www.araba.ehu.es/depsi/jg/imatlab.pdf
[8] DE, P. O. E. T., APLICADAS, L. E. M., CHAVEZ, N. P., MACIAS,
M. V. B. APRENDIZAJE NO SUPERVISADO Y EL ALGORITMO
WAKE-SLEEP EN REDES NEURONALES. Disponible en http://
jupiter.utm.mx/tesis dig/11612.pdf
[9] E. Cartuche, R. Granda Repositorio de codigo fuente del caso practico.
Disponible en: https://code.google.com/p/my-proyect-red-neuronal/

Eduardo Cartuche professional training for Engineering degree in Systems Engineering from Universidad Nacional de Loja, Loja, Ecuador in 2014.
His current research interest in neural networks are
applied to the perceptron with hardlims hardlim and
functions.

Rodrigo Granda professional training for Engineering degree in Systems Engineering from Universidad
Nacional de Loja, Loja, Ecuador in 2014. His current
research interest in neural networks are applied to
the perceptron with hardlims hardlim and functions

Das könnte Ihnen auch gefallen