Vous êtes sur la page 1sur 8

1

Redes Neuronales aplicando las funciones de


activacion de Hardlim para reconocimiento de cajas
y Hardlims para clasificacion de frutas desarrollados
en Matlab
Neural Networks using activation functions Hardlim
boxes for recognition and classification of fruit
Hardlims developed for Matlab
P. Pacheco, and S. Lara,
Tutor: Ing. Henry Paz

AbstractThis paper aims to demonstrate two functions and


activation Hardlim Hardlims developed in Matlab with its own
code, which demonstrate the characteristics of the activation
functions or transfer and finally as the neural network would
be trained.
Resumen En este trabajo se pretende demostrar dos funciones de activacion Hardlim y Hardlims desarrollado en Matlab
con su respectivo codigo, demostrar cuales son las caractersticas
de las funciones de activacion o transferencia y finalmente como
se entrenara la redes neuronales.
Index TermsRed neuronal, perceptron, monocapa multicapa,
funcion de activacion, funcion de aprendizaje, Proceso de
Aprendizaje, newp, train, sim, RNA.
Palabras claves Neuronal Red, Perceptron , Multilayer
monolayer , activation function , Learning Function , Learning,
newp , train sim, RNA.

I. I NTRODUCCI ON
En la actualidad las redes neuronales se vienen utilizando
muy frecuentemente, sobre todo si se trata del comportamiento
del sistema nervioso biologico, utilizando la red tipo
perceptron se utiliza principalmente dos funciones de
transferencia, hardlim con valores de 1 y 0, como la segunda
funcion hardlims con valores 1 y -1, estas funciones se
utilizaran de acuerdo al valor de salida deseado en la red,
es importante recabar que la funcion hardlims sobre la de
hardlim es la mas preferida, ya que no cuenta con valores de
0 provocando que no se vuelva lento en el aprendizaje.
Entonces para una mejor comprension una red neuronal es
un sistema de procesamiento de la informacion compuesto
P. Pacheco, Universidad Nacional de Loja, Loja, Ecuador,
plpachecoo@unl.edu.ec

E-mail:

S. Lara, Universidad Nacional de Loja,


silarat@unl.edu.ec

E-mail:

Loja,

Ecuador,

por un gran numero de elementos de procesamiento o


bien llamadas neuronas, que se encuentran profundamente
conectados entre s a traves de canales de comunicacion,
mientras que un perceptron en cambio es utilizado para
problemas simples o problemas de funcion lineal, esta es una
unidad basica de inferencia en form de discriminador lineal
considerado en las redes neuronales artificial.
En la seccion uno comprende al estado del arte, el cual
describe la neurona, cuales son sus elementos y caractersticas
de aprendizaje de la neurona, en ella tenemos la habilidad de
aprendizaje, generalizacion y abstraccion, y para una mejor
especificacion tenemos la arquitectura que esta comprendida
tambien por el numero de capas en mono-capa y muti-capa.
Finalmente una breve descripcion del perceptron, igualmente
su proceso de aprendizaje y la forma matematica de obtener
los valores con sus funciones de transferencia.
De la misma manera se refiere a una descripcion de las
funciones hardlim con valores 0 y 1 y la funcion hardlims
con valores de 1 y -1, cabe recalcar que estas funciones solo
se utilizan para resolver problemas lineales, donde se conoce
sus valores de entrada y salida deseados.
Otro punto de la misma seccion describe la herramienta
que se utiliza para el desarrollo de las funciones hardlim y
hardlims, para eso en una forma breve se describe cada una
de las palabras reservadas que ofrece matlab y la forma mas
sencilla para crear redes neuronales y perceptrones, como
es el caso para las funciones antes mencionadas utilizando
la lnea de codigo newp, para crear perceptrones, con mas
detalle de cada parametro que se utiliza se describe en la
seccion mencionada.
En la seccion de resultados explicaremos el codigo de la
funcion hardlim resolviendo un identificador de cajas, donde

una caja pasa por 6 sensores que son los valores de entrada
y el motor que tiene dos valores de salida deseados, de esta
manera inicia el codigo hardlim, otra manera de identificar
la funcion que le corresponde es en base a sus valores de
entrada que tiene.
En la segunda funcion hardlims se explicara el codigo de
un clasificar de frutas, este contiene valores de 1 y -1, esto es
importante conocer antes de desarrollar la aplicacion como
una forma de no perder tiempo en el desarrollo, donde los
valores iguales a -1 en las dos salidas deseadas comprenden
a una manzana en caso contrario si tiene los dos valores un
1 entonces es naranja, pero si tiene valores intercambiados
desimos que es otra fruta.
Seguimos con la siguiente seccion que hace referencia a
las conclusiones en base a la experiencia en la realizacion
de las funciones elaboradas en matlab, y por u ltimo tenemos
las recomendaciones que podemos dar a futuros usuarios que
deseen realizar problemas lineales con una misma similitud a
los expuestos.
II. R EDES N EURONALES A RTIFICIALES
A. Concepto de red neuronal
Una RNA puede definirse como un sistema de
procesamiento de informacion compuesto por un gran numero
de elementos de procesamiento (neuronas), profundamente
conectados entre s a traves de canales de comunicacion
(Reguero, 1995). Estas conexiones establecen una estructura
jerarquica y permiten la interaccion con los objetos del
mundo real tratando de emular al sistema nervioso biologico.

Abstraccion. Algunas son capaces de abstraer la esencia


de una serie de entradas.[2]

D. Arquitectura Neuronal
Las neuronas estan fuertemente conectadas entre ellas,
organizados en capas de una determinada topologa o modelos
conexionistas que podramos clasificar as.
1) Segun
de capas:
el numero

Redes neuronales mono-capa: La Figura 2 Corresponde


con la red neuronal mas sencilla ya que se tiene una capa de
neuronas que proyectan las entradas a una capa de neuronas
de salida donde se realizan diferentes calculos. La capa de
entrada, por no realizar ningun calculo, no se cuenta de ah el
nombre de redes neuronales con una sola capa. Una aplicacion
tpica de este tipo de redes es como memorias asociadas.

A diferencia de la computacion tradicional, basada en


algoritmos predecibles, la computacion neuronal permite desarrollar sistemas que resuelvan problemas complejos cuya
formalizacion matematica es sumamente difcil. Esto se logra
gracias a los principios de funcionamiento de las RNA, de los
cuales citamos a continuacion las tres mas importantes.[1]
B. Elementos
Una neurona posee tres elementos que se dividen en 3
grupo:
1) Los que reciben informacion del exterior (neuronas de
entradas)
2) Los que transmiten informacion al exterior(neurona de
salida)
3) Los que no tienes contacto con el exterior y solamente
intercambian informacion con otras neuronas(neuronas
ocultas) como se puede observa en la Figura 1.
C. Las caractersticas mas importantes de las RNA

Habilidad de Aprendizaje Las RNA modifican su comportamiento en respuesta al medio ambiente.


Generalizacion. Despues que se entrena una neurona es
insensible a variaciones pequenas en sus entradas.

Redes neuronales multi-capas: La Figura 3 se puede


observar que es una generalizacion de la anterior existiendo un
conjunto de capas intermedias entre la entrada y la salida (capas ocultas). Este tipo de red puede estar total o parcialmente
conectada.[3]
E. El Perceptron
Este tipo de red es ampliamente usado en problemas
simples de clasificacion de patrones. La neurona artificial
y unidad basica de inferencia en forma de discriminador
lineal considerado como un tipo de red neuronal artificial que
consiste en una suma de las senales de entrada, multiplicadas
por unos valores de pesos escogidos inicialmente en forma
aleatoria.

4) Aplicacion de la funcion de signo


o = signo(U )
5) Comparacion con la senal deseada
6) 6. Actualizacion de los coeficientes si existe error
Wk = Wk + (d o)Xk [3]
G. Funciones de transferencia

En una fase en la que e ste aprende, la entrada se compara


con un patron preestablecido para determinar la salida
de la red. Si en la comparacion la suma de las entradas
multiplicadas por los pesos es mayor o igual que el patron
preestablecido, la salida de la red es uno (1); en caso contrario
la salida es cero (0).
En esencia, el entrenamiento implica un proceso de refuerzo
a traves del cual los pesos que codifica las sinapsis se
incrementan o se disminuyen.

En la La Figura 4 es la estructura del perceptron, la mas


simple en las RNA. Es un discriminador binario lineal y puede
ser entrenado para mejorar su desempeno. Las entradas de la
neurona (4A), los pesos aleatorios (4B), la sumatoria de la
multiplicacion de los pesos por sus respectivas entradas (4C)
y la salida que es el calculo de todos los pesos y sus entradas
(4D). [4]

Las entradas a la red seran ahora presentadas en el vector


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 vea la Figura 5; aunque las RNA se inspiren en
modelos biologicos no existe ninguna limitacion para realizar
modificaciones en las funciones de salida, as que se encontraran modelos artificiales que nada tienen que ver con las
caractersticas del sistema biologico.
H. Hardlim y Hardlims
Limitador fuerte (Hardlim): la siguiente Figura 6 indica la
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. Proceso de Aprendizaje
En una red neuronal es necesario definir un proceso por el
cual las conexiones del dispositivo varen para proporcionar
la salida deseada (algoritmo de aprendizaje). Los metodos de
aprendizaje se pueden dividir en las siguientes categoras.
El proceso de aprendizaje del perceptor:
1) Inicializacion de los pesos
2) Determinaci
PN on de la salida
y = k=1 Wkn XkN
3) Comparacion con el umbral
u = y umbral

El icono para la funcion Hardlim reemplazara a la letra f


en la expresion general, cuando se utilice la funcion Hardlim.
Una modificacion de esta funcion puede representar la funcion
de transferencia Hardlims que restringe el espacio de salida a
valores entre 1 y -1 ver representacion en la Figura 7

J. Regla de aprendizaje del Perceptron


El perceptron es un tipo de red de aprendizaje supervisado,
es decir, necesita conocer los valores esperados (targets) para
cada una de las entradas (a) presentadas
pi , ti , p2 , t2 , .....pQ , tQ
Donde:
pq: Es la entrada de la red.
tq: Es la salida destino correspondiente.
I. Estructura de la red
Para ilustrar el proceso computacional del Perceptron
consideremos la matriz de pesos en forma general ver la
Figura 8:

Generalmente ocupan funciones de transferencia tipo


hardlim y hardlims. La regla de aprendizaje que sigue el
perceptron para la actualizacion de sus pesos es la siguiente:
Para el vector de pesos W: Wn uevo = Wa nterior + epT
Para el umbral b: bn uevo = ba nterior + e
Para el error e: e = t a

Los pesos Figura 9 para una neurona estan representados


por un vector compuesto Figura 10 de los elementos de la
i-esima fila de W:

Donde:
W: Es la matriz de pesos sinapticos.
b: Es el umbral de activacion.
p: Es el patron de analisis.
e: Es el error.
t: Es el valor objetivo relacionado con el patron
: Es la velocidad de aprendizaje.

K. Matlab
MatLab es un programa interactivo para computacion
numerica y visualizacion de datos. Es ampliamente usado
por Ingenieros de Control en el analisis y diseno, posee
ademas una extraordinaria versatilidad y capacidad para resolver problemas en matematica aplicada, fsica, qumica,
ingeniera, finanzas y muchas tras aplicaciones. Esta basado
en un sofisticado software de matrices para el analisis de sistemas de ecuaciones. Permite resolver complicados problemas
numericos sin necesidad de escribir un programa.
Principales comandos en matlab para crear redes
neuronales:
L. NEWP
Matlab usa la funcion newp para crear una red perceptron.
Esta funcion tiene cuatro parametros de entrada y el resultado
(salida de la funcion) es la red perceptron.[5]

De esta forma y empleando la funcion de transferencia


hardlim la salida de la neurona i de la capa de salida sera:
aj = hardlim(ni ) = hrdlim(Ti pi )
El Perceptron, al constar de una sola capa de entrada y
otra de salida con una u nica neurona, tiene una capacidad de
representacion bastante limitada, este modelo solo es capaz
de discriminar patrones muy sencillos, patrones linealmente
separables, el caso mas conocido es la imposibilidad del
Perceptron de representar la funcion OR EXCLUSIVA.[5]

red = newp(pr, s, tf, lf )


Donde:
pr matriz de los valores m
aximos y mnimos de los datos
de entrada (Nx2), donde N es el numero de variables de
entrada
s N
umero de neuronas.
t ffunci
on de transferencia, por defecto = hardlim.
lf funci
on de aprendizaje, por defecto = learnp.
red la red perceptr
on

III. R ESULTADOS

M. NEWFF
Sintaxis para un perceptron multicapa:
net = newf f (P R, [S1..SN l], T F 1..T F N l, BT F, BLF, P F )
Donde:
PR: Matriz con los valores mnimos y m
aximos de cada
una de las componentes de los patrones de entrada
Si: Tama
no de la capa i
TFi: Funci
on de transferencia de la capa i, por defecto
es tansig.
BTF: Funci
on de entrenamiento, por defecto trainlm.
BLF:
Funcion de aprendizaje de los pesos/bias, por
defecto learngdm.
PF:Funci
on de evaluacion, por defecto mse
N. Train

DEL PERA. EJERCICIO 1 - HARDLIM: APLICACION

CEPTRON
1) El siguiente ejercicio esta enfocado en la funcion
hardlim, nos pide la clasificacion de cajas; es decir,
una caja para por seis sensores los cuales llegaran
hacer los valores de entrada para mi primera matriz
o vector, luego estos emiten valores de 1 o 0 de
acuerdo a la descripcion que se muestra en la Figura
11, seguidamente tenemos los valores de M1 yM0
que son los valores para la matriz o vector de
salida Figura 12. Una vez cumplido con el proceso
calculamos de acuerdo a nuestras salidas deseadas
los valores en letras que en este caso sera: chico,
mediano, grande y extragrande. Para un mejor
comprension seguimos con la siguiente descripcion:

La opcion Train aplica el algoritmo hasta 5 datos, por esta


razon normalmente se necesita correr mas de una vez esta
opcion para encontrar una solucion. Una vez creada la red, el
siguiente paso es realizar el entrenamiento con los patrones
de entrada y las salidas deseadas. Estatico En cada ciclo de
entrenamiento se recalculan los pesos de la red tras presentar
todos los patrones de entrenamiento. Se realiza con la funcion
train:
[net, T R, Y, E] = train(N ET, P, T )
Donde:
NET: Una red inicializada
P: Los patrones de entrada
T: Las salidas deseadas
Y los parametros de salida son:
Net: Red entrenada
TR: Error en funci
on de la iteracion
Y: Salida de la red
E: Errores de la red

Algunos parametros de interes de la nueva red son:


N ET.trainP aram.epochs Maximo numero de ciclos de
entrenamiento.

Desarrollo del ejemplo


Vista principal Figura 13, en la cual seleccionaremos

O. Sim
Tras la fase de entrenamiento, la red esta lista para ser
usada, es decir, la red es capaz de producir una salida adecuada
a un conjunto de patrones de entrada. La funcion sim es la
encargada de pasar un conjunto de patrones de entrada a la
red y de obtener su salida:[6]
Y = sim(N ET, P )
Donde:
NET: representa una red entrenada
P: es el conjunto de patrones de entrada
Y: es la salida de la red
cual de las funciones deseamos entrenar y para un mejor

entendimiento una descripcion del ejemplo de acuerdo


a la funcion seleccionada. En la siguiente opcion se
escoge la opcion de la funcion a entrenar Figura 14 y
nos desplazamos en la parte izquierda cuales seran los
datos de salida deseados, seguidamente damos click en
entrenar al perceptron.

El boton Entrenar, contiene el codigo de las funciones


Hardlim o Hardlims como se muestra en la siguiente
figura, donde el primer if contiene el algoritmo de la
funcion hardlim (clasificador de cajas), a continuacion
describiremos cada sentencia de la funcion hardlim:
T= son las entradas en este caso 6 (2 ancho, 2 alto y 2
largo).

Una vez que se entrena la red, visualizamos la siguiente


Figura 18 el cual nos muestra la estructura de la red,
con 6 valores de entrada, 1 capa oculta y 2 salidas.

T = [010111; 101011; 000001; 111111; 001111; 111111];


S=son las salidas deseadas, aqu se muestran 2 salidas
S = [11 111111; 1 1 1 11 1 1 1];
red: es el nombre de la red newp: se va a entrenar a
la red con perceptrones, tiene una matriz del numero
de maximos y mnimos de la misma cantidad de las entradas, (2) hace referencia al numero de salidas deseadas
y (hardlim) es la funcion de entrenamiento que tendra la
red. trainParam.epochs=1000; es el numero de iteraciones maximas trainParam.show=5; es el intervalo de
visualizaciones de los resultados. train(red, T, S); nos
indica que se iniciara el entrenamiento de la red con los
valores de entrada y salida deseados e ingresados a un
inicio Figura 15.

A continuacion seleccionamos los valores de entrada que


le damos a nuestra red, donde 1 muestra el primer valor
de cada atributo (alto, ancho y largo) y 2 es el segundo
valor de cada atributo, si se selecciona es marcado con
1 y en caso contrario es un 0. Luego damos click en el
boton Simular y nos muestra finalmente el resultado del
tipo de la caja (chico, mediano, grande o extra grande)
Figura 19.

pesos = red.iw{1, 1}; es la inicializacion de los valores


en los pesos; bias = red.b{1}; es la inicializacion de
las bias (umbral o theta) Figura 16.

Con la misma estructura pero con el cambio de los


valores de entrada y salida deseada de la funcion
HARDLIMS o segundo if, y la declaracion de que
se trabajara en la funcion hardlims se reemplazan sus
valores como se muestra en la siguiente Figura 17 es la
representacion de la segunda funcion o funcion hardlims.

2) En nuestro segundo ejemplo, simularemos la clasificacion de frutas (manzana, naranja u otra fruta)
Figura 20 aplicando la funcion hardlims, para ello
primeramente debemos conocer los valores que nos
muestra como entrada y salida, de esto depende si
es correcto para aplicar la funcion hardlims. En
la siguiente Figura 21 visualizamos los valores que
contiene y para este ejemplo la manzana toma el
valor de -1 y la naranja el valor de 0, pero si
no corresponde a estos, entonces los valores seran
diferentes y corresponde a otra fruta.

IV. C ONCLUSIONES

Los valores para cada parametro son:


Forma:
1, si la fruta es redonda
-1, si la fruta es elptica
Textura:
1, si la superficie de la fruta es suave
-1, si la superficie es rugosa
Peso:
1, libra
-1, libra
Para el ejemplo del clasificador de frutas contamos
en la vista con los mismos pasos de entrenamiento,
seleccionando la funcion y damos entrenar, luego
asignamos los valores que tendra la fruta con los
valores que se describen en la figura anterior, este
ejemplo cuenta con tres valores para la entrada y una
sola salida (naranja 1 y manzana -1) y finalmente para
la visualizacion del resultado damos click en el boton
simular Figura 22.

Para obtener el codigo de las funciones realizadas en


matlab, puede ingresar al siguiente link disponible:

La neurona constituye un elemento basico del cerebro el


cual se lo puede simular medio de neuronales artificiales
las cuales interconectadas entre si forma una red la cual
desarrolla un comportamiento acorde a la funcion de
activacion asignada.
Las funciones de transferencia calcular la produccion de
una capa a partir de su entrada. Una red tipo Perceptron
emplea dos funciones de transferencia, funcion escalon
(hardlim) con salidas 1, 0 o funcion escalon simetrica
(hardlims) con salidas 1, -1; su uso depende del valor
de salida que se espera para la red puesto que son
linealmente separadas.
Para la desarrollo de los problemas se utilizo la codificacion en Matlab por medio de un perceptron que se crea
con el comando newp el cual posee sus propios parametro
y utilizamos train para realizar su entrenamiento.
En cualquiera de los casos Hardlim y hardlims se de
llamadas sim para simular la red.
V. R ECOMENDACIONES

Que es la salida tomo en los valores 0 o 1, entonces s


debera hacer la uso de la funcion hardlim. S se desea
que la salida tomo en los valores -1 o 1
Se recomienda utilizar la funcion hardlims sobre la
hardlim, ya que el tener un cero multiplicando algunas
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 mas lento.
Se recomienda utilizar el toolbox de matlab que hace
mas rapada y sencilla la elaboracion de redes neuronales
mono-capa o multicapa.
REFERENCIAS

[1] HILERA GONZALEZ,


J.; MARTINEZ HERNANDO, V. (1995). Redes
neuronales artificiales: fundamentos, modelos y aplicaciones. Madrid:
RA-MA.
[2] J. MOCTEZUMA, Neural Network Toolbox de MATLAB,
Encuentro internacional de computacion, 2006,[En linea] link: http :
//www.cs.buap.mx/ agalvez/nneta rchivos/SlidesN N ET 2.pdf
[3] A. Serrano, E. Soria, J. Matin, REDES NEURONALES ARTIFICIALES programa 3er ciclo doctoral,2009-210,[En linea] link:
http : //ocw.uv.es/ingenieria y arquitectura/1
2/libroo cwl ibrod er edes.pdf
[4] P. PNCE, Inteligencia Artificial Con aplicacion a la Ingeniera, Alfaomega Grupo Editor, Mexico, Julio 2010.

[5] F.
Tanco,
INTRODUCCION
A
LAS
REDES
NEURONALES
ARTIFICIALES,[En
linea]
link:
http
:
//www.secyt.f rba.utn.edu.ar/gia/RN A.pdf
R Users Guide
[6] Neural Network Toolbox. For Use with MATLAB .
Version 4. Howard Demuth and Mark Beale. (PDF).
[7] ESCOM, Redes Neuronales Artificiales, 2009,[En linea] link: http :
//es.slideshare.net/mentelibre/introduccionalasredes
neuronales artif iciales
[8] P.
Pacheco,
S.
Lara,
Codigo-Hardlim-yHardlims,
2014,[En
linea]
link:
https
:
//github.com/P riscillaP acheco/Codigo Hardlim y
Hardlims/commit/bb33803064bb17f 82873af 8b6e528f 381a4e4a8a#dif f
04c6e90f aac2675aa89e2176d2eec7d8

https://github.com/PriscillaPacheco/Codigo-Hardlim-yHardlims/commit/bb33803064bb17f82873af8b6e528f381a4e4a8a#
diff-04c6e90faac2675aa89e2176d2eec7d8[?]

Priscilla Pacheco

Estudiante de la Carrera de Ingeniera en Sistemas de la


Universidad Nacional de Loja, Conocedora de Analisis y Diseno,
Provincia de Loja, Ciudad Loja, Ecuador, 2014.

Soraya Lara

Estudiante de la Carrera de Ingeniera en Sistemas de la


Universidad Nacional de Loja, Conocedora de Analisis y Diseno,
Provincia de Loja, Ciudad Loja, Ecuador, 2014.