Este documento describe el uso de funciones logsig y tansig en redes neuronales artificiales para resolver problemas relacionados con la fertilidad masculina en Matlab. Presenta conceptos básicos de redes neuronales y describe ejemplos de reconocimiento de dígitos y letras usando estas funciones de activación. Explica cómo el entrenamiento mejora la precisión de la red y muestra gráficas de los resultados.
Problema de Aplicación sobre la fertilidad en los hombres aplicando las Funciones de Activación logsig y tansig en Redes Neuronales
1. Applying logsig and tansig Function to solve a
problem related to fertility in men using the Matlab
environment.
Aplicaci´on de la Funci´on Logsig y Tansig para
resolver un problema relacionado con la fertilidad
en los hombres empleando el entorno de Matlab.
Tatiana Ruiz, Henry Quezada, and Henry Paz
Abstract—This article present the use of logarithmic sigmoidal
activation functions (logsig) and sigmoidal tangent (tansig) to
solve a real life problem using artificial neural networks.
For solving and explanation of the two activation functions
mentioned above will use for solving Matlab toolbox 2014th.
Resumen— El presente art´ıculo presenta la utilizaci´on de
las funciones de activaci´on logar´ıtmica sigmoidal (Logsig) y
tangente sigmoidal (Tansig) para resolver un problema de la
vida real aplicando redes neuronales artificiales.
Para la resoluci´on y explicaci´on de las dos funciones de
activaci´on antes mencionadas se har´a uso del toolbox de Matlab
2014a.
Index Terms—Neural networks, model, Perceptron, Logsig,
Tansig, matlab
´Indice de T´erminos— Redes Neuronales, modelo, Perceptr´on,
logsig, Tansig, matlab
I. INTRODUCCI´O
N
El presente art´ıculo se ha desarrollado con la finalidad
de comprender el funcionamiento de las funciones de
activaci´on Logsig y Tansig aplicadas a redes neuronales
Artificiales. Se presentar´a las funciones Logsig y Tansig
mediante un ejemplo para comprender su funcionamiento y el
campo en que pueden aplicarse. B´asicamente se emplear´a un
modelo de una neurona artificial, la misma que esta formada
por un sumador que se encarga basicamente de sumar todas
las entradas multiplicadas por las respectivas sinapsis, un
umbral exterior que determina el umbral por encima del cual
la neurona se activa y una funcnci´on de activaci´on puede ser
una funci´on lineal o no linel la cual es escogida de acuerdo
a las especificaciones del problema que la neurona tenga que
resolver.
La organizaci´on del trabajo es la siguiente: en la Secci´on
II se documenta, conceptos y arquitectura de las Redes
Neuronales.
La Secci´on III muestra detalles de un caso de estudio
aplicando las funciones de transferencia logsig y tansig ,
en la Secci´on IV se puede encontrar el repositorio donde
se encuentra el c´odigo del programa para la resoluci´on del
problema de aplicaci´on, y finalmente se pueden encontrar las
conclusiones en la Secci´on V.
II. ESTADO DEL ARTE
A. Redes Neuronales
Las redes neuronales artificiales est´an basadas en el
funcionamiento del cerebro humano por ser este el sistema
de c´alculo m´as complejo conocido.
La capacidad que presenta el cerebro humano para poder
pensar, recordar, aprender y resolver problemas que se le
presenten es un gran reto para los cient´ıficos a la hora de
poder emular y modelar a trav´es de la programaci´on el
funcionamiento del sistema cerebral humano, ya que sus
amplias posibilidades se abren al mundo de la ciencia y la
tecnolog´ıa.
Las partes fundamentales de una neurona cerebral son las
dendritas (entradas), el ax´on (salida) y la sinapsis (uni´on
entre neuronas). El ax´on de la neurona se ramifica para
poder conectarse a la vez con diferentes dendritas de otras
neuronas, a trav´es de las sinapsis cerebrales. Estas uniones
pueden mejorar su eficacia de env´ıo de se˜nales mediante el
proceso de aprendizaje del cerebro [?].
A continuaci´on se muestra la representaci´on de una neurona
bil´ogica en la figura 1[?]:
Figura 1. Neurona Biol´ogica
2. Definici´on:
Una Red Neuronal Artificial es un sistema de computaci´on,
hecho por un gran n´umero de elementos simples, elementos de
proceso muy interconectados, los cuales procesan informaci´on
por medio de su estado din´amico como respuesta a entradas
externas [?].
Las redes neuronales artificiales son una propuesta
tecnol´ogica en programaci´on inform´atica para el aprendizaje
y procesamiento autom´atico basado en los sistemas neuronales
[?]. Se trata pues, de un sistema de redes interconectadas
capaces de trabajar entre ellas para producir un est´ımulo de
salida.
El objetivo general de una RNA es reproducir las funciones
realizadas en forma natural por los seres vivos tales como:
percibir, aprender reconocer, adaptarse a su medio y tomar
decisiones [?].
B. Elementos de la Red Neuronal Artificial
La estructura de una neurona Artificial puede ser represen-tada
como se muestra en la figura 2.
Figura 2. Representaci´on de la Neurona Artificial
Las diferentes partes y atributos que posee una red neuronal
artificial se muestran en la figura 3.
Figura 3. Atributos de la Neurona Artificial
C. Arquitectura de una Red Neuronal
Una vez definida el tipo de neurona que se utilizar´a en un
modelo de redes neuronales artificiales es necesario definir la
topolog´ıa de la misma.
La organizaci´on y disposici´on de las neuronas dentro
de una red neuronal se denomina topolog´ıa, y viene dada
por el n´umero de capas, la cantidad de neuronas por capa,
el grado de conectividad, y el tipo de conexi´on entre neuronas.
Las neuronas suelen agruparse en unidades funcionales de-nominadas
capas. Se denomina capa de entrada a aquella que
esta compuesta por neuronas de entradas y por lo tanto recibe
informaci´on procedente desde el exterior. An´alogamente, se
denomina capa oculta y capa de salida a aquellas capas que
est´an compuestas por neuronas ocultas y de salida respectiva-mente.
Una red neuronal artificial esta compuesta por una o
m´as capas, las cuales se encuentran interconectadas entre s´ı
[?].
1) Ventajas de las Redes Neuronales:
El procesado de la informaci´on es local, es decir que
al estar compuesto por unidades individuales de proce-samiento
dependiendo de sus entradas y pesos y de que
todas las neuronas de una capa trabajan en forma paralela
y proporcionan una respuesta al mismo tiempo
Los pesos son ajustados bas´andose en la experiencia, lo
que significa que se le tiene que ense˜nar a la red lo que
necesita saber antes de ponerla en funcionamiento
Las neuronas son tolerantes a fallos, si parte de la
red no trabaja, solo dejara de funcionar la parte para
que dicha neurona sea significativa; el resto tendr´a su
comportamiento normal.
2) Desventajas de las Redes Neuronales:
Complejidad de aprendizaje para grandes tareas, cuanto
m´as cosas se necesiten que aprenda una red, mas com-plicado
ser´a ense˜narle.
Tiempo de aprendizaje elevado. Esto depende de dos
factores: primero si se incrementa la cantidad de patrones
a identificar o clasificar y segundo si se requiere mayor
flexibilidad o capacidad de adaptaci´on de la red neuronal
para reconocer patrones que sean sumamente parecidos,
se deber´a invertir mas tiempo en lograr que la red
converja a valores de pesos que representan lo que se
quiera ense˜nar
D. Aprendizaje de una neurona artificial
Durante la operatoria de una red neuronal podemos
distinguir claramente dos fases o modos de operaci´on: la
fase de aprendizaje o entrenamiento, y la fase de operaci´on o
ejecuci´on.
Durante la primera fase, la fase de aprendizaje, la red es
entrenada para realizar un determinado tipo de procesamiento.
Una vez alcanzado un nivel de entrenamiento adecuado, se
pasa a la fase de operaci´on, donde la red es utilizada para
llevar a cabo la tarea para la cual fue entrenada [?].
1) Fase de entrenamiento: Una vez seleccionada el tipo
de neurona artificial que se utilizar´a en una red neuronal
y determinada su topolog´ıa es necesario entrenarla para
que la red pueda ser utilizada. Partiendo de un conjunto de
pesos sin´apticos 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´on
hasta alcanzar un nivel de operaci´on suficientemente bueno.
(Bertona, 2005).
El proceso de aprendizaje se divide en tres grupos [?]:
Aprendizaje supervisado
Se presenta a la red un conjunto de patrones de entrada
3. junto con la salida esperada. Los pesos se van modifi-cando
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 informaci´on disponible sobre la salida esperada.
El proceso de entrenamiento en este caso deber´a ajustar
sus pesos en base a la correlaci´on 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
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 proporciona el valor de la salida esperada. Este tipo
de aprendizaje es muy ´util en aquellos casos en que se
desconoce cual es la salida exacta que debe proporcionar
la red.
2) Fase de operaci´on: Una vez finalizada la fase de apren-dizaje,
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´on existente entre
los datos, adquiriendo la capacidad de generalizar conceptos
[?].
E. Funciones de Transferencia
1) Funci´on de transferencia Logar´ıtmica Sigmoidea
(Logsig): Esta funci´on toma los valores de entrada, los cuales
pueden oscilar entre mas y menos infinito, y restringe la
salida a valores entre cero y uno.
La f´ormula de la funci´on de activaci´on Logsig es como se
la muestra en la figura 4.
Figura 4. F´ormula de Activaci´on
La funci´on Logsig restringe la salida a valores entre cero y
uno y su representaci´on gr´afica es como se la representa en la
figura 5.
Figura 5. Representaci´on Gr´afica
Es una funci´on diferenciable lo que es ´util en algoritmos
de entrenamiento basados en derivadas.
Esta funci´on es com´unmente usada en redes multicapa,
como la Backpropagation, en parte porque la funci´on logsig
es diferenciable.
2) Funci´on de Transferencia sigmoidal (Tansig): Esta es
una de las funciones m´as utilizadas en las redes neuronales
por su flexibilidad y el amplio rango de resultados que ofrece
[?].
Es una funci´on derivable pero con los l´ımites de salida entre
menos uno y uno.
La f´ormula de la funci´on de transferencia tangencial Tansig
es la representada en la figura 6.
Figura 6. F´ormula de Activaci´on
La funci´on Tansig se caracteriza por permitir obtener salidas
entre -1 y 1 tal como se la representa en la figura 7.
Figura 7. Representaci´on Gr´afica
III. CASO DE ESTUDIO
Ejemplo 1:
A continuaci´on se plantea un ejercicio para reconocer los
n´umeros binarios del 0-9 [?]. El ejemplo consiste en la
creaci´on, entrenamiento y simulaci´on de una red neuronal
en Matlab, la aplicaci´on es la creaci´on de una red neuronal
backpropagation, para el t´ıpico problema de reconocimiento
de d´ıgitos binarios del cero al nueve. Utilizando las Funciones
Logsig y Tansig.
El Script que se realiz´o para resolver el ejercicio se
encuentra representado en la figura 8.
Figura 8. Script Resoluci´on del Ejercicio
4. La ejecuci´on del programa nos muestra como resultado la
gr´afica que se encuentra representada en la figura 9.
Figura 9. Resultado del ejercicio
EJEMPLO 2
A continuaci´on se plantea un ejercicio para reconocer las
letras del Alfabeto [?]. El ejemplo consiste en la creaci´on,
entrenamiento y simulaci´on de una red neuronal en Matlab, la
aplicaci´on es la creaci´on de una red neuronal backpropagation,
para el problema de reconocimiento del Alfabeto para ser
implementado en un circuito el´ectrico para su simulaci´on.
Utilizando las Funciones Logsig y Tansig.
Los datos de entrada y salida para resolver el presente
ejercicio se encuentran representados en la figura 10.
Figura 10. Datos de Entrada y Salida
Para el desarrollo del presente ejercicio se ha utilizado un
script, el mismo que nos permite resolver nuestro ejercicio y
el cual se encuentra representado en la figura 11.
Figura 11. Script del C´odigo
Mediante el empleo del script para la resoluci´on del presente
ejercicio se ha obtenido como resultado la gr´afica que se
muestra en la figura 12.
Figura 12. Gr´afica Resultante
EJEMPLO DE APLICACIO´ N
Problema a resolver mediante el entorno de programaci´on
Matlab,utilizando las funciones de activaci´on Logsig y Tansig.
Para la resoluci´on del presente problema nos hemos guiado
mediante el siguiente ejemplo [?] [?]:
Para el desarrollo del ejemplo de aplicaci´on se ha desar-rollado
un script, el mismo que permita resolver y obtener
las funcionalidades requeridas para la resoluci´on de nuestro
problema como se muestra en la figura 13.
Figura 13. Script del Programa
5. Como resultado podemos observar que la l´ınea azul nos
muestra el error de entrenamiento de nuestra red y la l´ınea
verde nos muestra la validaci´on correcta de nuestra red, tal
como se lo representa en la figura 14.
Figura 14. Resultado Validaci´on y Entrenamiento
IV. REPOSITORIO DEL C´O
DIGO DEL PROBLEMA DE
APLICACI´O
N
El repositorio donde se encuentra alojado el c´odigo para la
resoluci´on de los ejercicios y para la resoluci´on del problema
de aplicaci´on relacionado a la fertilidad de los hombres se
encuentra en: https://code.google.com/p/my-proyect-matlab/
V. CONCLUSIONES
Una vez realizada la revisi´on del estado del arte de las redes
neuronales y realizado el caso pr´actico en el presente ´articulo
se ha llegado a las siguientes conclusiones:
La funci´on de activaci´on logar´ıtmica se aplica a las
unidades de proceso de una red neuronal artificial sig-nifica
que, sea cual sea la entrada, la salida estar´a
comprendida entre 0 y 1.
La funci´on de activaci´on tansig es una funci´on muy
utilizada en las redes neuronales por su flexibilidad y el
amplio rango de resultados que ofrece, adem´as se utiliza
en diferentes ´areas debido a su aplicaci´on en el c´alculo
de probabilidades y predicciones.
Las funciones de activaci´on logsig y tansig son diferen-ciables,
por ello son utilizadas para las Redes Multicapa
BackPropagation debido a que tambi´en es diferenciable,
es decir sirven para resolver problemas no lineales.
La programaci´on en Matlab exige un nivel medio y alto
de conocimientos acerca de su funcionamiento, puesto
que esta herramienta no presenta ning´un tipo de ayuda
acerca de los errores producidos; a diferencia de otros
entornos de desarrollo.
La funci´on logar´ıtmica es una funci´on diferenciable lo
que es ´util en algoritmos de entrenamiento basados en
derivadas. Esta funci´on es com´unmente usada en redes
multicapa, como las Backpropagation.
REFERENCES
[1] ING. Reyes Jaime. INTELIGENCIA ARTIFICIAL PRINCIPIOS
Y APLICACIONES. Departamento de Inform´atica y Ciencias
de Computaci´on, Recuperado de: http://www.academia.edu/4232917/
INTELIGENCIAARTIFICIALPRINCIPIOSYAPLICACIONESInformacion
[2] Redes Neuronales. Instituto Politecnico Nacional. Mexico D.F, Re-cuperado
de: http://www.cic.ipn.mx/sitioCIC/images/sources/cic/tesis/
B031209.pdf
[3] Redes Neuronales Artificiales. Escuela de Ingenier´ıa Industrial, Recuper-ado
de: http://www.academia.edu/7245695/RedesNeuronalesArtificiales
[4] Matlab. Ejemplo backpropagation, Recuperado de: http://poncos.
wordpress.com/2009/01/15/matlab-ejemplo-backpropagation/
[5] Redes Neuronales, Recuperado de: http://www.aic.uniovi.es/ssii/P10/
P10-RedesNeuronales.pdf
[6] Ejercicio de Aplicaci´on, Recuperado de: http://archive.ics.uci.edu/ml/
datasets/Fertility
[7] Repositorio de C´odigo, Recuperado de: https://code.google.com/p/
my-proyect-matlab/
Henry Quezada professional training for Engineer-ing
degree in Systems Engineering from Universidad
Nacional de Loja, Loja, Ecuador in 2014. His current
research interest in neural networks are applied to
the perceptron with Logsig Tansig and functions.
Tatiana Ruiz professional training for Engineering
degree in Systems Engineering from Universidad
Nacional de Loja, Loja, Ecuador in 2014. His current
research interest in neural networks are applied to
the perceptron with Logsig Tansig and functions