Ejemplo de Funciones logsig y tansig
Andrea Armijos
Ingenieria en Sistemas
Vanessa Erraez
Ingenieria en Sistemas
Resúmen
En el presente artículo abordará el tema de funciones de activación, las cuales permiten dar
mayor flexibilidad al sistema,y por ende mayor capacidad. En el presente trabajo se hará uso
de dos funciones muy importantes como lo son logarítmica sigmoidea (Logsig) y tangente
sigmoidal (Tansig). Los valores de entrada de estas dos funciones pueden oscilar entre menos
y más infinito; y las salidas que proporcionan la función Logsig esta dentro de un rango que va
de 0 a 1 y la función Tansig de -1 a 1.
Introducción
Una neurona artificial está formada por un sumador que
se encarga de sumar todas las entradas multiplicadas por las
respectivas sinapsis, un umbral exterior que determina el um-
bral por encima del cual la neurona se activa y una función
de activación, representada por f(n), donde la función de ac-
tivación puede ser una función lineal o no lineal de n, y es
escogida dependiendo de las especificaciones del problema
que la neurona tenga que resolver, en el presente trabajo se
utilizara función logarítmica sigmoidea (Logsig) y la función
tangente sigmoidal (Tansig).
Desarrollo
Redes Neuronales Artificiales
Las Redes Neuronales Supervisadas (RNS) son un
conjunto de algoritmos matemáticos que encuentran las
relaciones no lineales entre conjuntos de datos. Suelen
ser utilizadas comoherramientas para la predicción de
tendencias y como clasificadoras de conjuntos de datos.Se
denominan Neuronales porque están basadasen el fun-
cionamiento de una neurona biológica cuando procesa
información(Estévez, 2002).
El modelo de una neurona consta de:
Las entradas x e y.
Los pesos sinápticos w1 y w2 correspondientes a cada
entrada.
Un término aditivo b.
Una salida z. (Claudio Tablada, s.f.).
En la siguiente figura se muestra los elementos que
conforman una neurona artificial.
Figura 1: Modelo de una neurona artificial
Existen muchas formas de clasificcar a las neuronas,
las más utilizadas son según su arquitectura o sus métodos
de entrenamiento.
Arquitectura de una red neuronal
Una vez definida el tipo de neurona que se utilizar á en un
modelo de redes neuronales artificiales es necesario definir
la topología de la misma.
La organización y disposición de la s neuronas dentro de
una red neuronal se denomina topología, y viene dada por el
número de capas, la cantidad de neuronas por capa, el grad
o de conectividad, y el tipo de conexión entre neuronas.
Las neuronas suelen agruparse en unidades funcionales
denominadas capas. Se denomina capa de entrada a aquella
que esta compuesta por neuronas de entradas y por lo
tanto recibe info rmación procedente desde el exterior.
Análogamente, se denomina ca pa oculta y capa de salida a
aquellas capas que están compuestas por neuronas ocultas y
de salida respectivamente. Una red neuronal arti ficial esta
compuesta por una o más capas, las cuales se encuentran
Andrea Armijos-Vanessa Erraez Tutor: Ing Henry Paz
interconectadas entre sí(Bertona, 2005).
Aprendizaje de una neurona artificial
Durante la operatoria de una red neuronal podemos di stin-
guir claramente dos fases o modos de operación: la fase de
aprendizaje o ent renamiento, y la fase de operación o ejecu-
ción. Durante la primera fase, la fase de aprendizaje, la red es
entrenada para realizar un determinado ti po de procesamien-
to. Una vez alcanzado un nivel de entrenamiento adecuado,
se pa sa a la fase de oper ación, donde la red es utilizada
para llevar a cabo la tarea para la cual fue entrenada(Bertona,
2005).
Fase de entrenamiento
Una vez seleccionada el tipo de neurona artificial que se
utilizará en una red neuronal y determinada su topología
es ne cesario entrenarla para que la red pueda ser utilizada.
Partiendo de un conjunt o de pesos sinápticos aleatorio,
el proceso de aprendizaje busca un conjunto de pesos que
permitan a la red desarrollar correctamente una determinada
tarea. Durante el proceso de aprendizaje se va refinando
iterativamente la solución hasta alcanzar un nivel de
operación suficientemente bueno. (Bertona, 2005).
El proceso de parendizaje se divide en tres grupos:
• Aprendizaje supervisado. Se pr esenta a la red un
conjunto de patrones de entrada junt o con la salida esper
ada. Los pesos se van modificando de manera proporcional
al error que se produce entre la salida real de la red y la
salida esperada.
• Aprendizaje no supervisado. Se presenta a la red un
conjunto de patrones de entrada. No hay informa ción dispo-
nible sobre la salida esperada. El proceso de entrenamiento
en este caso deberá ajustar sus pesos en base a la correlación
existente entre los datos de entrada.
• Aprendizaje por refuerzo. Este tipo de aprendizaje se
ubica entre medio de los dos anteriores. Se le presenta a
la r ed un conjunto de patrones de entrada y se le indica a
la red si la salida obtenida es o no correcta. Sin embargo,
no se le proporciona el valor de la salida esperada. Este
tipo de aprendizaje es muy útil en aquellos casos en que se
desconoce cual es la sali da exacta que debe proporcionar la
red (Bertona, 2005).
Fase de operación
Una vez finalizada la fase de aprendizaje, la red puede ser
utilizada para realizar la tarea para la que fue entrenada. Una
de las principales ventajas que posee este modelo es que la
red aprende la relación existente entre los datos, adquiriendo
la capacidad de generalizar conceptos. De esta manera, una
red neuronal puede tratar con información que no le fue
presentada durante de la fase de entrenamiento(Bertona,
2005).
Función de transferencia Logarítmica Sigmoidea (Log-
sig)
La salida de esta función siempre será continua en el
rango entre cero y uno. Con esta familia de funciones se
pueden utilizar datos continuos o digitales proporcionando
salidas exclusivamente continuas(Estévez, 2002).
Algoritmo
Logsig(n) es equivalente a:
Gráfica
Figura21: Funcion Logsig
En la figura 2 se observa como la función adopta valores
muy próximos a cero cuando X es pequeño, pero según
aumenta el valor en el eje de las abscisas la función pasa a
ser creciente. Al principio la pendiente de la función crece
hasta llegar a un punto de inflexión, momento en el cual la
pendiente comienza a descender hasta llegar a cero, a partir
del cual la función vuelve a dar un valor constante e igual a
uno.
(Estévez, 2002).
Ejemplo:
Encuentre la salida de la red neuronal mostrada, suponga
que f(x) es la función logsig(x)(Ledesma, s.f.).
UNIVERSIDAD NACIONAL DE LOJA
aearmijosc@unl.edu.ec, mverraeaze@unl.edu.ec
2
Andrea Armijos-Vanessa Erraez Tutor: Ing Henry Paz
Figura 2: Ejemplo
Donde tenemos las siguientes entradas, pesos y bias:
Para encontrar la solución, primeramente se debe encon-
trar N por lo tanto se aplica la fórmula:
Y se lo reemplaza en la fórmula dada en el algoritmo:
Quedando de la siguiente manera el resultado:
Función de transferencia Tangente Hiperbólica(Tansig)
Esta es una de las funciones más utilizadas en las
redes neuronales por su flexibilidad y el amplio rango de
resultados que ofrece. Las ventajas de utilizar una tangente
sigmoidea frente a una sigmoidea reside en que la segunda
sólo ofrece resultados en el rango positivo entre cero y uno,
en cambio la tangente sigmoidea da resultados entre 1 y -1,
por lo que se amplía a los números negativos los posibles
resultados(Estévez, 2002).
Algoritmo
Tansig(n) es equivalente a:
Gráfica
Figura 3: Funcion Tansig
El resultado que nos ofrecen cada una de estas funciones
será el dato de salida de la neurona que se dirigirá bien a otra
neurona o al resultado final.
Ejemplo:
Encuentre la salida de la red neuronal mostrada, suponga
que f(x) es la función logsig(x). Donde tenemos las siguien-
tes entradas, pesos y bias:
Para encontrar la solución, primeramente se debe encon-
trar N por lo tanto se aplica la fórmula:
UNIVERSIDAD NACIONAL DE LOJA
aearmijosc@unl.edu.ec, mverraeaze@unl.edu.ec
3
Andrea Armijos-Vanessa Erraez Tutor: Ing Henry Paz
Y se reemplaza el valor encontrado en la fórmula dada en
el algoritmo:
Ejercicio realizado en matlab
Para crear la red neuronal se utilizó el comando newff,
cuyo formato basico es el siguiente:
newff([min1 max1; min2 max2; ...], [3, ..., 4], ’logsig’,...,
’traingdx’)(Ledesma, s.f.).
(min1 max1; min2 max2)= rango entradas.
(3, ..., 4)= numero de neuronas en el nivel Escondido
a cada entrada.
(’logsig’,...)= Función.
’traingdx’ = Entrenamiento(Claudio Tablada, s.f.).
BOTON CLASIFICAR
codigo para elegir el tipo de función
switch funcion
case 1
handles.fun=’logsig’;
guidata(hObject,handles);
case 2
handles.fun=’tansig’;
guidata(hObject,handles);
end
ncapas=[];
fact=;
Se obtienes el número de capas
numCapa=str2num(get(handles.ncapas,’String’))
Ingreso del númmero de neuronas por cada capa
for c=1:1:numCapa
entrada=inputdlg(’N◦
de neuronas’,’N◦
neuronas’,1,’0’);
ncapas=[ncapas str2num(entrada1,1)];
fact(c)=handles.fun;
end
ncapas;
handles.nunC=ncapas;
guidata(hObject,handles);
fact;
handles.funAct=fact;
guidata(hObject,handles);
Se obtiene los valores de entrada
entrad = str2num(get(handles.entrada1,’String’));
Codigo para crear y entrenar la red
net = newff(minmax(entrad),handles.nunC,
handles.funAct,handles.current_dat);
net.trainParam.show = 50;
net.trainParam.lr = 0.04;
net.trainParam.epochs = 400;
net.trainParam.goal = 1e-5;
a = sim(net,entrad);
view(net);
plot(entrad);
Codigo para el tipo de entrenamiento
UNIVERSIDAD NACIONAL DE LOJA
aearmijosc@unl.edu.ec, mverraeaze@unl.edu.ec
4
Andrea Armijos-Vanessa Erraez Tutor: Ing Henry Paz
val = get(hObject,’Value’);
str = get(hObject,’String’);
switch strval case ’traingdx’
handles.currentdat = traingdx ;
guidata(hObject,handles);
case ’traingdm’
handles.currentdat = traingdm ;
guidata(hObject,handles);
case ’trainlm’
handles.currentdat = trainlm ;
guidata(hObject,handles);
end
guidata(hObject,handles);
Interfáz gráfica
La siguinte ventana permite ingresar los siguientes da-
tos:elegir la función logsig o tansig, escoger el tipo de entre-
namiento, datos de entrada, el número de capas y al momento
de presionar el botón clasificar se podrá ingresar el número
de neuronas.
Figura 4: Ventana para el ingreso de datos
Ingreso de datos
Figura 4: Ventana para el Ingreso de datos para la función tansig
Resultado de la función tansig
Figura 5: Resultado de la función tansig
De acuerdo a los datos ingresados se puedes observar que
la red neuronal posee dos entradas, dos capas, tres neuronas
en cada capa y 3 salidas.
Figura 5:Red Neuronal
Referencias
Bertona, L. F. (2005). Entrenamiento de redes neuro-
nales basado en algoritmos evolutivos. Descargado de
http://www.monografias.com/trabajos-pdf
/entrenamiento-redes-neuronales-algoritmos
-evolutivos/
UNIVERSIDAD NACIONAL DE LOJA
aearmijosc@unl.edu.ec, mverraeaze@unl.edu.ec
5
Andrea Armijos-Vanessa Erraez Tutor: Ing Henry Paz
entrenamiento-redes-neuronales-
algoritmos-evolutivos.pdf
Claudio Tablada, G. A. T. (s.f.). Redes neuronales artificiales. Des-
cargado de http://www.fis.uncor.edu/revedu/documents
/vol24/243redes.pd f
Estévez, P. G. (2002). The interpretation of dreams. Descargado
de http://eprints.ucm.es/6767/1/0205.pdf
Ledesma, S. (s.f.). Las redes neuronales. Descargado de
http://newton.azc.uam.mx/mcc/01e sp
/08sitios/micai06/TUTORIALS/
UNIVERSIDAD NACIONAL DE LOJA
aearmijosc@unl.edu.ec, mverraeaze@unl.edu.ec
6

Función Logsig y tansig

  • 1.
    Ejemplo de Funcioneslogsig y tansig Andrea Armijos Ingenieria en Sistemas Vanessa Erraez Ingenieria en Sistemas Resúmen En el presente artículo abordará el tema de funciones de activación, las cuales permiten dar mayor flexibilidad al sistema,y por ende mayor capacidad. En el presente trabajo se hará uso de dos funciones muy importantes como lo son logarítmica sigmoidea (Logsig) y tangente sigmoidal (Tansig). Los valores de entrada de estas dos funciones pueden oscilar entre menos y más infinito; y las salidas que proporcionan la función Logsig esta dentro de un rango que va de 0 a 1 y la función Tansig de -1 a 1. Introducción Una neurona artificial está formada por un sumador que se encarga de sumar todas las entradas multiplicadas por las respectivas sinapsis, un umbral exterior que determina el um- bral por encima del cual la neurona se activa y una función de activación, representada por f(n), donde la función de ac- tivación puede ser una función lineal o no lineal de n, y es escogida dependiendo de las especificaciones del problema que la neurona tenga que resolver, en el presente trabajo se utilizara función logarítmica sigmoidea (Logsig) y la función tangente sigmoidal (Tansig). Desarrollo Redes Neuronales Artificiales Las Redes Neuronales Supervisadas (RNS) son un conjunto de algoritmos matemáticos que encuentran las relaciones no lineales entre conjuntos de datos. Suelen ser utilizadas comoherramientas para la predicción de tendencias y como clasificadoras de conjuntos de datos.Se denominan Neuronales porque están basadasen el fun- cionamiento de una neurona biológica cuando procesa información(Estévez, 2002). El modelo de una neurona consta de: Las entradas x e y. Los pesos sinápticos w1 y w2 correspondientes a cada entrada. Un término aditivo b. Una salida z. (Claudio Tablada, s.f.). En la siguiente figura se muestra los elementos que conforman una neurona artificial. Figura 1: Modelo de una neurona artificial Existen muchas formas de clasificcar a las neuronas, las más utilizadas son según su arquitectura o sus métodos de entrenamiento. Arquitectura de una red neuronal Una vez definida el tipo de neurona que se utilizar á en un modelo de redes neuronales artificiales es necesario definir la topología de la misma. La organización y disposición de la s neuronas dentro de una red neuronal se denomina topología, y viene dada por el número de capas, la cantidad de neuronas por capa, el grad o de conectividad, y el tipo de conexión entre neuronas. Las neuronas suelen agruparse en unidades funcionales denominadas capas. Se denomina capa de entrada a aquella que esta compuesta por neuronas de entradas y por lo tanto recibe info rmación procedente desde el exterior. Análogamente, se denomina ca pa oculta y capa de salida a aquellas capas que están compuestas por neuronas ocultas y de salida respectivamente. Una red neuronal arti ficial esta compuesta por una o más capas, las cuales se encuentran
  • 2.
    Andrea Armijos-Vanessa ErraezTutor: Ing Henry Paz interconectadas entre sí(Bertona, 2005). Aprendizaje de una neurona artificial Durante la operatoria de una red neuronal podemos di stin- guir claramente dos fases o modos de operación: la fase de aprendizaje o ent renamiento, y la fase de operación o ejecu- ción. Durante la primera fase, la fase de aprendizaje, la red es entrenada para realizar un determinado ti po de procesamien- to. Una vez alcanzado un nivel de entrenamiento adecuado, se pa sa a la fase de oper ación, donde la red es utilizada para llevar a cabo la tarea para la cual fue entrenada(Bertona, 2005). Fase de entrenamiento Una vez seleccionada el tipo de neurona artificial que se utilizará en una red neuronal y determinada su topología es ne cesario entrenarla para que la red pueda ser utilizada. Partiendo de un conjunt o de pesos sinápticos aleatorio, el proceso de aprendizaje busca un conjunto de pesos que permitan a la red desarrollar correctamente una determinada tarea. Durante el proceso de aprendizaje se va refinando iterativamente la solución hasta alcanzar un nivel de operación suficientemente bueno. (Bertona, 2005). El proceso de parendizaje se divide en tres grupos: • Aprendizaje supervisado. Se pr esenta a la red un conjunto de patrones de entrada junt o con la salida esper ada. Los pesos se van modificando de manera proporcional al error que se produce entre la salida real de la red y la salida esperada. • Aprendizaje no supervisado. Se presenta a la red un conjunto de patrones de entrada. No hay informa ción dispo- nible sobre la salida esperada. El proceso de entrenamiento en este caso deberá ajustar sus pesos en base a la correlación existente entre los datos de entrada. • Aprendizaje por refuerzo. Este tipo de aprendizaje se ubica entre medio de los dos anteriores. Se le presenta a la r ed un conjunto de patrones de entrada y se le indica a la red si la salida obtenida es o no correcta. Sin embargo, no se le proporciona el valor de la salida esperada. Este tipo de aprendizaje es muy útil en aquellos casos en que se desconoce cual es la sali da exacta que debe proporcionar la red (Bertona, 2005). Fase de operación Una vez finalizada la fase de aprendizaje, la red puede ser utilizada para realizar la tarea para la que fue entrenada. Una de las principales ventajas que posee este modelo es que la red aprende la relación existente entre los datos, adquiriendo la capacidad de generalizar conceptos. De esta manera, una red neuronal puede tratar con información que no le fue presentada durante de la fase de entrenamiento(Bertona, 2005). Función de transferencia Logarítmica Sigmoidea (Log- sig) La salida de esta función siempre será continua en el rango entre cero y uno. Con esta familia de funciones se pueden utilizar datos continuos o digitales proporcionando salidas exclusivamente continuas(Estévez, 2002). Algoritmo Logsig(n) es equivalente a: Gráfica Figura21: Funcion Logsig En la figura 2 se observa como la función adopta valores muy próximos a cero cuando X es pequeño, pero según aumenta el valor en el eje de las abscisas la función pasa a ser creciente. Al principio la pendiente de la función crece hasta llegar a un punto de inflexión, momento en el cual la pendiente comienza a descender hasta llegar a cero, a partir del cual la función vuelve a dar un valor constante e igual a uno. (Estévez, 2002). Ejemplo: Encuentre la salida de la red neuronal mostrada, suponga que f(x) es la función logsig(x)(Ledesma, s.f.). UNIVERSIDAD NACIONAL DE LOJA aearmijosc@unl.edu.ec, mverraeaze@unl.edu.ec 2
  • 3.
    Andrea Armijos-Vanessa ErraezTutor: Ing Henry Paz Figura 2: Ejemplo Donde tenemos las siguientes entradas, pesos y bias: Para encontrar la solución, primeramente se debe encon- trar N por lo tanto se aplica la fórmula: Y se lo reemplaza en la fórmula dada en el algoritmo: Quedando de la siguiente manera el resultado: Función de transferencia Tangente Hiperbólica(Tansig) Esta es una de las funciones más utilizadas en las redes neuronales por su flexibilidad y el amplio rango de resultados que ofrece. Las ventajas de utilizar una tangente sigmoidea frente a una sigmoidea reside en que la segunda sólo ofrece resultados en el rango positivo entre cero y uno, en cambio la tangente sigmoidea da resultados entre 1 y -1, por lo que se amplía a los números negativos los posibles resultados(Estévez, 2002). Algoritmo Tansig(n) es equivalente a: Gráfica Figura 3: Funcion Tansig El resultado que nos ofrecen cada una de estas funciones será el dato de salida de la neurona que se dirigirá bien a otra neurona o al resultado final. Ejemplo: Encuentre la salida de la red neuronal mostrada, suponga que f(x) es la función logsig(x). Donde tenemos las siguien- tes entradas, pesos y bias: Para encontrar la solución, primeramente se debe encon- trar N por lo tanto se aplica la fórmula: UNIVERSIDAD NACIONAL DE LOJA aearmijosc@unl.edu.ec, mverraeaze@unl.edu.ec 3
  • 4.
    Andrea Armijos-Vanessa ErraezTutor: Ing Henry Paz Y se reemplaza el valor encontrado en la fórmula dada en el algoritmo: Ejercicio realizado en matlab Para crear la red neuronal se utilizó el comando newff, cuyo formato basico es el siguiente: newff([min1 max1; min2 max2; ...], [3, ..., 4], ’logsig’,..., ’traingdx’)(Ledesma, s.f.). (min1 max1; min2 max2)= rango entradas. (3, ..., 4)= numero de neuronas en el nivel Escondido a cada entrada. (’logsig’,...)= Función. ’traingdx’ = Entrenamiento(Claudio Tablada, s.f.). BOTON CLASIFICAR codigo para elegir el tipo de función switch funcion case 1 handles.fun=’logsig’; guidata(hObject,handles); case 2 handles.fun=’tansig’; guidata(hObject,handles); end ncapas=[]; fact=; Se obtienes el número de capas numCapa=str2num(get(handles.ncapas,’String’)) Ingreso del númmero de neuronas por cada capa for c=1:1:numCapa entrada=inputdlg(’N◦ de neuronas’,’N◦ neuronas’,1,’0’); ncapas=[ncapas str2num(entrada1,1)]; fact(c)=handles.fun; end ncapas; handles.nunC=ncapas; guidata(hObject,handles); fact; handles.funAct=fact; guidata(hObject,handles); Se obtiene los valores de entrada entrad = str2num(get(handles.entrada1,’String’)); Codigo para crear y entrenar la red net = newff(minmax(entrad),handles.nunC, handles.funAct,handles.current_dat); net.trainParam.show = 50; net.trainParam.lr = 0.04; net.trainParam.epochs = 400; net.trainParam.goal = 1e-5; a = sim(net,entrad); view(net); plot(entrad); Codigo para el tipo de entrenamiento UNIVERSIDAD NACIONAL DE LOJA aearmijosc@unl.edu.ec, mverraeaze@unl.edu.ec 4
  • 5.
    Andrea Armijos-Vanessa ErraezTutor: Ing Henry Paz val = get(hObject,’Value’); str = get(hObject,’String’); switch strval case ’traingdx’ handles.currentdat = traingdx ; guidata(hObject,handles); case ’traingdm’ handles.currentdat = traingdm ; guidata(hObject,handles); case ’trainlm’ handles.currentdat = trainlm ; guidata(hObject,handles); end guidata(hObject,handles); Interfáz gráfica La siguinte ventana permite ingresar los siguientes da- tos:elegir la función logsig o tansig, escoger el tipo de entre- namiento, datos de entrada, el número de capas y al momento de presionar el botón clasificar se podrá ingresar el número de neuronas. Figura 4: Ventana para el ingreso de datos Ingreso de datos Figura 4: Ventana para el Ingreso de datos para la función tansig Resultado de la función tansig Figura 5: Resultado de la función tansig De acuerdo a los datos ingresados se puedes observar que la red neuronal posee dos entradas, dos capas, tres neuronas en cada capa y 3 salidas. Figura 5:Red Neuronal Referencias Bertona, L. F. (2005). Entrenamiento de redes neuro- nales basado en algoritmos evolutivos. Descargado de http://www.monografias.com/trabajos-pdf /entrenamiento-redes-neuronales-algoritmos -evolutivos/ UNIVERSIDAD NACIONAL DE LOJA aearmijosc@unl.edu.ec, mverraeaze@unl.edu.ec 5
  • 6.
    Andrea Armijos-Vanessa ErraezTutor: Ing Henry Paz entrenamiento-redes-neuronales- algoritmos-evolutivos.pdf Claudio Tablada, G. A. T. (s.f.). Redes neuronales artificiales. Des- cargado de http://www.fis.uncor.edu/revedu/documents /vol24/243redes.pd f Estévez, P. G. (2002). The interpretation of dreams. Descargado de http://eprints.ucm.es/6767/1/0205.pdf Ledesma, S. (s.f.). Las redes neuronales. Descargado de http://newton.azc.uam.mx/mcc/01e sp /08sitios/micai06/TUTORIALS/ UNIVERSIDAD NACIONAL DE LOJA aearmijosc@unl.edu.ec, mverraeaze@unl.edu.ec 6