Sunteți pe pagina 1din 6

Funciones de Transferencia Satlin y Satlins Aplicadas para

Reconocimiento de Dgitos a Traves de Matlab


Sairy Chamba1 , Juan Pinzon2 , Tutor: Henry Paz3
1 Carrera

de Ingeniera 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, Hopfield Network.
Resumen: En este documento se explica, las funciones de transferencia: satlin y satlins, a traves de
la aplicacion de las mismas en matlab. Tambien se
da una breve explicacion sobre las redes neuronales
de hopfield las cuales usan la funcion de transferencia
satlins de manera predeterminada, asi como tambien
se hara un ejemplo de reconocimiento de digitos en
matlab usando las mismas.
Palabras Clave: Red Neuronal, Satlin, Satlins, Red
de Hopfield.

Seccion 7: Reconocimiento de Dgitos impares


con Hopfield, se presenta la solucion en matlab
y resultados obtenidos.
Seccion 8: Conclusiones.

NEURONA BIOLOGICA
Y
ARTIFICIAL

Desde el punto de vista estructural, la mayor parte de


las neuronas consisten en un cuerpo celular, que presenta una serie de ramificaciones denominadas dendritas y una ramificacion mas larga que se denomina
axon (Figura 1). El axon transporta la senal de salida de la neurona hacia otras neuronas. Por otro lado,
las entradas le llegan a traves de las dendritas, procedentes de los axones de otras celulas. Las conexiones
existentes entre el axon de una neurona y la dendrita
de otra se denominan sinapsis (M. Galipienso and Ortega, 2003).

INTRODUCCION

El presente artculo tecnico tiene la siguiente estructura: estado del arte, resultados y conclusiones.
El estado del arte se define en las 5 primeras secciones:
Seccion1: Neurona biologica y artificial, describe
la estructura neuronal.
Seccion2: Funciones de activacion o trasnferencia, se realiza una comparacion de las funciones
de activacion mas utilizadas.
Seccion3: Funciones satlin y satlins, describe la
aplicacion de estas funciones.
Seccion4: Redes neuronales de hopfield, describe
la arquitectura de una red de hopfield.
Seccion5: Diseno de una red de Hopfield, describe el diseno de la red de hopfield.
Resultados del ejercicio practico:

Figure 1: Similitud entre neuronas biologicas y artificiales


(M. Galipienso and Ortega, 2003)

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

ida de la unidad. La actividad consiste en generar una


u nica salida y a partir de la aplicacion de la funcion
de activacion f a la suma ponderada entre el vector de entrada x = (x1 , ..., xm ) y el vector de pesos
w = (w1 , .., wd ), mas un sesgo w0 , obteniendose la
siguiente expresion (McCulloch and Pitts, 1943) :
m

y = f ( wi xi + w0 )
i=1

La funcion de activacion f debe elegirse tomando


en cuenta el problema que la neurona debera resolver.
Figure 2: Funcion SATLIN (ESCOM, 2009)

FUNCIONES DE ACTIVACION
O TRANSFERENCIA

En matlab la sintaxis de la funcion satlin es la siguiente:


A = satlin(N,FP)
Donde
N es una matriz de dimensiones SxQ de entradas de
red.
FP Parametros de funcion que pueden ser opcionales
o ignorados

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

4.1.1

El codigo para crear un plot de la funcion satlin en


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

Funcion de Tranferencia Escalon


Funcion de Tranferencia Lineal
Funcion de Tranferencia No lineal
Funcion de Tranferencia de Saturacion
Funcion de Tranferencia Competitiva

FUNCIONES SATLIN Y
SATLINS

4.2

Son funciones de transferencia de Satruracion, y


se caracterizan porque saturan cualquier valor por
encima o debajo de los lmites. El lmite de saturacion
para Satlin es 0,1 y para Satlins es o -1,1 (ESCOM,
2009).

4.1

Ejemplo

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

(1)

n, i f 0 <= n <= 1

(2)

1, i f 1 <= n

(3)

SATLINS

SATLINS Es una Funcion de Trasferencia Lineal


de Saturacion Simetrica que excita a la red, la cual
regresa los valores de entrada reales para entradas
que existen entre 1 y +1. Mas alla de estas regiones
los valores de entrada se saturan a sus mnimos y
maximos valores (-1 y +1) (ESCOM, 2009). Como
se 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.

SATLIN

Se caracteriza porque la entrada a la funcion de transferencia es del tipo real, y la salida es real y lineal pero limitada al intervalo de 0 a 1. Es decir,
se satura cualquier valor por encima o debajo de los
lmites(ESCOM, 2009).

para modificar la entrada. Esta recurrencia asegura


la estabilidad haciendo que sucesivas iteraciones,
produzcan cambios de salida cada vez mas pequenas,
hasta lograr que las salidas sean constantes (Bonifacio, 2007).
La red de Hopfield utiliza la funcion de transferencia
lineal de saturacion simetrica (Satlins). Para las
entradas menores a -1 satlins produce -1. Para las
entradas en el rango de -1 a +1 simplemente devuelve
el valor de entrada. Para entradas superiores a 1
produce 1. A continuacion se presenta la arquitectura
de la red (Demuth and Hagan, 2008):

Figure 3: Funcion SATLINS (ESCOM, 2009)

En matlab la sintaxis de la funcion SATLINS es


la siguiente:
A = satlins(N,FP)
Donde:
N es la matriz S x Q de entradas de la red
FP Parametro de funcion (opcionales, pueden ser
ignorados)
y devuelve A, una matriz S x Q de elementos de N
entre [-1, 1].
4.2.1

Ejemplo

El codigo para crear un plot de la funcion de transferencia satlins en matlab es:


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

Figure 4: Arquitectura de una red Hopfield (Demuth and


Hagan, 2008)

El algoritmo que sigue la funcion satlins es el


siguiente:
satlins(n) = 1, i f n <= 1

(4)

n, i f 1 <= n <= 1

(5)

1, i f 1 <= n

(6)

El diseno de una red Hopfield en matlab se ejecuta de


la siguiente manera:
net=newhop(T); donde T es una matriz de vectores
que representa un conjunto de puntos de equilibrio.

Se puede crear una red estandar que use satlins utilizando el comando newhop que crea una red neuronal
de hopfield.

A continuacion, se asegura de que la red este disenada


en los puntos de equilibrio. Debido a que las redes de
Hopfield no tienen entradas el segundo argumento de
la red es una matriz de celdas vacas, cuyas columnas
indican el numero de pasos de tiempo.

REDES NEURONALES DE
HOPFIELD

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

La red de hopfield es de tipo recurrente y completamente iterconectada, pues la salida de dicha red es
dinamica, lo que indica que despues de aplicar una
nueva entrada, la salida es calculada y realimentada

DE UNA RED DE
DISENO
HOPFIELD

red disenada esta en esos dos puntos, de la siguiente


manera. Debido a que las redes de Hopfield no
tienen entradas, el segundo argumento de la red es
un arreglo de celdas vaco cuyas columnas indican el
numero de incrementos de tiempo.

El objetivo aqu es el diseno de una red que almacena


un conjunto especfico de puntos de equilibrio de tal
manera que, cuando se proporciona una condicion inicial, la red con el tiempo se detiene en un punto del
diseno. La red es recursiva en el sentido que la salida realimenta a la entrada, una vez que la red esta
en funcionamiento. Con suerte, la salida de la red se
instalara en uno de los puntos de diseno originales.
El metodo de diseno presentado no es perfecto porque
la red disenada puede tener puntos de equilibrio falsos
no deseados ademas de los deseados. Sin embargo,
el numero de estos puntos no deseados se hace tan
pequeno como sea posible por el metodo de diseno.
Ademas, el dominio de atraccion de los puntos de
equilibrio disenados es tan grande como sea posible.
El metodo de diseno se basa en un sistema de primer
orden de ecuaciones diferenciales ordinarias lineales
que se definen en un hipercubo cerrado del espacio de
estado. Las soluciones existen en el lmite del hipercubo. Estos sistemas tienen la estructura basica del
modelo de Hopfield, pero son mas faciles de entender y disenar que el modelo de Hopfield(Demuth and
Hagan, 2008).

6.1

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

Esto da como resultado


-1 1
-1 -1
11
As, la red de hecho ha sido disenada para ser
estable en sus puntos de diseno. A continuacion,
puede intentar otra condicion de entrada que no es un
punto de diseno, tal como:
Ai = [-0,9; -0.8; 0,7];
Los puntos estan razonablemente cerca del primer
punto de diseno, por lo que se podra anticipar que la
red sera 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

Diseno(Newhop)

Dado un conjunto de puntos de equilibrio destino representados como una matriz T de vectores, newhop
devuelve pesos y umbrales para una red recursiva. La
red esta garantizada para tener puntos de equilibrio
estable en los vectores objetivo, pero podra contener
otros puntos de equilibrio falsos tambien. El numero
de estos puntos no deseados se hace tan pequeno
como sea posible por el metodo de diseno(Demuth
and Hagan, 2008).

-1
-1
1
Por lo tanto, una condicion original cerca de un
punto de diseno hizo converger a ese punto.
Esto es, por supuesto, el deseo para todas esas
entradas. Desafortunadamente, incluso los disenos
mas conocidos de Hopfield ocasionalmente incluyen
puntos estables falso no deseados que atraen la
solucion.

Se considera el siguiente ejemplo de diseno.


Suponga que desea disenar una red con dos puntos
estables en un espacio tridimensional.
T = [-1 -1 1; 1 -1 1]
T=
-1 1
-1 -1
1 1

RECONOCIMIENTO DE

DIGITOS
IMPARES CON
HOPFIELD

Problema: Se necesita identificar los primeros cinco


dgitos impares (1,3,5,7). Para respresentar cada
dgito es necesario establecerlos dentro de un arreglo
de tamano 10*7.
Se dara el valor -1 para las celdas de color negro , y

Se puede ejecutar el diseno con:


net = newhop (T);
A continuacion, debemos asegurarnos de que la

nVeces = 100;
Alteramos el cuarto dgito para simular la presencia
de ruido:
D4ruido=

Figure 5: Primeros cinco dgitos impares

Arreglos de 10*7

[1
1
1
1
1
1
1
1
1
1

el valor 1 para las celdas de color blanco. Cada arreglo de 10*7 debera luego transformarse a un vector
de 70*1. Los vectores de nuevas dimensiones se denominaran como: DI1, DI2, DI3, DI4, DI5, respectivamente.

7.1

RESULTADOS

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

1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1]

Para corregir el vector ruidoso hacemos uso de la


red hopfield:
Y = sim( net , { nVect nVeces } , { } , DI4ruido ) ;
Y 100 % muestra la u ltima simulacion
any( DI4 - Y )

D1=
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
1
1
1
1
1

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

Solucion en Matlab: Para el reconocimiento de


los cinco vectores se aplicara una red Hopfield.
Primeramente obtenemos los arreglos iniciales de
dimensiones 10*7, los cuales estan denominados
como: D1, D2, D3, D4 y D5. La representacion del
primer arreglo se muestra a continuacion:

[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
1
1
1
1
1]

Se reconoce correctamente el segundo dgito impar, y


esto se verifica con el comando any(DI2 D2r), este
devuelve un valor 0, que indica que se ha alcando el
punto de quilibrio deseado.
ans= 0
El vector ruidoso es entrenado hasta alcanzar el punto
de equilibrio con respecto al cuarto dgito impar.Los
valores son arrojados en forma de un vector 70*1.
ans= (vector 70*1)

Transformamos los arreglos de 10*7 a vectores de


70*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);

El codigo del ejemplo realizado se encuentra


alojado en un repositorio github la direccion del
mismo es: https://github.com/pinzon1992/
SATLINSMATLAB, y para clonarlo en git el enlace es:
https://github.com/pinzon1992/
SATLINSMATLAB.git

D = [ DI1 DI2 DI3 DI4 DI5 ];


net = newhop( D );
net.lw

CONCLUSIONES

La sintaxis newhop(T) en matlab, utiliza la


funcion de transferencia satlins y devuelve una
nueva red neuronal recurrente Hopfield con puntos estables en el vector T.

A continuacion verificamos el reconocimiento de


los vectores DI2 y DI4.
nVect = 1; %verificando el segundo dgito
D2r = sim( net , nVect , [] , DI2 ) ;
any( DI2 - D2r ) % vectores iguales

En el ejemplo de reconocimiento de dgitos impares, una vez que finaliza la etapa de aprendizaje,

la red proporciona una salida correcta para cada


patron de entrada dado, incluso si el vector es ruidoso.
La red de Hopfield utiliza por defecto la funcion
de transferencia Satlins ya que esta necesita saturarse para obtener los puntos de equilibrio de la
misma y llegar al estado deseado.

REFERENCIAS
Bonifacio, M. (2007). Redes neuronales y Sistemas Borrosos. Alfa y Omega., 2da edicion edition.
Buitrago, M. and Munoz, C. (2000). Tutorial sobre redes neuronales aplicadas en ingeniera electrica y su
implementacion en un sitio web. Universidad Tecnologica de Pereira.
Demuth, H. and Hagan, M. (2008). Neural network
toolboxTM 6. Users guide.
ESCOM (2009). Funciones de matlab en redes hopfield.
escuela superior de computo. mexico.
M. Galipienso, M. Q. and Ortega, M. (2003). Inteligencia artificial: modelos, tecnicas y a reas de aplicacion.
Editorial Paraninfo.
Matich, D. (2001). Redes Neuronales: Conceptos Basicos
y Aplicaciones. Catedra de Informatica Aplicada a la
Ingeniera de ProcesosOrientacion I.
McCulloch, W. and Pitts, W. (1943). A logical calculus of
ideas immanent in nervous activity.bulletin of mathematical biophysics.

BIOGRAFIA

Sairy Chamba professional training for Engineering degree in


Systems Engineering from Universidad
Nacional de Loja, Loja, Ecuador in 2014.

Juan Pinzon professional


training for Engineering degree in Systems Engineering from Universidad Nacional de Loja, Loja, Ecuador in 2014.

S-ar putea să vă placă și