Redes neuronales funciones de activación logsig y tansig
1. Neural Networks-Activation Functions
Logsig & Tansig
Redes Neuronales-Funciones de Activación
Logsig y Tansig
Carina Brito Jefferson Sarmiento
cebritop@unl.edu.ec jpsarmientoe@unl.edu.ec
Mg.Sc Henry Paz
Tutor del Trabajo
Abstract: We Will make use of two sig-moidal
functions such as log (logsig) and tan-gential
(tansig) to solve a problem of artificial
neural networks (ANN), this will article make
use of mathematical software tool (MATLAB)
to solve the problem.
Resumen: En el presente artículo se hará
uso de dos funciones sigmoideales como son
la logarítmica (Logsig) y la tangencial (Tansig)
para resolver un problema de redes neuronales
artificiales (RNA), además se utilizará la her-ramienta
de software matemático (MATLAB)
para dar solución al problema.
keywords: Artificial neural networks, Acti-vation
functions, Logsig, Tansig
Palabras Clave: Redes neuronales artificiales,
Funciones de activación, Logsig, Tansig
I. Introducción
En el presente artículo se hace referencia a las
características principales de una red neuronal
artificial, y a la utilización de las funciones de
activación logsig y tansig a un ejemplo de la
vida real, el cual menciona los antecedentes de
mujeres con cáncer de mama y lo clasifica ya
sea maligno y benigno.
Secciones:
I Introducción
II Estado del arte:
Características de las neuroredes
Arquitecturas neuronales
Aprendizaje de una neurona
Fase de entrenamiento
Fase de operación
Función Logarítmica Sigmoidea
(Logsig)
Función Tangente Sigmoidea (Tansig)
III Descripción del problema
IV Resultados
V Conclusiones
VI Referencias
II. Estado del arte
La neuroredes se caracterizan principalmente
por [1]:
Figure 1: características principales de la red neuronal.
1. Tener una inclinación natural a adquirir
el conocimiento a través de la experien-cia,
el cual es almacenado, al igual que
en el cerebro, en el peso relativo de las
conexiones interneuronales.
1
2. 2. Tienen una altísima plasticidad y gran
adaptabilidad, son capaces de cambiar
dinámicamente junto con el medio.
3. Poseen un alto nivel de tolerancia a fal-las,
es decir, pueden sufrir un daño con-siderable
y continuar teniendo un buen
comportamiento, al igual como ocurre en
los sistemas biológicos.
4. Tener un comportamiento altamente no-lineal,
lo que les permite procesar infor-mación
procedente de otros fenómenos
no-lineales.
ARQUITECTURAS NEURONALES [2]
Según el número de capas
Redes neuronales monocapas Se corresponde
con la red neuronal más sencilla ya que se
tiene una capa de neuronas que proyectan las
entradas a una capa de neuronas de salida
donde se realizan diferentes cálculos. La capa
de entrada, por no realizar ningún cálculo, no
se cuenta de ahí el nombre de redes neuronales
con una sola capa. Una aplicación típica de este
tipo de redes es como memorias asociativas.
Figure 2: Red neuronal monocapa.
Redes neuronales multicapas Es una general-ización
de la anterior existiendo un conjunto
de capas intermedias entre la entrada y la sal-ida
(capas ocultas). Este tipo de red puede
estar total o parcialmente conectada.
Figure 3: Red neuronal multicapa.
Según el tipo de conexiones
Redes neuronales no recurrentes En esta red
la propagación de las señales se produce en un
sentido solamente, no existiendo la posibilidad
de realimentaciones. Lógicamente estas estruc-turas
no tienen memoria.
Redes neuronales recurrentes Esta red viene
caracterizada por la existencia de lazos de
realimentación. Estos lazos pueden ser entre
neuronas de diferentes capas, neuronas de la
misma capa o, más sencillamente, entre una
misma neurona. Esta estructura recurrente la
hace especialmente adecuada para estudiar
la dinámica de sistemas no lineales. La sigu-iente
figura representa el esquema de una red
recurrente.
Figure 4: Red neuronal recurrente.
Según el grado de conexión
Redes neuronales totalmente conectadas En
este caso todas las neuronas de una capa
se encuentran conectadas con las de la capa
siguiente (redes no recurrentes) o con las de la
anterior (redes recurrentes).
Redes parcialmente conectadas En este caso
no se da la conexión total entre neuronas de
diferentes capas.
Estas estructuras neuronales se podrían conec-tar
entre sí para dar lugar a estructuras may-ores:
estamos en el nivel de la mesoestruc-tura.
Esta conexión se puede llevar a cabo de
diferentes formas siendo las más usuales las
estructuras en paralelo y jerárquicas. En la
primera estructura se plantea un “consenso”
entre las diferentes redes para obtener la salida
mientras que en la estructura jerárquica existen
2
3. redes subordinadas a otras que actúan como
elementos centrales en la salida final de la red.
Aprendizaje de una neurona artificial [3]
Una red neuronal artificial (ANN) es un es-quema
de computación distribuida inspirada
en la estructura del sistema nervioso de los
seres humanos.
Es importante señalar que la propiedad más
importante de las redes neuronales artificiales
es su capacidad de aprender a partir de un
conjunto de patrones de entrenamientos, es
decir, es capaz de encontrar un modelo que
ajuste los datos. El proceso de aprendizaje
también conocido como entrenamiento de la
red puede ser supervisado o no supervisado.
El aprendizaje supervisado consiste en entre-nar
la red a partir de un conjunto de datos
o patrones de entrenamiento compuesto por
patrones de entrada y salida. El objetivo del al-goritmo
de aprendizaje es ajustar los pesos de
la red w de manera tal que la salida generada
por la ANN sea lo más cercanamente posible
a la verdadera salida dada una cierta entrada.
Es decir, la red neuronal trata de encontrar un
modelo al procesos desconocido que generó la
salida y. Este aprendizaje se llama supervisado
pues se conoce el patrón de salida el cual hace
el papel de supervisor de la red.
En cambio en el aprendizaje no supervisado
se presenta sólo un conjunto de patrones a la
ANN, y el objetivo del algoritmo de apren-dizaje
es ajustar los pesos de la red de manera
tal que la red encuentre alguna estructura o
configuración presente en los datos.
Fase de entrenamiento [4]
Una vez seleccionada el tipo de neurona ar-tificial
que se utilizará en una red neuronal
y determinada su topología es necesario en-trenarla
para que la red pueda ser utilizada.
Partiendo de un conjunto de pesos sinápti-cos
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.
El proceso de aprendizaje se puede dividir en
tres grandes grupos de acuerdo a sus carac-terísticas:
Aprendizaje supervisado. Se presenta a
la red un conjunto de patrones de entrada
junto con la salida esperada. Los pesos
se van modificando de manera propor-cional
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 en-trada.
No hay información disponible
sobre la salida esperada. El proceso de
entrenamiento en este caso deberá ajustar
sus pesos en base a la correlación exis-tente
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 red 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 pro-porciona
el valor de la salida esperada.
Este tipo de aprendizaje es muy útil en
aquellos casos en que se desconoce cuál
es la salida exacta que debe proporcionar
la red.
Fase de operación [4]
Una vez finalizada la fase de aprendizaje,
la red puede ser utilizada para realizar la tarea
para la que fue entrenada. Una de las princi-pales
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 pre-sentada
durante de la fase de entrenamiento.
Función Logarítmica Sigmoidea (Logsig) [5]
La salida de esta función siempre será con-tinua
en el rango entre cero y uno. Con esta
3
4. familia de funciones se pueden utilizar datos
continuos o digitales proporcionando salidas
exclusivamente continuas.
Figure 5: Función Logarítmica Sigmoidea.
En la función representada en la figura 5 se
observa como la función adopta valores muy
próximos a cero cuando X es pequeño, pero
que 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.
Función Tangente Sigmoidea (Tansig) [5]
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 logarítmica 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. La función tiene una
tipología como la siguiente:
Figure 6: Función Tangente Sigmoidea.
El resultado que nos ofrece cada una de estas
funciones será el dato de salida de la neurona
que se dirigirá bien a otra neurona, bien al
resultado final.
III. Descripción del problema
Se tiene los datos de 569 mujeres con cáncer
de mama. Cada mujer está descrita por 32
atributos. El primero es un identificador, el
segundo el tipo de cáncer (Maligno o Benigno)
y el resto son el resultado de otros análisis clíni-cos.
Se pretende aprender el tipo de cáncer. En
este conjunto la distribución de clases es: 357
benignos y 212 malignos.
IV. Resultados
Para dar solución al problema planteado se
hizo uso de las funciones logsig y tansig sigu-iendo
los siguientes pasos:
1. Creamos un archivo con los datos sobre
el cáncer de mama en las mujeres, especi-ficando
M(Maligno)=1 y B(Benigno)=0.
2. Utilizamos la herramienta matemática
Matlab para construir la neurona y veri-ficar
el aprendizaje.
3. Procedemos a cargar los datos para con-struir
la red:
datos=csvread(’datos.txt’,0,1);
size(datos)
4. Como la red necesita que se le suministre
cada ejemplo en una columna, necesita-mos
trasponer la matriz de datos:
4
5. datos=datos’;
size(datos)
5. Tenemos que definir cuál es el objetivo y
cuáles son los datos de entrada para la
red:
valores_entradas=datos(1,:);
contenido_datos=datos(2:31,:);
6. Obtenemos los rangos de las variables de
entrada:
entradas_rangos =
minmax(contenido_datos);
7. Una vez verificados los datos, procede-mos
a crear la red, la misma que con-tendrá
30 neuronas de entrada y una de
salida, y una capa oculta de 10 neuronas,
para poder probar la creación de la red y
se utilizará el algoritmo de entrenamiento
trainlm.
net=newff(entradas_rangos,[10 1],’tan-sig’,’
logsig’,’trainlm’);
Figure 7: Entrenamiento de la red neuronal.
8. Para obtener mejores resultados utilizare-mos
una parte de los datos para el entre-namiento
y la otra parte para validar lo
aprendido por la red:
training_in =
contenido_datos
(:,1:2:length(contenido_datos));
testset.P =
contenido_datos
(:,2:2:length(contenido_datos));
training_target =
valores_entradas
(1:2:length(valores_entradas));
testset.T =
valores_entradas
(2:2:length(valores_entradas));
9. Entrenamos la red
net.trainParam.show=1;
net=
train
(net,training_in,
training_target,[],[],testset);
El parámetro show nos permite ver los
datos de cada iteración, en la gráfica
podemos observar el error de entre-namiento
con color azul y de color verde
la validación
Figure 8: Desempeño del Entrenamiento de la red neu-ronal.
10. Para poder calcular la presión de la solu-ción
de la red se debe implementar una
función. Tenemos dos clases etiquetadas
5
6. como 0 y 1, cuyo punto de división entre
las dos clases es 0.5 para obtener el error
en el conjunto original.
porc_err_todo = 100*(1-funcion (net, con-tenido_
datos, valores_entradas ))
V. Conclusiones
1. Las funciones de activación logsig y tan-sig
son diferenciables y sirven para re-solver
problemas no lineales, además per-miten
la aplicabilidad en los cálculos de
probabilidades y predicciones.
2. Las salidas de la función de activación
logsig siempre serán continuas en el
rango entre el 0 y 1.
3. La función de activación tansig ofrece un
amplio rango de valores, comprendido
entre -1 y 1.
4. Las funciones logsig y tansig son común-mente
utilizadas en redes multicapa,
como la Backpropagatión.
Referencias
[1] Izaurieta, F., Saavedra, C. (2003). Redes
neuronales artificiales. (Artículo en línea).
Universidad de Concepción, Concep-ción,
Chile. Disponible: http://www. uta.
cl/revistas/charlas/volumen16/Indice/Ch-csaavedra.
pdf [Consulta: 2003, 27 de
septiembre].
[2] Soria, E., Blanco, A. (2007). Re-des
neuronales artificiales. (Artículo
en línea). Disponible: http://www.
acta. es/medios/articulos/informatica-y-computacion/
019023. pdf [Consulta: 2007,
07 de junio].
[3] Salas, R. (2004). Redes Neuronales Artifi-ciales.
Universidad de Valparaıso. Depar-tamento
de Computación.
[4] Britos, M. I. P. (2005). ENTRENAMIENTO
DE REDES NEURONALES BASADO EN
ALGORITMOS EVOLUTIVOS.
[5] García Estévez, P. (2002). Aplicaciones de
las Redes Neuronales en las Finanzas.
Carina Brito: Estudiante de noveno módulo
de la carrera de Ingeniería en Sistemas de la
Universidad Nacional de Loja.
Jefferson Sarmiento: Estudiante de noveno
módulo de la carrera de Ingeniería en
Sistemas de la Universidad Nacional de Loja.
El código lo pueden descargar desde el
enlace: https://github.com/CarinaEliza/
redes
Creative Commons Reconocimiento-
NoComercial-CompartirIgual 3.0 Unported
License.
6