funciones satlin y satlins

6
Funciones de Transferencia Satlin y Satlins Aplicadas para Reconocimiento de D´ ıgitos a Trav´ es de Matlab Sairy Chamba 1 , Juan Pinz ´ on 2 , Tutor: Henry Paz 3 1 Carrera de Ingenier´ ıa en Sistemas, Universidad Nacional de Loja, Loja, Ecuador {sfchambaj, jgpinzong, hpaz@unl}@unl.edu.ec Abstract: In this paper is explained the Satlin and Satlins Transfer functions, through the aplication of this in matlab. It also gives a brief explanation on Hopfield neural networks which use the transfer function satlins default, as well as an example of recognition of digits in matlab will be done using the same. Key words: Neural Network, Satlin, Satlins, Hop- field Network. Resumen: En este documento se explica, las fun- ciones de transferencia: satlin y satlins, a trav´ es de la aplicaci´ on de las mismas en matlab. Tambi´ en se da una breve explicaci´ on sobre las redes neuronales de hopfield las cuales usan la funcion de transferencia satlins de manera predeterminada, asi como tambien se har´ a un ejemplo de reconocimiento de digitos en matlab usando las mismas. Palabras Clave: Red Neuronal, Satlin, Satlins, Red de Hopfield. 1 INTRODUCCI ´ ON El presente art´ ıculo t´ ecnico tiene la siguiente estruc- tura: estado del arte, resultados y conclusiones. El estado del arte se define en las 5 primeras sec- ciones: Secci´ on1: Neurona biol´ ogica y artificial, describe la estructura neuronal. Secci´ on2: Funciones de activaci´ on o trasnferen- cia, se realiza una comparaci´ on de las funciones de activaci´ on m´ as utilizadas. Secci´ on3: Funciones satlin y satlins, describe la aplicaci´ on de estas funciones. Secci´ on4: Redes neuronales de hopfield, describe la arquitectura de una red de hopfield. Secci´ on5: Dise˜ no de una red de Hopfield, de- scribe el dise ˜ no de la red de hopfield. Resultados del ejercicio pr´ actico: Secci´ on 7: Reconocimiento de D´ ıgitos impares con Hopfield, se presenta la soluci´ on en matlab y resultados obtenidos. Secci´ on 8: Conclusiones. 2 NEURONA BIOL ´ OGICA Y ARTIFICIAL Desde el punto de vista estructural, la mayor parte de las neuronas consisten en un cuerpo celular, que pre- senta una serie de ramificaciones denominadas den- dritas y una ramificaci´ on m´ as larga que se denomina ax´ on (Figura 1). El ax´ on transporta la se˜ nal de sal- ida de la neurona hacia otras neuronas. Por otro lado, las entradas le llegan a trav´ es de las dendritas, proce- dentes de los axones de otras c´ elulas. Las conexiones existentes entre el ax´ on de una neurona y la dendrita de otra se denominan sinapsis (M. Galipienso and Or- tega, 2003). Figure 1: Similitud entre neuronas biol´ ogicas y artificiales (M. Galipienso and Ortega, 2003) En En 1943 McCulloch and Pitts presentaron un mod- elo abstracto y simple de una neurona artificial. El modelo est´ a compuesto por un vector de pesos w = (w 1 , ..., w d ) equivalente a las conexiones sin´ apticas en una neurona real, w 0 es el umbral de acci´ on o acti- vaci´ on, el vector x es la entrada, y el escalar y la sal-

Upload: juan-pinzon

Post on 17-Aug-2015

32 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Funciones satlin y satlins

Funciones de Transferencia Satlin y Satlins Aplicadas paraReconocimiento de Dıgitos a Traves de Matlab

Sairy Chamba1, Juan Pinzon2, Tutor: Henry Paz3

1Carrera de Ingenierıa en Sistemas, Universidad Nacional de Loja, Loja, Ecuador{sfchambaj, jgpinzong, hpaz@unl}@unl.edu.ec

Abstract: In this paper is explained the Satlin andSatlins Transfer functions, through the aplicationof this in matlab. It also gives a brief explanationon Hopfield neural networks which use the transferfunction satlins default, as well as an example ofrecognition of digits in matlab will be done using thesame.Key words: Neural Network, Satlin, Satlins, Hop-field Network.

Resumen: En este documento se explica, las fun-ciones de transferencia: satlin y satlins, a traves dela aplicacion de las mismas en matlab. Tambien seda una breve explicacion sobre las redes neuronalesde hopfield las cuales usan la funcion de transferenciasatlins de manera predeterminada, asi como tambiense hara un ejemplo de reconocimiento de digitos enmatlab usando las mismas.Palabras Clave: Red Neuronal, Satlin, Satlins, Redde Hopfield.

1 INTRODUCCION

El presente artıculo tecnico tiene la siguiente estruc-tura: estado del arte, resultados y conclusiones.

El estado del arte se define en las 5 primeras sec-ciones:• Seccion1: Neurona biologica y artificial, describe

la estructura neuronal.

• Seccion2: Funciones de activacion o trasnferen-cia, se realiza una comparacion de las funcionesde activacion mas utilizadas.

• Seccion3: Funciones satlin y satlins, describe laaplicacion de estas funciones.

• Seccion4: Redes neuronales de hopfield, describela arquitectura de una red de hopfield.

• Seccion5: Diseno de una red de Hopfield, de-scribe el diseno de la red de hopfield.

Resultados del ejercicio practico:

• Seccion 7: Reconocimiento de Dıgitos imparescon Hopfield, se presenta la solucion en matlaby resultados obtenidos.

• Seccion 8: Conclusiones.

2 NEURONA BIOLOGICA YARTIFICIAL

Desde el punto de vista estructural, la mayor parte delas neuronas consisten en un cuerpo celular, que pre-senta una serie de ramificaciones denominadas den-dritas y una ramificacion mas larga que se denominaaxon (Figura 1). El axon transporta la senal de sal-ida de la neurona hacia otras neuronas. Por otro lado,las entradas le llegan a traves de las dendritas, proce-dentes de los axones de otras celulas. Las conexionesexistentes entre el axon de una neurona y la dendritade otra se denominan sinapsis (M. Galipienso and Or-tega, 2003).

Figure 1: Similitud entre neuronas biologicas y artificiales(M. Galipienso and Ortega, 2003)

En En 1943 McCulloch and Pitts presentaron un mod-elo abstracto y simple de una neurona artificial. Elmodelo esta compuesto por un vector de pesos w =(w1, ...,wd) equivalente a las conexiones sinapticas enuna neurona real, w0 es el umbral de accion o acti-vacion, el vector x es la entrada, y el escalar y la sal-

Page 2: Funciones satlin y satlins

ida de la unidad. La actividad consiste en generar unaunica salida y a partir de la aplicacion de la funcionde activacion f a la suma ponderada entre el vec-tor de entrada x = (x1, ...,xm) y el vector de pesosw = (w1, ..,wd), mas un sesgo w0, obteniendose lasiguiente expresion (McCulloch and Pitts, 1943) :

y = f (m

∑i=1

wixi +w0)

La funcion de activacion f debe elegirse tomandoen cuenta el problema que la neurona debera resolver.

3 FUNCIONES DE ACTIVACIONO TRANSFERENCIA

Una neurona artificial tiene diferentes estados de ac-tivacion, que pueden ir desde 2 estados (al igual queuna neurona biologica) hasta varios estados compren-didos en un rango determinado. La funcion de acti-vacion calcula el estado de actividad de una neurona,transformando la entrada global (a excepcion del um-bral) en un valor de activacion, cuyo rango general-mente va de 0 a 1 , o de -1 a 1. Estos valores indicanque una neurona puede estar totalmente inactiva (0 o1), o activa (1) (Matich, 2001).Existen diversos tipos de funciones de transferencia,entre estos tenemos (Buitrago and Munoz, 2000):

• Funcion de Tranferencia Escalon

• Funcion de Tranferencia Lineal

• Funcion de Tranferencia No lineal

• Funcion de Tranferencia de Saturacion

• Funcion de Tranferencia Competitiva

4 FUNCIONES SATLIN YSATLINS

Son funciones de transferencia de Satruracion, yse caracterizan porque saturan cualquier valor porencima o debajo de los lımites. El lımite de saturacionpara Satlin es 0,1 y para Satlins es o -1,1 (ESCOM,2009).

4.1 SATLIN

Se caracteriza porque la entrada a la funcion de trans-ferencia es del tipo real, y la salida es real y lin-eal pero limitada al intervalo de 0 a 1. Es decir,se satura cualquier valor por encima o debajo de loslımites(ESCOM, 2009).

Figure 2: Funcion SATLIN (ESCOM, 2009)

En matlab la sintaxis de la funcion satlin es la sigu-iente:A = satlin(N,FP)

DondeN es una matriz de dimensiones SxQ de entradas dered.FP Parametros de funcion que pueden ser opcionaleso ignorados

4.1.1 Ejemplo

El codigo para crear un plot de la funcion satlin enmatlab es:

n = -5:0.1:5;a = satlin(n);plot(n,a)El Algoritmo que sigue la funcion satlin es elsiguiente:

a = satlin(n) = 0, i f n <= 0 (1)

n, i f 0 <= n <= 1 (2)

1, i f 1 <= n (3)

4.2 SATLINS

SATLINS Es una Funcion de Trasferencia Linealde Saturacion Simetrica que excita a la red, la cualregresa los valores de entrada reales para entradasque existen entre –1 y +1. Mas alla de estas regioneslos valores de entrada se saturan a sus mınimos ymaximos valores (-1 y +1) (ESCOM, 2009). Comose puede observar en la siguiente grafica.a = satlins (n)a = satlins (w*p+b)Donde: n es el vector de entrada.w son los pesos.b es el bias.a es el vector de salida.

2

Page 3: Funciones satlin y satlins

Figure 3: Funcion SATLINS (ESCOM, 2009)

En matlab la sintaxis de la funcion SATLINS esla siguiente:

A = satlins(N,FP)

Donde:N es la matriz S x Q de entradas de la redFP Parametro de funcion (opcionales, pueden serignorados)y devuelve A, una matriz S x Q de elementos de Nentre [-1, 1].

4.2.1 Ejemplo

El codigo para crear un plot de la funcion de transfer-encia satlins en matlab es:

n = -5:0.1:5;a = satlins(n);

plot(n,a)

El algoritmo que sigue la funcion satlins es elsiguiente:

satlins(n) =−1, i f n <=−1 (4)

n, i f −1 <= n <= 1 (5)

1, i f 1 <= n (6)

Se puede crear una red estandar que use satlins uti-lizando el comando newhop que crea una red neuronalde hopfield.

5 REDES NEURONALES DEHOPFIELD

La red de hopfield es de tipo recurrente y completa-mente iterconectada, pues la salida de dicha red esdinamica, lo que indica que despues de aplicar unanueva entrada, la salida es calculada y realimentada

para modificar la entrada. Esta recurrencia asegurala estabilidad haciendo que sucesivas iteraciones,produzcan cambios de salida cada vez mas pequenas,hasta lograr que las salidas sean constantes (Bonifa-cio, 2007).

La red de Hopfield utiliza la funcion de transferencialineal de saturacion simetrica (Satlins). Para lasentradas menores a -1 satlins produce -1. Para lasentradas en el rango de -1 a +1 simplemente devuelveel valor de entrada. Para entradas superiores a 1produce 1. A continuacion se presenta la arquitecturade la red (Demuth and Hagan, 2008):

Figure 4: Arquitectura de una red Hopfield (Demuth andHagan, 2008)

El diseno de una red Hopfield en matlab se ejecuta dela siguiente manera:

net=newhop(T); donde T es una matriz de vectoresque representa un conjunto de puntos de equilibrio.

A continuacion, se asegura de que la red este disenadaen los puntos de equilibrio. Debido a que las redes deHopfield no tienen entradas el segundo argumento dela red es una matriz de celdas vacıas, cuyas columnasindican el numero de pasos de tiempo.

Ai = {T};[Y,Pf,Af] = net(cell(1,2),{},Ai);Y{2}

3

Page 4: Funciones satlin y satlins

6 DISENO DE UNA RED DEHOPFIELD

El objetivo aquı es el diseno de una red que almacenaun conjunto especıfico de puntos de equilibrio de talmanera que, cuando se proporciona una condicion ini-cial, la red con el tiempo se detiene en un punto deldiseno. La red es recursiva en el sentido que la sal-ida realimenta a la entrada, una vez que la red estaen funcionamiento. Con suerte, la salida de la red seinstalara en uno de los puntos de diseno originales.El metodo de diseno presentado no es perfecto porquela red disenada puede tener puntos de equilibrio falsosno deseados ademas de los deseados. Sin embargo,el numero de estos puntos no deseados se hace tanpequeno como sea posible por el metodo de diseno.Ademas, el dominio de atraccion de los puntos deequilibrio disenados es tan grande como sea posible.El metodo de diseno se basa en un sistema de primerorden de ecuaciones diferenciales ordinarias linealesque se definen en un hipercubo cerrado del espacio deestado. Las soluciones existen en el lımite del hiper-cubo. Estos sistemas tienen la estructura basica delmodelo de Hopfield, pero son mas faciles de enten-der y disenar que el modelo de Hopfield(Demuth andHagan, 2008).

6.1 Diseno(Newhop)

Dado un conjunto de puntos de equilibrio destino rep-resentados como una matriz T de vectores, newhopdevuelve pesos y umbrales para una red recursiva. Lared esta garantizada para tener puntos de equilibrioestable en los vectores objetivo, pero podrıa contenerotros puntos de equilibrio falsos tambien. El numerode estos puntos no deseados se hace tan pequenocomo sea posible por el metodo de diseno(Demuthand Hagan, 2008).

Se considera el siguiente ejemplo de diseno.Suponga que desea disenar una red con dos puntosestables en un espacio tridimensional.

T = [-1 -1 1; 1 -1 1]’T =-1 1-1 -11 1

Se puede ejecutar el diseno con:

net = newhop (T);

A continuacion, debemos asegurarnos de que la

red disenada esta en esos dos puntos, de la siguientemanera. Debido a que las redes de Hopfield notienen entradas, el segundo argumento de la red esun arreglo de celdas vacıo cuyas columnas indican elnumero de incrementos de tiempo.

Ai = {T};[Y,Pf,Af] = net(cell(1,2),{},Ai);Y{2}

Esto da como resultado-1 1-1 -11 1

Ası, la red de hecho ha sido disenada para serestable en sus puntos de diseno. A continuacion,puede intentar otra condicion de entrada que no es unpunto de diseno, tal como:

Ai = [-0,9; -0.8; 0,7];Los puntos estan razonablemente cerca del primerpunto de diseno, por lo que se podrıa anticipar que lared serıa convergente a ese primer punto.Para ver si esto ocurre, ejecute el siguiente codigo.

[Y, Pf, Af] = net (celda (1,5), {}, Ai);Y {end}esto da como resultado

-1-11

Por lo tanto, una condicion original cerca de unpunto de diseno hizo converger a ese punto.Esto es, por supuesto, el deseo para todas esasentradas. Desafortunadamente, incluso los disenosmas conocidos de Hopfield ocasionalmente incluyenpuntos estables falso no deseados que atraen lasolucion.

7 RECONOCIMIENTO DEDIGITOS IMPARES CONHOPFIELD

Problema: Se necesita identificar los primeros cincodıgitos impares (1,3,5,7). Para respresentar cadadıgito es necesario establecerlos dentro de un arreglode tamano 10*7.Se dara el valor -1 para las celdas de color negro , y

4

Page 5: Funciones satlin y satlins

Figure 5: Primeros cinco dıgitos imparesArreglos de 10*7

el valor 1 para las celdas de color blanco. Cada ar-reglo de 10*7 debera luego transformarse a un vectorde 70*1. Los vectores de nuevas dimensiones se de-nominaran como: DI1, DI2, DI3, DI4, DI5, respecti-vamente.

7.1 RESULTADOS

Solucion en Matlab: Para el reconocimiento delos cinco vectores se aplicara una red Hopfield.Primeramente obtenemos los arreglos iniciales dedimensiones 10*7, los cuales estan denominadoscomo: D1, D2, D3, D4 y D5. La representacion delprimer arreglo se muestra a continuacion:

D1=

[1 1 1 1 1 1 11 1 1 1 −1 1 11 1 1 −1 −1 1 11 1 −1 1 −1 1 11 1 1 1 −1 1 11 1 1 1 −1 1 11 1 1 1 −1 1 11 1 1 1 −1 1 11 1 −1 −1 −1 −1 11 1 1 1 1 1 1]

Transformamos los arreglos de 10*7 a vectores de70*1:DI1=reshape(D1’,70,1);DI2=reshape(D2’,70,1);DI3=reshape(D3’,70,1);DI4=reshape(D4’,70,1);DI5=reshape(D5’,70,1);

D = [ DI1 DI2 DI3 DI4 DI5 ];net = newhop( D );net.lw

A continuacion verificamos el reconocimiento delos vectores DI2 y DI4.nVect = 1; %verificando el segundo dıgitoD2r = sim( net , nVect , [] , DI2 ) ;any( DI2 - D2r ) % vectores iguales

nVeces = 100;

Alteramos el cuarto dıgito para simular la presenciade ruido:

D4ruido=

[1 1 1 1 1 1 11 −1 1 −1 −1 1 11 1 1 1 1 −1 −11 1 1 1 1 1 −11 1 1 −1 1 −1 11 1 1 1 −1 1 11 1 1 1 1 −1 11 1 1 −1 1 1 11 1 1 −1 1 1 11 1 −1 1 1 1 1]

DI4ruido=reshape(D4ruido’,70,1);DI4ruido = DI4ruido ;

Para corregir el vector ruidoso hacemos uso de lared hopfield:

Y = sim( net , { nVect nVeces } , { } , DI4ruido ) ;Y 100 % muestra la ultima simulacionany( DI4 - Y )

Se reconoce correctamente el segundo dıgito impar, yesto se verifica con el comando any(DI2−D2r), estedevuelve un valor 0, que indica que se ha alcando elpunto de quilibrio deseado.

ans= 0El vector ruidoso es entrenado hasta alcanzar el puntode equilibrio con respecto al cuarto dıgito impar.Losvalores son arrojados en forma de un vector 70*1.ans= (vector 70*1)

El codigo del ejemplo realizado se encuentraalojado en un repositorio github la direccion delmismo es: https://github.com/pinzon1992/SATLINSMATLAB, y para clonarlo en git el en-lace es: https://github.com/pinzon1992/SATLINSMATLAB.git

8 CONCLUSIONES

• La sintaxis newhop(T) en matlab, utiliza lafuncion de transferencia satlins y devuelve unanueva red neuronal recurrente Hopfield con pun-tos estables en el vector T.

• En el ejemplo de reconocimiento de dıgitos im-pares, una vez que finaliza la etapa de aprendizaje,

5

Page 6: Funciones satlin y satlins

la red proporciona una salida correcta para cadapatron de entrada dado, incluso si el vector es rui-doso.

• La red de Hopfield utiliza por defecto la funcionde transferencia Satlins ya que esta necesita sat-urarse para obtener los puntos de equilibrio de lamisma y llegar al estado deseado.

REFERENCIAS

Bonifacio, M. (2007). Redes neuronales y Sistemas Bor-rosos. Alfa y Omega., 2da edicion edition.

Buitrago, M. and Munoz, C. (2000). Tutorial sobre re-des neuronales aplicadas en ingenierıa electrica y suimplementacion en un sitio web. Universidad Tec-nologica de Pereira.

Demuth, H. and Hagan, M. (2008). Neural networktoolboxTM 6. User’s guide.

ESCOM (2009). Funciones de matlab en redes hopfield.escuela superior de computo. mexico.

M. Galipienso, M. Q. and Ortega, M. (2003). Inteligen-cia artificial: modelos, tecnicas y areas de aplicacion.Editorial Paraninfo.

Matich, D. (2001). Redes Neuronales: Conceptos Basicosy Aplicaciones. Catedra de Informatica Aplicada a laIngenierıa de Procesos–Orientacion I.

McCulloch, W. and Pitts, W. (1943). A logical calculus ofideas immanent in nervous activity.bulletin of mathe-matical biophysics.

BIOGRAFIA

Sairy Chamba profes-sional training for Engineering degree inSystems Engineering from UniversidadNacional de Loja, Loja, Ecuador in 2014.

Juan Pinzon professionaltraining for Engineering degree in Sys-tems Engineering from Universidad Na-cional de Loja, Loja, Ecuador in 2014.

6