Este documento trata sobre las funciones hardlim y hardlims y su uso para clasificar personas en un entorno académico. Explica la historia, características y estructura de las neuronas artificiales, así como las funciones de activación hardlim y hardlims. Luego presenta un ejemplo práctico donde se usa MATLAB para clasificar personas en base a su ropa y edad usando las funciones hardlim y hardlims.
1. Funciones Hardlim y Hardlims para la
clasificaci ´on de personas en un ambiente
acad´emico
Functions and Hardlims Hardlim for classification
of people in a academic environment
Paola Morocho. Lenin Ocampo. Tutor: Ing.:Henry Paz
F
Resumen—Este articulo trata sobre la neurona artifi-cial,
su historia, caracter´ısticas, y estructura. Adem´as
se podr´a apreciar las funciones de activaci ´on hardlim
y hardlims en un ejemplo pr ´ actico para la clasificaci ´on
de personas, en donde tambi´en se us´o la herramienta
MATLAB.
Abstract—This article is about the artificial neuron, its history,
characteristics , and structure. Furthermore it will be appre-ciated
hardlim activation functions and hardlims in a practical
example, where the use of the Matlab is also seen .
Index Terms—Neurona articial, hardlim, hardlims,funciones de
activaci ´on, funciones de aprendizaje.
I INTRODUCCI ´ON
UNO de los principales objetivos de los seres hu-manos
a lo largo de la historia ha sido facilitar
al m´aximo sus actividades, incluyendo aquellas que
requieren cierto nivel de inteligencia. Para ello han
desarrollado diversas t´ecnicas que incluyen el desa-rrollo
de la inteligencia artificial. El principio b´asico
de esta ´area es la construcci´on de m´aquinas capaces
de servir de ayudantes en los procesos y actividades
que requieren cierta capacidad intelectual . Una de
las t´ecnicas que se incluye en la inteligencia artificial
son las redes neuronales artificiales, las mismas
Paola Morocho, Universidad Nacional de Loja. Carrera de Inge-nier
´ıa en Sistemas.
E-mail: dpmorochoa@unl.edu.ec
Lenin Ocampo. Universidad Nacional de Loja. Carrera de Inge-nier
´ıa en Sistemas. E-mail: lsocampov@unl.edu.ec
que son un sistema an´alogo a las redes neuronales
biol ´ogicas y que tratan de imitar al m´aximo su
comportamiento y caracter´ısticas.
Sobre las caracteristicas y estructura de este tipo
de redes, se profundizar´am´as en la secci ´on II Estado
del arte, en donde tambien se dar´a a conocer acerca
de las funciones de aprendizaje, transferencia y
entrenamiento de las mismas.
En la secci ´on III Resultados, se dar´a a conocer el
caso pr´actico que se realiz ´ o, se tom´o como ejemplo
el uso de las funciones hardlim y hardlims en la
clasificaci ´on de personas. Para la realizaci ´on de este
ejercicio se us´o la herramienta MATLAB.
En la seccion IV, correspondiente a conclusiones,
se emiten conclusiones acordes a los temas tratados.
II ESTADO DEL ARTE
II.1 Historia
Warren McCulloch y Walter Pitts, en 1943, simula-ron
mediante circuitos el´ectricos el funcionamiento
de una neurona, siendo esto, el primer paso en
el estudio de la computaci´on neuronal. En a˜nos
posteriores se profundiz´o en el estudio de la neu-rona
artificial, hasta que en 1949, Donald Hebb
dedujo el proceso de aprendizaje de una neurona.
En 1957, Frank Rosenblatt desarroll ´o el estudio
del perceptr´on. Luego en 1969 Marvin Minsky, de-mostr
´o que el perceptr´on era muy d´ebil, dado que
no pod´ıa resolver problemas no lineales que eran
empleados en el mundo real, a pesar de esto, se con-tinu
´o investigando en el campo de las rna. En 1974
Paul Werbos desarroll ´o el algoritmo de aprendizaje
2. de propagaci´on hacia atr´as, que qued´o definido
completamente en 1985. En la actualidad, numero-sos
investigadores y cient´ıficos han profundizado
en el estudio de las redes neuronales artificiales,
brind´andole diferentes enfoques y perspectiva des-de
la neurolog´ıa hasta la matem´atica.
II.2 Neurona Artificial
Una neurona artificial es la unidad an´aloga a la
neurona biol ´ogica, siendo una unidad procesadora
que recibe varias se ˜ nales de entrada y las combina
mediante una suma b´asica, esta suma es modificada
mediante una funci´on de activaci ´on, cuyo resultado
es conocido como la se ˜ nal de salida. El conjunto de
estas neuronas, forman las redes neuronales artifi-ciales.
Elementos: En la figura 1, se puede apreciar los
elementos que componen una neurona artificial.
L neurona artificial comparte elementos simila-res
con las neuronas biol ´ogicas, adem´as la neurona
artificial simula el funcionamiento de la neurona
biol ´ogica.
Figura 1. Elementos de una neurona artificial
Entradas: reciben la informaci´on desde el
exterior o desde otras neuronas, que son
capturadas por las dendritas. Xi
Pesos: O tambi´en llamado peso sin´aptico, re-presentan
la intensidad de la conexi´on entre
dos neuronas, este valor puede ser positivo
(excitatorio) o negativo (inhibitorio), Wi. Es-tos
coeficientes pueden adaptarse dentro de
la red debido a la topolog´ıa utilizada o las
reglas de entrenamiento
Umbral: es la funci´on que la neurona debe
sobrepasar para activarse.
Salidas: Cada neurona tiene una ´ unica salida
que puede estar asociado con otras neuronas.
Esta salida depende directamente de la fun-ci
´on de activaci ´on
II.3 Perceptr ´on
Fue uno de los primeros modelos de redes
neuronales, trabaja principalmente con la funci´on
de activaci ´on limitador duro y limitador sim´etrico
(Hardlim y Hardlims).
Usa la suma ponderada de sus entradas, dando
como salida un 1 si la suma es m´as grande que
un valor umbral ajustable o da como salida 0 si
ocurre lo contrario, esta caracteritica pertenece a
su funci´on de activaci ´on por defecto, hardlim. Las
entradas y pesos son numeros reales, negativos o
positivos. El mecanismo de pesos se llama regla
de aprendizaje del perceptr´on. En la figura 2 se
observa la estructura de un perceptr´on.
Figura 2. Estructura de un perceptr´on
II.4 Funciones de activaci ´on
La funci´on de activaci ´on calcula el estado de ac-tividad
de una neurona, esta funci´on transforma el
conjunto de entradas (gini - umbral) en un estado de
activaci ´on. Por este estado la neurona puede estar
inactiva con valores de 0 ´o -1 o activa con 1. La
funci´on de activaci ´on es una funci´on de la entrada
global (gin i) menos el umbral Las funciones m´as
usadas son:
Funci´on lineal: Los valores de salida obtenidos
por medio de esta funci´on de activaci ´on ser´an: a
(cuando el argumento de gin i - (umbral)i) est´e com-prendido
dentro del rango (-1/a, 1/a). Por encima
o por debajo de esta zona se fija la salida en 1 o
–1, respectivamente. Cuando a = 1 (siendo que la
misma afecta la pendiente de la gr´afica), la salida es
igual a la entrada. Esta consideraci´on se aprecia en
la figura 3.
Figura 3. Funci´on lineal
3. Funci´on Sigmoidea: Los valores de salida que
proporciona esta funci´on est´an comprendidos den-tro
de un rango que va de 0 a 1. Al modificar el
valor de g se ve afectada la pendiente de la funci´on
de activaci ´on. Tal como se observa en la figura 4.
Figura 4. Funci´on Sigmoidea
Funci´on Tangente Hiperb´ olica: En la figura 5 se
observa la funci´on tangente hiperb´ olica, en donde,
los valores de salida est´an comprendidos dentro de
un rango que va de -1 a 1. Al modificar el valor
de g se ve afectada la pendiente de la funci´on de
activaci ´on.
Figura 5. Funci´on Tangente Hiperb´ olica
II.5 Funci ´on de Transferencia
Funci´on Escal´on: se utiliza cuando las salidas de
la red son binarias. La salida de una neurona se
activa s´olo cuando el estado de activaci ´on es mayor
o igual que cierto valor umbral t que representa
la m´ınima entrada total ponderada necesaria para
provocar la activaci ´on de la neurona. 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. En la figura
6 se puede apreciar esta funci´on.
Figura 6. Funci´on Escal´on
Funci´on Escal´on Sim´etrica: que restringe el es-pacio
de salida a valores entre 1 y –1. Tal como se
observa en la figura 7.
Figura 7. Funci´on Escal´on Sim´ etrica
Funci´on lineal Esta funci´on se observa en la
figura 8. Responde a las expresi ´on f(x) = x. Se define
un l´ımite inferior -t y otro superior, t. Si la suma
de las se ˜ nales de entrada es menor que que -t, la
activaci ´on se define como 0 o -1. Si la suma es mayor
que t, la activaci ´on es 1. Para valores de entrada
situada entre ambos l´ımites, la activaci ´on se define
como una funci´on lineal de la suma de las se ˜ nales
de entrada. Neuronas que emplean esta funci´on de
transferencia son utilizadas en la red tipo Adaline.
4. Figura 8. Funci´on Lineal
Funci´on sigmoidal Esta funci´on toma los va-lores
de entrada, los cuales pueden oscilar entre
m´as y menos infinito, y restringe la salida a valores
entre cero y uno, de acuerdo a la expresi ´on que
se puede obervar en la figura 9. Esta funci´on es
com´unmente usada en redes multicapa, como la
Backpropagation, en parte porque la funci´on logsig
es diferenciable
Figura 9. Funci´on Sigmoidal
II.6 Funci ´on de Aprendizaje
Aprendizaje Supervisado Se requiere el empareja-miento
de cada vector de entrada con su correspon-diente
vector de salida. El entrenamiento consiste en
presentar un vector de entrada a la red, calcular la
salida de la red, compararla con la salida deseada,
y el error o diferencia resultante se utiliza para re-alimentar
la red y cambiar los pesos de acuerdo con
un algoritmo que tiende a minimizar el error. Las
parejas de vectores del conjunto de entrenamiento
se aplican secuencialmente y de forma c´ıclica. Se
calcula el error y el ajuste de los pesos por cada
pareja hasta que el error para el conjunto de entre-namiento
entero sea un valor peque˜no y aceptable.
Los sistemas neuronales con entrenamiento su-pervisado
han tenido ´exito en muchas aplicaciones
y sin embargo tienen muchas cr´ıticas debido a que
desde el punto de vista biol ´ogico no son muy l ´ogi-cos.
Resulta dif´ıcil creer que existe un mecanismo
en el cerebro que compare las salidas deseadas con
las salidas reales.
Aprendizaje No Supervisado
No se requiere de influencia externa para ajustar
los pesos de las conexiones entre neuronas. Solo
se cuenta con las entradas para la red, en este
sentido se habla de auto organizaci´on. Lo que se
busca es encontrar caracter´ısticas, regularidades o
correlaciones entre los datos de entrada. Se generan
las salidas mediante: 1. El grado de familiaridad
o similitud entre la informaci´on de entrada y las
del pasado. 2. Agrupando en categor´ıas a partir
de correlaciones entre la informaci´on de entrada.
Cuando no se tiene una salida predeterminada
la red compara la informaci´on de entrada con la
informaci´on del sistema.
III RESULTADOS
A la hora de aplicar redes neuronales, y en general
para cualquier problema de reconocimiento de pa-trones,
hay una serie de pasos que ser´an comunes a
la mayor´ıa de los problemas.
Representaci´on original de los datos
Pre procesamiento de los datos originales
para codificarlos en un formato apropiado
para la red neuronal.
Procesamiento de la informaci´on. (aplicaci ´on
de la red neuronal)
Interpretaci ´on de los resultados.
1. Representaci´on de la informaci´on origi-nal.
Lo primero que debemos tener en cuenta, es la
representaci´on original de los datos que se debe
procesar, en este caso, una red neuronal, cuya base
de conocimiento permite clasificar si una persona
es docente o estudiante en base a la Ropa que lleva
y a su edad. En las figuras 10 y 11 se puede apreciar
la informaci´on que se consider´o para realizar la
clasificaci ´on.
Funci´on Hardlim
Figura 10. Informaci´on para la construcci ´on de la red. Hardlim
5. Funci´on Hardlims
Figura 11. Informaci´on para la construcci ´on de la red. Hardlims
2. Pre-procesamiento de los datos originales
para codificarlos en un formato apropiado para la
red neuronal.
Para aplicar la informaci´on, se debe realizar
alg ´un tipo de procesamiento para obtener la
informaci´on apropiada que le pasaremos como
entrada a dicha red.
En el caso de hardlim, se genera un vector
de valores enteros 0 o 1, de manera que en la
primera entrada “ROPA O VESTIMENTA”
un 1 significa que la persona esta con ropa
formal y 0 con ropa informal, en la segunda
entrada “EDAD” un 1 significa que la per-sona
tiene 25 o mayor n´umero de a˜nos y
0 su edad es menor a 25 a˜ nos, de manera
que el vector de valores discretos ser´a la
informaci´on que pasaremos a la entrada de
la red neuronal.
En el caso de hardlims, lo que haremos
ser´a generar un vector de valores enteros -
1 o 1, de manera que en la primera entrada
“ROPA O VESTIMENTA” un 1 significa
que la persona esta con ropa formal y -1
con ropa informal, en la segunda entrada
“EDAD” un 1 significa que la persona tiene
25 o mayor n´umero de a˜nos y -1 su edad es
menor a 25 a˜ nos, de manera que el vector
de valores discretos ser´a la informaci´on que
pasaremos a la entrada de la red neuronal.
3. Procesamiento de la informaci´on. Creaci´on
de la Red Neuronal en Matlab.
Una vez se ha creado los vectores correspondientes
para representar la ropa o vestimenta y la edad
de las personas, la red debe ser capaz de procesar
esta informaci´on para detectar el tipo de persona
(Docente-Estudiante) que el sensor ha captado. En
este caso sencillo, se clasifica el tipo de persona
en Docente o Estudiante, para lo cual se va a usar
una red neuronal y para su implementaci´on se
utilizar´a el toolbox de redes neuronales de Matlab.
Como se ha explicado anteriormente, la entrada de
la red neuronal, ser´a un vector de 8 elementos que
contiene la informaci´on de la persona a clasificar,
as´ı que se necesita una red neuronal de 2 entradas,
de manera que en cada entrada se le aplicar´a un
uno o un cero indicando la existencia de un trazo
en dicha zona de la imagen.
Como el objetivo es reconocer 2 tipos de personas
o mejor dicho, el objetivo es que la red neuronal
aprenda a clasificar los patrones de entrada en 2
clases diferentes, la red neuronal dispondr´a de 2
salidas, una para cada tipo de persona, de manera
que tan solo se activar´a la salida correspondiente al
tipo de persona reconocida.
1) Creaci´on de la red neuronal Para la creaci´on
y simulaci´on de la red neuronal, se ha gene-rado
una serie de patrones de muestra para
los dos tipos de personas que se requiere
reconocer. Esta informaci´on se puede apre-ciar
en la figura 12 para la funci´on hardlim
y figura 13 para la funci´on hardlims.
Funci´on Hardlim
Figura 12. Patrones de muestra
Funci´on Hardlims
Figura 13. Patrones de muestra
Seguidamente, tambi´en se genera la infor-maci
´on de la salida que la red neuronal
deber´a generar para cada uno de estos pa-trones.
En la figuras 14 y 15 se aprecian los
valores de salida para las funciones hardlim
y hardlims respectivamente.
Funci´on Hardlim
6. Figura 14. Patrones de Muestra de Salida
Funci´on Hardlims
Figura 15. Patrones de Muestra de Salida
A continuaci´on, en las figuras 16 y 17, se
crea la red neuronal con la funci´on newp,
y establecemos la funci´on de transferencia
‘hardlim’ y para el siguiente ejemplo se
establece ‘hardlims’.
Funci´on Hardlim
Figura 16. Construcci ´on de la red usando funci ´on Hardlim
Funci´on Hardlims
Figura 17. Construcci ´on de la red usando funci ´on Hardlims
2) Entrenamiento de la red neuronal.
Una vez creada la red neuronal, y como ya
se tiene los patrones de entrenamiento con
sus respectivos targets cargados en Matlab,
se debe invocar a la funci´on train. El coman-do
de entrenamiento es comun para ambas
funciones, esto se aprecia en la figura 18.
Figura 18. Entrenando la red
Con esto Matlab comenzar´a a entrenar la
red neuronal hasta alcanzar el performance
deseado, para lo cual Matlabmuetra una
ventana con la informaci´on de dicho pro-ceso.
3) Simulaci´on de la red neuronal.
Una vez entrenada la red neuronal, ya po-demos
aplicar un patr´on real a la entrada
y ver en la salida la clase (Docente - Estu-diante)
en la que se ha clasificado. Se us´o la
ventana de comandos de la herramienta
matlab, como se aprecia en la figura 19, para
hacer la simulaci´on inicial de la funci´on
hardlim. Para la simulaci´on
Funci´on Hardlim
Figura 19. Simulaci ´on de la red. Funci´on Hardlim
Como se observa en el grafico 19 la
red se encuentra entrenada de manera
satisfactoria, ya que se pretende clasificar
a una persona con vestimenta informal
pro que tiene 25 o m´as a˜ nos, arroja la
salida esperada que es una persona de tipo
DOCENTE.
INTERFAZ GRA´ FICA
Funci´on Hardlim
Haciendo use del guide de Matlab, se cons-truy
´o una interfaz gr´afica, como se aprecia
en la figura 20, en donde se puede ingresar
los valores correspondientes al tipo de ropa
y la edad correspondiente al objeto que se
pretende clasificar.
Accionando el bot´on simular, se construye
la red con los valores establecidos previa-mente.
Y se simula con los valores ingre-sados
en los respectivos campos de texto.
De la simulaci´on que realiza, se obtiene
el resultado del tipo de persona que fue
ingresado.
7. Figura 20. Interfaz Gr´afica para la Funci´on Hardlim
Funci´on Hardlims
Asi mismo, para la simulaci´on de la red
Hardlims se puede observar que arroja los
resultados esperados. Esto se puede com-probar
en la figura 21.
Figura 21. Simulaci ´on de la red. Funci´on Hardlims
INTERFAZ GRA´ FICA
Figura 22. Interfaz Gr´afica para la funci ´on Hardlims
En la interfaz gr´afica para la funci´on Hard-lims,
de la figura 22, tambien se ingresa
los valores correspondientes para la simu-laci
´on. Arrojando el resultado de la persona
clasificada.
4. Interpretaci´on de los resultados
En el caso de hardlim, los resultados son
f´aciles de interpretar como hemos visto en
el apartado anterior, la salida de la red neu-ronal
que tenga valor 1 (o que m´as se parez-ca
al valor 1) ser´a la que tomaremos como
salida activa indicando el tipo de persona
reconocido como docente y si el valor es 0
se identificara a un estudiante.
En el caso de hardlims, los resultados son
f´aciles de interpretar como hemos visto en el
apartado anterior, la salida de la red neuro-nal
que tenga valor 1 (o que m´as se parez-ca
al valor 1) ser´a la que tomaremos como
salida activa indicando el tipo de persona
reconocido como docente y si el valor es -1
se identificara a un estudiante.
IV CONCLUSI ´ON
Luego de la investigaci´on de los temas pertinentes
y de la aplicaci ´on pr´actica, se lleg ´o a las siguientes
conclusiones.
Cuando los valores de entrada de la red
inclyen valores negativos, es conveniente
usar la funci´on de transferencia hardlims,
debido a que al realizar el ajuste de pesos
y umbral permite obtener valores negativos,
lo que ayudar´ıa a realizar el entranamiento
m´as r´apido.
Las funciones Hardlim y Hardlims, ajustan
la salida de la red a valores que permiten rea-lizar
una clasificaci ´on, esto se puede emplear
en la soluci´on de problemas que requieren
una clasificaci ´on lineal de sus caracter´ısticas.
El entorno Matlab ofrece multiples funcio-nalidades
para el desarrollo de aplicaciones,
principalmente, matematicas, para la aplica-ci
´on se us´o el toolbox de redes neuronales
artificiales.
REFERENCIAS
[1] L. Ocampo y P. Morocho, C´odigo de la aplicaci´on. Funciones
hardlim y hardlims, [En l´ınea] Disponible en https://
github.com/leninsebastian/casoPracticoHardlimhardlims
[2] P. Ponce Cruz, Inteligencia Artificial con Aplicaciones a la
Ingenier´ıa, 1ra ed. Harlow, Mexico, 2010.
8. [3] J. Mar´ın, Introducci´on a las redes neuronales aplicadas,
1ra ed. [En l´ınea] Disponible en http://halweb.uc3m.es/
esp/Personal/personas/jmmarin/esp/DM/tema3dm.pdf
[4] R. Salas, Redes Neuronales Artificiales, [En l´ınea]
Disponible en http://www.inf.utfsm.cl/rsalas/Pagina
Investigacion/docs/Apuntes/Redes%20Neuronales%
20Artificiales.pdf
[5] MATLAB, MATLAB, [En l´ınea] Disponible en www.
mathworks.com
[6] J. L´evy, Las redes neuronales artificiales, [En
l´ınea] Disponible en http://books.google.com.ec/
books?id=X0uLwi1Ap4QCprintsec=frontcoverdq=
libros+sobre+redes+neuronaleshl=essa=Xei=
P2lYVIuWMc7LsASEjIKwBwved=0CBoQ6AEwAA#
v=onepageq=libros%20sobre%20redes%20neuronalesf=
false
[7] L. Alvarez, Fundamentos de inteligencia artificial,
[En l´ınea] Disponible en http://books.google.
com.ec/books?id=UfccXvwzIOUCpg=PA240dq=
libros+sobre+redes+neuronaleshl=essa=Xei=
P2lYVIuWMc7LsASEjIKwBwved=0CDwQ6AEwBg#
v=onepageq=libros%20sobre%20redes%20neuronalesf=
false
[8] M. Gestal, Introducci´on a las redes de neuronas artificiales,
[En l´ınea] Disponible en http://sabia.tic.udc.es/mgestal/
cv/RNAtutorial/TutorialRNA.pdf
Lenin Ocampo Estudiante de noveno
m´odulo de la carrera de Ingenier´ıa en Sis-temas
de la Universidad Nacional de Loja.
Desarrollador junior en lenguajes de pro-gramaci
´on java y web. Especialista en re-des.
Paola Morocho Estudiante de noveno
m´odulo de la carrera de Ingenier´ıa en Sis-temas
de la Universidad Nacional de Loja.
Desarrollador junior en lenguajes de pro-gramaci
´on java. Analisis y dise˜nar aplica-ciones.