1 
Incomplete Patron Recognize with Satlin and Satlins 
Activation Function in Matlab 
Reconocimiento de Patrones Incomple...
2 
se da por igual, ya que esta limitado a la intensidad en la 
composici´on qu´ımica(peso sin´aptico) de cada dendrita, p...
3 
capas. Dentro de una capa, las neuronas suelen ser del mismo 
tipo. Se pueden distinguir tres tipos de capas:[5] 
 De e...
4 
Una red Hopfield se comporta como una memoria de 
puntos estables (salidas deseadas) y no requiere entradas 
deseadas. ...
5 
Ahora se procede a pasar esta matriz b1 por la funci´on 
de activaci´on satlins lo que permitir´a limitar las salidas q...
6 
El c´odigo completo del script en matlab se lo puede 
descargar de aqu´ı: https://github.com/juancaboy22/Hopfield-and- ...
Próxima SlideShare
Cargando en…5
×

Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satlin y Satlins en Matlab

380 visualizaciones

Publicado el

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.

Publicado en: Ingeniería
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
380
En SlideShare
0
De insertados
0
Número de insertados
8
Acciones
Compartido
0
Descargas
10
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satlin y Satlins en Matlab

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

×