Tinciones simples en el laboratorio de microbiología
Ejemplo de Redes Neuronales con Funciones Logsig y Tansig
1. 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
2. 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
3. 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
4. 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
5. 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
6. 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