Вы находитесь на странице: 1из 6

1

Incomplete Patron Recognize with Satlin and Satlins


Activation Function in Matlab
Reconocimiento de Patrones Incompletos Mediante
Funciones de Activacion Satlin y Satlins en Matlab
J. Gonzalez, B. Sarango
jcgonzalezo@unl.edu.ec, bhsarangor@unl.edu.ec
tutor: H. Paz

AbstractIn 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.

de equilibrio en que se encuentra en su memoria, luego de


lo cual se aplica la funcion de activacion Satlin para obtener
los resultado deseados en base a la funcion de entrenamiento
hebbiano no supervisado.

II.
ResumenEn el presente artculo se estudian las funciones
de activacion Satlin y Satlins, haciendo un mayor e nfasis en la
funcion 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 patron
incompleto que ha sido ingresado, y se relaciona con el patron
almacenado en la memoria y lo asocia con el que mas se parezca.
Keywordsneural Networks, activation function, Satlin, Satlins,
Hopfield, matlab.
Palabras claves Redes neuronales, funcion activacion, Satlin,
Satlins, Hopfield, matlab.

I. I NTRODUCCI ON
Las redes Neuronales Artificiales RNA tiene su origen a
principios de la decada de los 50 nacio de la idea de tratar
de simular el comportamiento de las neuronas biologicas 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
sinapticos, una funcion de aprendizaje, funcion de activacion
el umbral y una salida.
Una funcion de activacion limita la amplitud de la salida de
una neurona, en este caso la funcion Satlin limita entre [o,1]
y Satlins tiene rangos de [-1,1]. Para las redes Hopfield que
se caracterizan por se monocapa, recursivas, metodo de aprendizaje no supervisado, y estas garantizan que entrenamiento
garantiza que las salidas son puntos de equilibrio.
Para el ejemplo planteado se pretende ingresar un patron
de numero (1,2,4) establecidos en vectores donde se utiliza 1
y -1 para representar su forma, de igual manera tendremos un
patron de numeros incompletos(mal dibujados) y se utilizara
una red Hopfield para que asocie el mismo con los puntos

G ENERALIDADES DE LAS R EDES NEURONALES


A RTIFICIALES

A. Neurona Biologica
Antes de adentrarse en el mundo de las redes neuronales
artificiales es necesario tener al menos las nociones basicas
de las neuronas biologicas.El cerebro tiene aproximadamente
100.000 millones de celulas llamadas neuronas que son responsables de todas las funciones mentales, se piensa que cada
neurona posee alrededor de 10.000 y 30.000 enlaces con las
demas que la rodean [1]. Una de las caractersticas mas impresionantes del cerebro es que a pesar de la destruccion constante
de algunas de sus neuronas, esto no influye mayormente en el
desarrollo de sus funciones.

Figura 1. Neurona biologica


A traves de la imagen Figura 1 se puede observar una
neurona biologica, la cual consta de axon, nucleo y dendritas;
el termino sinapsis hace referencia a la conexion de axon de
una neurona con las dendritas de otra, por medio de la cual
comparten informacion. Las neuronas comparten informacion
entre s, atravez de dos maneras: electrica y qumica. La
conexion qumica se produce cuando la informacion se
transmite variando la composicion qumica de la sinapsis, y
sera electrica si se propaga en el interior de la neuronal.
Cabe destacar que el proceso de aprendizaje neuronal no

se da por igual, ya que esta limitado a la intensidad en la


composicion qumica(peso sinaptico) de cada dendrita, por
tal razon algunas dendritas tendran mas actividad que otras.[2]

B. Neurona Artificial
Los estudios sobre neuronas artificiales se remontan a
principios de los anos 50, sin embargo, el mayor e xito en el
campo se vio en el ano 1958 con Frank Rosenblatt y su libro
Perceptron, donde se hacia mencion a la primera red neuronal
artificial orientada a la computacion. Para el ano 1969 Minsky
y Pappert publican el libro Perceptrons donde se describan
las limitaciones de los perceptrones aplicados a la resolucion
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 solucion a los
problemas de no linealidad [3].
En sntesis una neurona artificial intenta simular mediante
la representancion de modelos matematicos los aspectos
y comportamientos de una neurona biologica. 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
tendran pesos diferentes y seran procesadas generando en
su fase final una determinada salida. Como se describa
anteriormente a una neurona le pueden llegar muchas senales
de otras(sinapsis),estas sinapsis podran ser excitadoras(neurona
emisora activara a la neurona receptora ) o inhibidoras(neurona
emisora inhibira a la neurona receptora).

Funcion suma : suma algebraica de los valores de los


pesos sinapticos, multiplicados por los valores de las
entradas a la neurona.
Funcion de activacion: 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 lmite que representa el valor para el
cual la salida cambia de estado logico.
Funcion de aprendizaje: evento por el cual una red
neuronal modifica sus pesos en respuesta a una informacion de entrada.
Una salida: transforma el estado de activacion en una
senal de salida, la cual es enviada a traves de las
conexiones de salida a otras unidades de la red xj (t)[6]
En toda red neuronal se utiliza el mismo esquema, lo u nico
que va a variar es la funcion de activacion la cual en el
presente trabajo seran la satlin y satlins.
Debido a que hay muchos parametros 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.

Debido a que en las neuronas biologicas no todas las


conexiones entre axones y dendritas (sinapsis) tienen la
misma concentracion de iones, su conductividad es diferente,
de modo que una conexion tendra mayor preferencia sobre
otra con menor conduccion. Para reflejar esto se plantean una
serie de pesos en las conexiones de entrada, que ponderaran
las entradas definiendo el nivel de activacion de la celula [4].
De manera general una neurona artificial consta de:

Figura 3. Clasificacion de las RNA


Figura 2. Esquema de la neurona artificial

Grupo de entradas: xi
Pesos sinapticos: wi

1) Arquitectura de las RNA: La arquitectura de una RNA es


la estructura o patron de conexiones de la red, en general, las
neuronas suelen agruparse en unidades estructurales llamadas

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 senales procedentes del


entorno.
De salida: proporcionan la respuesta de la red a los
estmulos de la entrada.
Ocultas: no reciben ni suministran informacion al entorno (procesamiento interno de la red)

1) Satlin y Satlins: Satlin y Satlins son funciones de transferencia de neuronas artificiales. Las cuales calculan la salida
de una capa a partir de su entrada de red.[9,10]
Satlin: Funcion de saturacion lineal, para graficar una
funcion 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]

Generalmente las conexiones se realizan entre neuronas


de distintas capas, pero puede haber conexiones intracapa o
laterales y conexiones de realimentacion que siguen un sentido
contrario al de entrada-salida.
Figura 6. Funcion Satlin

Figura 4. Tipos de Arquitectura

C. Funciones de Activacion
Una funcion de activacion limita la amplitud de la salida
de una neurona puesto que aplana los lmites o el rango de
amplitud permisible de una senal de salida a un valor finito.[7]
Las neuronas artificiales tienen diferentes estados de activacion; algunas solamente dos, al igual, pero otras pueden
tomar cualquier valor dentro de un conjunto determinado. [8]

Figura 7. Grafica funcion satlin


Satlins: Funcion de saturacion lineal simetrica 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. Funcion Satlins

Figura 9. Grafica funcion satlins


D. Modelo de Red Neuronal de Hopfield

Figura 5. Funciones de activacion

Este modelo fue creado por Hopfield,quien gracias al


trabajo sobre neurofisiologa en invertebrados, desarrollo
un tipo de red neuronal autoasociativa.[11] Entre las
caractersticas principales de este tipo de red es que son
monocapa,recursivas,usa el metodo 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 aplicacion esta en el reconocimiento
de patrones, reconocimiento de imagenes, voz y problemas
de optimizacion.

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 e sta devuelve la
magnitud de los pesos y las polarizaciones, el entrenamiento
garantiza que las salidas son puntos de equilibrio, pero no
descarta la posible aparicion de otros puntos de equilibrio no
deseados.Su estructura esta compuesta de una capa de
funcion de activacion satlins y una realimentacion.[2]

Figura 12. Num 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;
permaneceran estables. Y es entonces cuando la capa media
transmite su patron de activacion a la capa de salidas, que lo
recibe sin modificacion alguna.

Para poder representar estos patrones en matlab, se lo hace


mediante la definicion de 3 vectores num1,num2,num4.

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 asociacion correcta y genere una
salida erronea.
Numero limitado de entradas: Es decir se almacena
demasiada informacion, lo que origina que durante su
funcionamiento la red converge hacia valores de salida
diferentes de los aprendidos.

Figura 13. Num 4

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 obtendra la matriz de
memoria asociativa la cual se obtiene multiplicando cada
vector por su traspuesta y restandole la matriz identidad
eye(25), notese que la matriz identidad debe ser de la misma
dimension de los vectores num1,num2,num4.
M=(num4*num4-eye(25))+(num1*num1eye(25))+(num2*num2-eye(25));
A. Fase de Recuperacion
Una vez definida nuestra memoria asociativa, se puede
recuperar algun patron que se desee comprobar su asociacion,
para lo cual se almacena en una variable el patron que se
desea recuperar. El patron que ingresaremos sera de numero
4 incompleto, que se asemeja a esta forma:

III. P ROGRAMA EN M ATLAB


Para la implementacion del ejemplo en matlab se diseno
una red Hopfield ya que la misma dentro de su esquema hace
uso de la funcion satlins.
La red neuronal de Hopfield esta disenada de tal forma que
debe identificar el patron de los numeros 1, 2 y 4 que estan
representados en una matriz en forma de estados de cuadrcula:
vaca -1 y cuadrcula llena 1.

Figura 11. Num 1

Figura 14. Patron 4 incompleto


Como se puede observar este patron se asemeja al
4, pero esta incompleto, lo que la red de hopfield hara
es compararlo con todos los patrones que haya aprendido
en su memoria asociativa y mostrar al final el patron asociado.
A este patron que se lo desea recuperar se lo almacenara en
una variable aux y se lo multiplicara por la matriz de memoria
asociativa M lo que dara como resultado una nueva matriz
b1.Se puede considerar a b1 como la primera interaccion en
busqueda de los puntos de equilibrio.
aux=num4mal;
b1=aux*M;

Ahora se procede a pasar esta matriz b1 por la funcion


de activacion satlins lo que permitira limitar las salidas que
tiene.

Figura 18. Convertir -1 en 0


Figura 15. Funcion de activacion
El resultado que producira este proceso lo podemos visualizar as:

Llevamos los datos a una matriz, ya que para poder ingresar


las cuadrculas tuvimos que ingresar los datos en forma de
vector.

Figura 16. Resultado de aplicar satlins


Ahora la matriz resultante b1 sera almacenada en una
variable aux, y multiplicamos aux*M(matriz de memoria) y se
la vuelve hacer pasar por la funcion de activacion, 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 definicion de la funcion de aprendizaje
hebbiano no supervisado que basicamente se resumen a un
ajuste de los pesos de las conexiones, en base a la correlacion
de los valores de activacion de las dos neuronas conectadas.[2]

Figura 19. Presentar datos en forma de matriz


Como se habia explicado, al principio se ingreso un
patron(el numero 4 incompleto), el resultado que se desea es
que en base a lo que ha aprendido la red de hopfield, asocie este
patron a recuperar al patron que tenga almacenado en memoria
que mas se aproxime, en este caso debera presentarnos el
patron del numero 4 completo.

Figura 20. Resultado final de red hopfield


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

Se demuestra que la red neuronal de hopfield ha aprendido


y que reconoce patrones.

El codigo completo del script en matlab se lo puede


descargar de aqu: https://github.com/juancaboy22/Hopfieldand-Satlins.

IV. C ONCLUSIONES
Hay un antes y un despues de la inteligencia artificial
desde que se publico el libro Perceptron de Rosenblatt,
hoy en da 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 disenar redes neuronales
artificiales, de una forma mas facil utilizando los comandos 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 algun patron ya aprendido anteriormente.
La funcion de activacion 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
numero de entradas puesto ya que la mala aplicacion
de estos factores haran que nuestra red converga hacia
valores de salida diferentes a los aprendidos.

[9]

Mathworks, Satlin,[En lnea] http://www.mathworks.com/help/nnet/ref/


satlin.html ,consulta realizada 01-Oct-14.
[10] Mathworks,Satlins,[En lnea] http://www.mathworks.com/help/nnet/ref/
satlins.html ,consulta realizada 01-Oct-14.
[11] Wanadoo,Redes
de
Hopfield
,[En
lnea]
http://perso.wanadoo.es/alimanya/hopfield.htm
,consulta
realizada
01-Oct-14.

Juan Carlos Gonzalez O. Student in Systems Engineering from the Universidad Nacional de Loja.
Loja- Ecuador. 2014.

R EFERENCES
[1]
[2]

[3]

[4]

[5]

[6]

[7]

[8]

J. Levy LAS REDES NEURONALES ARTIFICIALES, 1era ed.


La
Coruna, Espana: Netbiblo, 2008, consulta realizada 30-Oct-14.
E. Bonilla RECONOCIMIENTO DE CARACTERES MEDIANTE REDES NEURONALES CON MATLAB, ESPOL, [En linea] bibdigital.epn.edu.ec/bitstream/15000/5503/1/T2472.pdf, consulta realizada 28Oct-14.
F. L. Rosano, NEURONALES ARTIFICIALES, UNAM. [En lnea]
http:conceptos.sociales.unam.mx/conceptos final/598trabajo.pdf ,consulta realizada 28-Oct-14.
Universidad Nacional de Colombia. [En
L. Torres,EL PERCEPTRON,
lnea] http://disi.unal.edu.co/ lctorress/RedNeu/LiRna004.pdf ,consulta
realizada 29-Oct-14.

C.
Novillo
y
M.
Guano,
IMPLEMENTACION
DE

UN
SISTEMA
DE
DETECCION
DE
INTRUSOS
UTILIZANDO INTELIGENCIA ARTIFICIAL, ESPOL. [En lnea]
http://bibdigital.epn.edu.ec/bitstream/15000/4566/1/CD-4187.pdf
,consulta realizada 30-Oct-14.
Sociedad
Andaluza
de
Matematicas,
FUNDAMENTOS
DE
LAS
REDES
NEURONALES,
[En
lnea]
http://thales.cica.es/rd/Recursos/rd98/TecInfo/07/capitulo2.html
31Oct-14,consulta realiza 31-Oct-2014.

L.
Espino,
INTRODUCCION
A
LAS
REDES
NEURONALES, Instituto Tecnologico de Costa Rica. [En lnea]
http://luisespino.com/pub/introduccionredesneuronales/luisespino.pdf,consulta
realizada 01-Oct-2014.
DE REDES NEURONALES ARTIFICIALES
J. Sotos, APLICACION

EN EL PROCESADO VERSATIL
DE SENALES
ELECTROCAR
DIOGRAFICAS,
Universidad Politecnica de Valencia. [En lnea]
https://riunet.upv.es/bitstream/handle/10251/17530/tesisUPV3934.pdf,
consulta realizada 01-Oct-2014

Borys Sarango R. Student in Systems Engineering from the Universidad Nacional de Loja. LojaEcuador. 2014.

Вам также может понравиться