En el presente artículo se estudian las funciones de activación Satlin y Satlins, haciendo un mayor énfasis en la función Satlin porque es parte de la estructura del modelo de red neuronal Hopfield.
Matlab es utilizada para implementar la red de Hopfield que permiten el reconociemiento de un patrón incompleto que ha sido ingresado, y se relaciona con el patrón almacenado en la memoria y lo asocia con el que mas se parezca.
Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satlin y Satlins en Matlab
1. 1
Incomplete Patron Recognize with Satlin and Satlins
Activation Function in Matlab
Reconocimiento de Patrones Incompletos Mediante
Funciones de Activaci´on Satlin y Satlins en Matlab
J. Gonz´alez, B. Sarango
jcgonzalezo@unl.edu.ec, bhsarangor@unl.edu.ec
tutor: H. Paz
Abstract—In this article, the activation functions are studied
Satlins Satlin and making a greater emphasis on the role of
activation satlins because this is part of the structure model
of Hopfield neural network. Matlab to implement the Hopfield
network that allow recognition of an incomplete pattern that he
has entered and relate the pattern stored in associative memory
that most closely resembles the same code is used.
Resumen—En el presente art´ıculo se estudian las funciones
de activaci´on Satlin y Satlins, haciendo un mayor ´enfasis en la
funci´on Satlin porque es parte de la estructura del modelo de
red neuronal Hopfield. Matlab es utilizada para implementar la
red de Hopfield que permiten el reconociemiento de un patr´on
incompleto que ha sido ingresado, y se relaciona con el patr´on
almacenado en la memoria y lo asocia con el que mas se parezca.
Keywords—neural Networks, activation function, Satlin, Satlins,
Hopfield, matlab.
Palabras claves —Redes neuronales, funci´on activaci´on, Satlin,
Satlins, Hopfield, matlab.
I. INTRODUCCI´O
N
Las redes Neuronales Artificiales RNA tiene su origen a
principios de la d´ecada de los 50 naci´o de la idea de tratar
de simular el comportamiento de las neuronas biol´ogicas y la
forma en que estas se relacionan, para conseguir un aprendizaje
que se apegue lo mas posible a la del cerebro Humano. De
manera general una neurona artificial consta de entradas, pesos
sin´apticos, una funci´on de aprendizaje, funci´on de activaci´on
el umbral y una salida.
Una funci´on de activaci´on limita la amplitud de la salida de
una neurona, en este caso la funci´on Satlin limita entre [o,1]
y Satlins tiene rangos de [-1,1]. Para las redes Hopfield que
se caracterizan por se monocapa, recursivas, m´etodo de apren-dizaje
no supervisado, y estas garantizan que entrenamiento
garantiza que las salidas son puntos de equilibrio.
Para el ejemplo planteado se pretende ingresar un patr´on
de numero (1,2,4) establecidos en vectores donde se utiliza 1
y -1 para representar su forma, de igual manera tendremos un
patr´on de n´umeros incompletos(mal dibujados) y se utilizar´a
una red Hopfield para que asocie el mismo con los puntos
de equilibrio en que se encuentra en su memoria, luego de
lo cual se aplica la funci´on de activaci´on Satlin para obtener
los resultado deseados en base a la funci´on de entrenamiento
hebbiano no supervisado.
II. GENERALIDADES DE LAS REDES NEURONALES
ARTIFICIALES
A. Neurona Biol´ogica
Antes de adentrarse en el mundo de las redes neuronales
artificiales es necesario tener al menos las nociones b´asicas
de las neuronas biol´ogicas.El cerebro tiene aproximadamente
100.000 millones de c´elulas llamadas neuronas que son re-sponsables
de todas las funciones mentales, se piensa que cada
neurona posee alrededor de 10.000 y 30.000 enlaces con las
dem´as que la rodean [1]. Una de las caracter´ısticas m´as impre-sionantes
del cerebro es que a pesar de la destrucci´on constante
de algunas de sus neuronas, esto no influye mayormente en el
desarrollo de sus funciones.
Figura 1. Neurona biol´ogica
A trav´es de la imagen Figura 1 se puede observar una
neurona biol´ogica, la cual consta de ax´on, n´ucleo y dendritas;
el termino sinapsis hace referencia a la conexi´on de ax´on de
una neurona con las dendritas de otra, por medio de la cual
comparten informaci´on. Las neuronas comparten informaci´on
entre s´ı, atravez de dos maneras: el´ectrica y qu´ımica. La
conexi´on qu´ımica se produce cuando la informaci´on se
transmite variando la composici´on qu´ımica de la sinapsis, y
ser´a el´ectrica si se propaga en el interior de la neuronal.
Cabe destacar que el proceso de aprendizaje neuronal no
2. 2
se da por igual, ya que esta limitado a la intensidad en la
composici´on qu´ımica(peso sin´aptico) de cada dendrita, por
tal raz´on algunas dendritas tendr´an mas actividad que otras.[2]
B. Neurona Artificial
Los estudios sobre neuronas artificiales se remontan a
principios de los a˜nos 50, sin embargo, el mayor ´exito en el
campo se vi´o en el a˜no 1958 con Frank Rosenblatt y su libro
Perceptr´on, donde se hacia menci´on a la primera red neuronal
artificial orientada a la computaci´on. Para el a˜no 1969 Minsky
y Pappert publican el libro Perceptrons donde se describ´ıan
las limitaciones de los perceptrones aplicados a la resoluci´on
de sistemas no lineales como el de la compuerta xor, hasta
que gracias a las investigaciones aisladas de (Kohonen 1972),
(Anderson 1972) y (Grossberg 1987), se pudieron modelar
las redes neuronales multicapa, que daban soluci´on a los
problemas de no linealidad [3].
En s´ıntesis una neurona artificial intenta simular mediante
la representanci´on de modelos matem´aticos los aspectos
y comportamientos de una neurona biol´ogica. Se puede
definir a la red neuronal artificial como un procesador que
recibe una serie de entradas ya sean del mundo exterior o
internas(producidas al interior de otra neurona),las cuales
tendr´an pesos diferentes y ser´an procesadas generando en
su fase final una determinada salida. Como se describ´ıa
anteriormente a una neurona le pueden llegar muchas se˜nales
de otras(sinapsis),estas sinapsis podr´an ser excitadoras(neurona
emisora activara a la neurona receptora ) o inhibidoras(neurona
emisora inhibir´a a la neurona receptora).
Debido a que en las neuronas biol´ogicas no todas las
conexiones entre axones y dendritas (sinapsis) tienen la
misma concentraci´on de iones, su conductividad es diferente,
de modo que una conexi´on tendr´a mayor preferencia sobre
otra con menor conducci´on. Para reflejar esto se plantean una
serie de pesos en las conexiones de entrada, que ponderar´an
las entradas definiendo el nivel de activaci´on de la c´elula [4].
De manera general una neurona artificial consta de:
Figura 2. Esquema de la neurona artificial
Grupo de entradas: xi
Pesos sin´apticos: wi
Funci´on suma : suma algebraica de los valores de los
pesos sin´apticos, multiplicados por los valores de las
entradas a la neurona.
Funci´on de activaci´on: permite limitar la salida de una
neurona, ya que establece la forma y la intensidad con
que iran variando los valores que se transmiten de una
neurona a otra.[5]
Umbral : valor l´ımite que representa el valor para el
cual la salida cambia de estado l´ogico.
Funci´on de aprendizaje: evento por el cual una red
neuronal modifica sus pesos en respuesta a una infor-maci
´on de entrada.
Una salida: transforma el estado de activaci´on en una
se˜nal de salida, la cual es enviada a trav´es de las
conexiones de salida a otras unidades de la red xj(t)[6]
En toda red neuronal se utiliza el mismo esquema, lo ´unico
que va a variar es la funci´on de activaci´on la cual en el
presente trabajo ser´an la satlin y satlins.
Debido a que hay muchos par´ametros por los cuales se
puede clasificar a una red neuronal, en la presente imagen
se muestra un resumen de las diferentes clasificaciones que se
pueden hallar.
Figura 3. Clasificaci´on de las RNA
1) Arquitectura de las RNA: La arquitectura de una RNA es
la estructura o patr´on de conexiones de la red, en general, las
neuronas suelen agruparse en unidades estructurales llamadas
3. 3
capas. Dentro de una capa, las neuronas suelen ser del mismo
tipo. Se pueden distinguir tres tipos de capas:[5]
De entrada: reciben datos o se˜nales procedentes del
entorno.
De salida: proporcionan la respuesta de la red a los
est´ımulos de la entrada.
Ocultas: no reciben ni suministran informaci´on al en-torno
(procesamiento interno de la red)
Generalmente las conexiones se realizan entre neuronas
de distintas capas, pero puede haber conexiones intracapa o
laterales y conexiones de realimentaci´on que siguen un sentido
contrario al de entrada-salida.
Figura 4. Tipos de Arquitectura
C. Funciones de Activaci´on
Una funci´on de activaci´on limita la amplitud de la salida
de una neurona puesto que aplana los l´ımites o el rango de
amplitud permisible de una se˜nal de salida a un valor finito.[7]
Las neuronas artificiales tienen diferentes estados de acti-vaci
´on; algunas solamente dos, al igual, pero otras pueden
tomar cualquier valor dentro de un conjunto determinado. [8]
Figura 5. Funciones de activaci´on
1) Satlin y Satlins: Satlin y Satlins son funciones de trans-ferencia
de neuronas artificiales. Las cuales calculan la salida
de una capa a partir de su entrada de red.[9,10]
Satlin: Funci´on de saturaci´on lineal, para graficar una
funci´on satlin en matlab se puede utilizar el comando
plot(n,a); donde n=matriz entrada de la red, a=satlin(n),
donde la variable a almacenara una matriz de mxn de
elementos comprendidos en el rango [0,1].[9]
Figura 6. Funcion Satlin
Figura 7. Gr´afica funci´on satlin
Satlins: Funci´on de saturaci´on lineal sim´etrica Para
graficar satlins en matlab se utiliza el comando plot(n,a);
donde n=matriz entrada de la red, a=satlins(n), donde la
variable a almacenara una matriz de mxn de elementos
comprendidos en el rango [-1,1].[10]
Figura 8. Funci´on Satlins
Figura 9. Gr´afica funcion satlins
D. Modelo de Red Neuronal de Hopfield
Este modelo fue creado por Hopfield,quien gracias al
trabajo sobre neurofisiolog´ıa en invertebrados, desarroll´o
un tipo de red neuronal autoasociativa.[11] Entre las
caracter´ısticas principales de este tipo de red es que son
monocapa,recursivas,usa el m´etodo de aprendizaje no
supervisado, presentando conexiones de salida hacia otras
neuronas de la capa media, y solo una hacia la capa de salida,
su principal campo de aplicaci´on esta en el reconocimiento
de patrones, reconocimiento de im´agenes, voz y problemas
de optimizaci´on.
4. 4
Una red Hopfield se comporta como una memoria de
puntos estables (salidas deseadas) y no requiere entradas
deseadas. Se proporciona a la red las salidas y ´esta devuelve la
magnitud de los pesos y las polarizaciones, el entrenamiento
garantiza que las salidas son puntos de equilibrio, pero no
descarta la posible aparici´on de otros puntos de equilibrio no
deseados.Su estructura est´a compuesta de una capa de
funci´on de activaci´on satlins y una realimentaci´on.[2]
El objetivo de esta red es llegar a un equilibrio,en donde los
estados de las neuronas de la capa media ya no se modificaran;
permanecer´an estables. Y es entonces cuando la capa media
transmite su patr´on de activaci´on a la capa de salidas, que lo
recibe sin modificaci´on alguna.
Figura 10. Modelo de red hopfield
A la hora de crear una red Hopfield se tiene que tomar en
cuenta los siguientes aspectos:
Ortogonalidad: Los datos que debe aprender la red
tiene que ser suficientemente diferentes entre si, puesto
que sino no son ortogonales ocurre que ante una entrada,
la red no haga una asociaci´on correcta y genere una
salida err´onea.
Numero limitado de entradas: Es decir se almacena
demasiada informaci´on, lo que origina que durante su
funcionamiento la red converge hacia valores de salida
diferentes de los aprendidos.
III. PROGRAMA EN MATLAB
Para la implementaci´on del ejemplo en matlab se dise˜no
una red Hopfield ya que la misma dentro de su esquema hace
uso de la funci´on satlins.
La red neuronal de Hopfield esta dise˜nada de tal forma que
debe identificar el patr´on de los n´umeros 1, 2 y 4 que est´an
representados en una matriz en forma de estados de cuadr´ıcula:
vac´ıa -1 y cuadr´ıcula llena 1.
Figura 11. Num 1
Figura 12. Num 2
Figura 13. Num 4
Para poder representar estos patrones en matlab, se lo hace
mediante la definici´on de 3 vectores num1,num2,num4.
num1 = [ -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];
num2 = [ 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];
num4 = [ 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];
En la etapa de aprendizaje se obtendr´a la matriz de
memoria asociativa la cual se obtiene multiplicando cada
vector por su traspuesta y rest´andole la matriz identidad
eye(25), notese que la matriz identidad debe ser de la misma
dimensi´on de los vectores num1,num2,num4.
M=(num4’*num4-eye(25))+(num1’*num1-
eye(25))+(num2’*num2-eye(25));
A. Fase de Recuperaci´on
Una vez definida nuestra memoria asociativa, se puede
recuperar algun patr´on que se desee comprobar su asociaci´on,
para lo cual se almacena en una variable el patr´on que se
desea recuperar. El patr´on que ingresaremos sera de numero
4 incompleto, que se asemeja a esta forma:
Figura 14. Patr´on 4 incompleto
Como se puede observar este patr´on se asemeja al
4, pero est´a incompleto, lo que la red de hopfield har´a
es compararlo con todos los patrones que haya aprendido
en su memoria asociativa y mostrar al final el patr´on asociado.
A este patr´on que se lo desea recuperar se lo almacenar´a en
una variable aux y se lo multiplicar´a por la matriz de memoria
asociativa M lo que dar´a como resultado una nueva matriz
b1.Se puede considerar a b1 como la primera interacci´on en
b´usqueda de los puntos de equilibrio.
aux=num4mal;
b1=aux*M;
5. 5
Ahora se procede a pasar esta matriz b1 por la funci´on
de activaci´on satlins lo que permitir´a limitar las salidas que
tiene.
Figura 15. Funci´on de activaci´on
El resultado que producir´a este proceso lo podemos visu-alizar
as´ı:
Figura 16. Resultado de aplicar satlins
Ahora la matriz resultante b1 ser´a almacenada en una
variable aux, y multiplicamos aux*M(matriz de memoria) y se
la vuelve hacer pasar por la funci´on de activaci´on, todo este
proceso de lo ha metido en un while hasta que las iteraciones
b1 y b2 sean iguales es decir lleguen a un punto de equilibrio
y cumplan con la definici´on de la funci´on de aprendizaje
hebbiano no supervisado que b´asicamente se resumen a un
ajuste de los pesos de las conexiones, en base a la correlaci´on
de los valores de activaci´on de las dos neuronas conectadas.[2]
Figura 17. Iteraciones de equilibrio
Convertimos los -1 en 0, a efectos nada mas de poder
presentar por pantalla de una mejor manera los resultados
Figura 18. Convertir -1 en 0
Llevamos los datos a una matriz, ya que para poder ingresar
las cuadr´ıculas tuvimos que ingresar los datos en forma de
vector.
Figura 19. Presentar datos en forma de matriz
Como se habia explicado, al principio se ingreso un
patr´on(el n´umero 4 incompleto), el resultado que se desea es
que en base a lo que ha aprendido la red de hopfield, asocie este
patr´on a recuperar al patr´on que tenga almacenado en memoria
que mas se aproxime, en este caso deber´a presentarnos el
patr´on del n´umero 4 completo.
Figura 20. Resultado final de red hopfield
Se demuestra que la red neuronal de hopfield ha aprendido
y que reconoce patrones.
6. 6
El c´odigo completo del script en matlab se lo puede
descargar de aqu´ı: https://github.com/juancaboy22/Hopfield-and-
Satlins.
IV. CONCLUSIONES
Hay un antes y un despu´es de la inteligencia artificial
desde que se public´o el libro Perceptr´on de Rosenblatt,
hoy en d´ıa la inteligencia artificial esta tan arraigada
en la vida del hombre que su enfoque actual se ha
convertido en interdisciplinario.
Matlab se puede utilizar para dise˜nar redes neuronales
artificiales, de una forma m´as f´acil utilizando los co-mandos
propios de esta herramienta y si se desea ampliar
mas su usabilidad se puede hacer uso del plugin toolbox
que trae incorporado.
Una red Hopfield es una red neuronal monocapa que
nos sirve para resolver problemas de memoria asociativa,
permitiendo simular perfectamente el aprendizaje que
tienen las personas en su vida al asociar determinado
objeto con alg´un patr´on ya aprendido anteriormente.
La funci´on de activaci´on Satlin es utilizada en redes de
Hopfield, y nos permite, en este caso, que la entrada de
datos sea bipolar, es decir [-1,1], siendo de gran utilidad
a la hora de limitar las salidas de la red.
A la hora de construir una red Hopfield se debe tener
muy en cuenta la ortogonalidad y poseer un adecuada
n´umero de entradas puesto ya que la mala aplicaci´on
de estos factores har´an que nuestra red converga hacia
valores de salida diferentes a los aprendidos.
REFERENCES
[1] J. Levy LAS REDES NEURONALES ARTIFICIALES, 1era ed. La
Coru˜na, Espa˜na: Netbiblo, 2008, consulta realizada 30-Oct-14.
[2] E. Bonilla RECONOCIMIENTO DE CARACTERES MEDIANTE RE-DES
NEURONALES CON MATLAB, ESPOL, [En linea] bibdigi-tal.
epn.edu.ec/bitstream/15000/5503/1/T2472.pdf, consulta realizada 28-
Oct-14.
[3] F. L. Rosano, NEURONALES ARTIFICIALES, UNAM. [En l´ınea]
http:conceptos.sociales.unam.mx/conceptos final/598trabajo.pdf ,con-sulta
realizada 28-Oct-14.
[4] L. Torres,EL PERCEPTRO´N, Universidad Nacional de Colombia. [En
l´ınea] http://disi.unal.edu.co/ lctorress/RedNeu/LiRna004.pdf ,consulta
realizada 29-Oct-14.
[5] C. Novillo y M. Guan˜o, IMPLEMENTACIO´N DE
UN SISTEMA DE DETECCIO´N DE INTRUSOS UTI-LIZANDO
INTELIGENCIA ARTIFICIAL, ESPOL. [En l´ınea]
http://bibdigital.epn.edu.ec/bitstream/15000/4566/1/CD-4187.pdf
,consulta realizada 30-Oct-14.
[6] Sociedad Andaluza de Matem´aticas, FUNDAMEN-TOS
DE LAS REDES NEURONALES, [En l´ınea]
http://thales.cica.es/rd/Recursos/rd98/TecInfo/07/capitulo2.html 31-
Oct-14,consulta realiza 31-Oct-2014.
[7] L. Espino, INTRODUCCIO´N A LAS REDES NEU-RONALES,
Instituto Tecnol´ogico de Costa Rica. [En l´ınea]
http://luisespino.com/pub/introduccionredesneuronales/luisespino.pdf,consulta
realizada 01-Oct-2014.
[8] J. Sotos, APLICACIO´N DE REDES NEURONALES ARTIFICIALES
EN EL PROCESADO VE´RSATIL DE SEN˜ALES ELECTROCAR-DIOGRA
´FICAS, Universidad Polite´cnica de Valencia. [En l´ınea]
https://riunet.upv.es/bitstream/handle/10251/17530/tesisUPV3934.pdf,
consulta realizada 01-Oct-2014
[9] Mathworks, Satlin,[En l´ınea] http://www.mathworks.com/help/nnet/ref/
satlin.html ,consulta realizada 01-Oct-14.
[10] Mathworks,Satlins,[En l´ınea] http://www.mathworks.com/help/nnet/ref/
satlins.html ,consulta realizada 01-Oct-14.
[11] Wanadoo,Redes de Hopfield ,[En l´ınea]
http://perso.wanadoo.es/alimanya/hopfield.htm ,consulta realizada
01-Oct-14.
Juan Carlos Gonz´alez O. Student in Systems En-gineering
from the Universidad Nacional de Loja.
Loja- Ecuador. 2014.
Borys Sarango R. Student in Systems Engineer-ing
from the Universidad Nacional de Loja. Loja-
Ecuador. 2014.