Existen muchos métodos o algoritmos para entrenar perceptron multicapas, sin embargo en este caso se mostrará la optimización de las respuestas al intentar entrenar una RNA Multicapa empleando el algoritmo de Simulated Annealing
1. Implementación del algoritmo Simulated Annealing
en una perceptrón multicapa
Piragauta Brian, Mora Angie
brianpiragauta@hotmail.com
angielizethmora@gmail.com
Universidad Distrital Francisco José de Caldas
Facultad Tecnológica
Bogotá, Colombia
Abstract—This article conceptualizes and show the use of the Simulated Annealing algorithm for training an
Artificial Neural Network especially in perceptron multilayer Taking into account the previous theory for the
development of the Simulated Annealing algorithm is necessary have concepts like the definition of de
Artificial Intelligence, Neural Network, perceptron simple and multilayer , and finally the concept’s
Simulated Annealing . Likewise this paper show the results delivered in the simulation made in Java.
Palabras claves: Perceptron multilayer, Red neuronal artificial,SimulatedAnnealing.
1. INTRODUCCIÓN
La Inteligencia Artificial (IA) es la disciplina que
estudia la forma de diseñar procesos que exhiben
característicasque comúnmente se asocian con el
comportamiento humano inteligente. Dentro de la
IA existen múltiples aplicaciones para nuestra vida
cotidiana. El objetivo de este documento es
reflejar cómo se entrena una Red Neuronal
Artificial (RNA), ya que esta tiene una parte vital
llamada pesos, los cuales al modificarse son las
múltiples y simultáneas entradas que recibe la
neurona, haciendo una comparación con la Red
Neuronal Biológica (RNB), estos realizan la misma
función que realizan las fuerzas sinápticas. En
ambos casos, algunas entradas son más
importantes que otras de manera que tienen
mayor efecto sobre el procesamiento de la neurona
al combinarse para producir la respuesta neuronal.
Una red neuronal multicapa (perceptron
multicapa) se entrena a partir de unos datos
presentados como entrada y luego de realizar un
proceso de propagación para generar una salida,
ésta es comparada con una salida deseada y así se
obtiene el error del desempeño de la red neuronal.
Existen muchos métodos o algoritmos para
entrenar perceptron multicapas, sin embargo en
este caso se mostrará la optimización de las
respuestasal intentar entrenar una RNA Multicapa
empleando el algoritmo de Simulated Annealing
2. REDES NEURONALES
ARTIFICIALES
Las Redes Neuronales Artificiales, (RNA)
están inspiradas en las redes neuronales
biológicas del cerebro humano. Están
constituidas por elementos que se comportan
de forma similar a la neurona biológica en sus
funciones más comunes. Estos elementos
están organizados de una forma parecida a la
que presenta el cerebro humano.
Las RNA al margen de "parecerse" al cerebro
presentan una serie de características propias
del cerebro. Por ejemplo las RNA aprenden de
la experiencia, generalizan de ejemplos
previos a ejemplos nuevos y abstraen las
características principales de una serie de
datos tales como:
2. Aprender: adquirir el conocimiento de una
cosa por medio del estudio, ejercicio o
experiencia. Las RNA pueden cambiar su
comportamiento en función del entorno. Se
les muestra un conjunto de entradas y ellas
mismas se ajustan para producir unas salidas
consistentes.
Generalizar: extender o ampliar una cosa.
Las RNA generalizan automáticamente debido
a su propia estructura y naturaleza. Estas
redes pueden ofrecer, dentro de un margen,
respuestas correctas a entradas que presentan
pequeñas variaciones debido a los efectos de
ruido o distorsión.
Abstraer: aislar mentalmente o considerar
por separado las cualidades de un objeto.
Algunas ANN son capaces de abstraer la
esencia de un conjunto de entradas que
aparentemente no presentan aspectos
comunes o relativos.
Dentro de la estructura de las RNA existe la
unidad análoga a la neurona biológica el cual
es el elemento procesador, PE (process
element). Este procesador tiene varias
entradas y las combina, normalmente conuna
suma básica. La suma de las entradas es
modificada por una función de transferencia y
el valor de la salida de esta función de
transferencia se pasa directamente a la salida
del elemento procesador. La salida del PE se
puede conectar a las entradas de otras
neuronas artificiales (PE) mediante
conexiones ponderadas correspondientes a la
eficacia de la sinapsis de las conexiones
neuronales. [1]
Figura 1. Diagrama de una Neurona Artificial (PE).
3. PERCEPTRON SIMPLE
En 1957, Frank Rosenblatt publicó el trabajo
de investigación más importante en
computación neuronal realizado hasta esas
fechas. Su trabajo consistía en el desarrollo de
un elemento llamado "Perceptron". Fue el
primer modelo en poseer un mecanismo de
entrenamiento que permite determinar
automáticamente los pesos sinápticos que
clasifican correctamente a un conjunto de
patrones a partir de un conjunto de ejemplos.
La arquitectura del perceptrón esta
compuesta por dos capas de neuronas, una de
entrada y una de salida. La capa de entrada es
la que recibe la información proveniente del
exterior y la transmite a las neuronas sin
realizar ningún tipo de operación sobre la
señal de entrada. En general la información
entrante es binaria. La función de activación
de las neuronas de un perceptrón es del tipo
escalón, dando de esta manera sólo salidas
binarias. Cada neurona de salida del
perceptrón representa a una clase. Una
neurona de salida responde con 1 si el vector
de entrada pertenece a la clase a la que
representa y responde con 0 en caso
contrario. La operación de un perceptrón con
n neuronas de entrada y m neuronas de
salidas puede ser resumida como se muestra
en la ecuación (1) [2]
𝑦𝑖(𝑡) = 𝑓(∑ 𝑤𝑖𝑗
𝑛
𝑗=1 𝑥𝑗 − 𝜃 𝑖 ) (1)
3. 4. PERCEPTRÓN MULTICAPA
Al tener en cuenta que las redes neuronales de
una sola capa contaban con ciertas
limitaciones, se vio la necesidad de plantear e
implementar redes en las que se aumente el
número de capas, es decir, introducir capas
ocultas entre la capa de entrada y la capa de
salida de manera que se pueda ingresar
cualquier función con el grado de precisión
deseado; es decir, que las redes multicapa
fueran algo así como unos aproximadores
universales. Una red neuronal multicapa se
basa en otra red más simple llamada
perceptrón simple solo que el número de
capas ocultas puede ser mayor o igual que
una.[3]
Para entender el perceptrón multicapa es
necesario tener en cuenta el papel que
desempeña la capa intermedia. Esta capa
realiza una proyección de los patrones de
entrada en un cubo cuya dimensión viene
dada por el número de unidades de la capa
oculta. Se trata de realizar una proyección en
la que resulten separables los patrones de
entrada de manera que la unidad de salida se
pueda realizar una clasificación correcta.
El Perceptrón multicapa es una red de
alimentación hacia adelante (feedforward)
compuesta por una capa de unidades de
entrada (sensores), otra capa de unidades de
salida y un número determinado de capas
intermedias de unidades de proceso, también
llamadas capas ocultas porque no se ven las
salidas de dichas neuronas y no tienen
conexiones con el exterior. Cada sensor de
entrada está conectado con las unidades de la
segunda capa, y cada unidad de proceso de la
segunda capa está conectada con las unidades
de la primera capa y con las unidades de la
tercera capa, así sucesivamente. Las unidades
de salida están conectadas solamente con las
unidades de la última capa oculta, como se
muestra en la figura 2.
Con esta red se pretender establecer una
correspondencia entre un conjunto de entrada
y un
conjunto de salidas deseadas, de manera que
𝑁(𝑥1, 𝑥2,. . . , 𝑥 𝑁) ∈ 𝑅 𝑁
→
(𝑦1, 𝑦2, . . . , 𝑦 𝑀) ∈ 𝑅 𝑀
(2)
Para ello se dispone de un conjunto de p
patrones de entrenamiento, de manera que
sabemos perfectamente que al patrón de
entrada (𝑥1
𝑘
,𝑥2
𝑘
, . .. . , 𝑥 𝑛
𝑘
,)le corresponde la
salida (𝑦1
𝑘
, 𝑦2
𝑘
,. . . . , 𝑦 𝑚
𝑘
, ), k=1,2,...,p. Es
decir, conocemos dicha correspondencia para
p patrones. Así, nuestro conjunto de
entrenamiento será:
{(𝑥1
𝑘
, 𝑥2
𝑘
,. . . . , 𝑥 𝑛
𝑘
,) →
(𝑦1
𝑘
, 𝑦2
𝑘
,. . . . , 𝑦 𝑚
𝑘
, ): 𝑘 1,2,. . . , 𝑝} (3)
Figura 2. Representación de un Perceptron Multicapa
(MLP)
Para implementar dicha relación, la primera
capa (sensores de entrada) tendrá tantos
sensores como componentes tenga el patrón
de entrada, es decir, N; la capa de salida
tendrá tantas unidades de proceso como
componentes tengan las salidas deseadas, es
4. decir, M, y el número de capas ocultas y su
tamaño dependerá de la dificultad de la
correspondencia a implementar. [4]
5. SIMULATED ANNEALING
El proceso de Simulated Annealing (SA) se
formula sobre el concepto que cuando una
estructura se calienta, sus moléculas empiezan
a moverse con altas velocidades debido a la
gran cantidad de energía, con el tiempo y por
la pérdida de energía, dichas moléculas
poseerán un movimiento más lento y se
acomodarán permitiendo establecer
estructuras cristalinas simétricas[5]. El
proceso SA se basa en el algoritmo de
Metrópolis, el cual genera un conjunto de
estructuras vecinas a partir de una estructura
actual con sus respectivos niveles de energía;
a su vez el algoritmo de metrópolis se basa en
el método de Montecarlo que asigna una
función de probabilidad de aceptar los
cambios hechos en la estructura.[6]
Si se supone una estructura que se encuentra
en el estado i a un nivel de energía 𝐸 𝐸 el cual
es un indicativo de su comportamiento;
obtener otra estructura a partir de este estado
energético actual, consiste en efectuar
modificaciones que la llevan al estado
energético 𝐸 𝐸; decidir si la nueva estructura
se acepta en dicho estado depende de un
criterio de Montecarlo, que asigna la función
de probabilidad (4) para aceptar o no este
cambio.
𝑃(𝑎𝑐𝑒𝑝𝑡𝑎𝑐𝑖ó𝑛) = {1, 𝑠𝑖 𝐸𝑗 <
𝐸𝑖 ; 𝑒(𝐸𝑖 −𝐸 𝑗)/𝑇
, 𝑠𝑖 𝐸𝑗 > 𝐸𝑖} (4)
Siendo T la temperatura a la cual se encuentra
la estructura, P la probabilidad de aceptación.
Es importante notar que cuando la
temperatura es muy elevada, la probabilidad
de aceptar este nuevo estado, así sea de peor
calidad que el anterior, es cercana a uno
(altamente probable de aceptar), y si la
temperatura es baja, es poco probable que se
acepte. Esta propiedad que tiene el algoritmo
de aceptar configuraciones cuya función
objetivo sea de peor calidad, permite al
método explorar en diversas regiones del
espacio de soluciones sin quedar atrapado en
los óptimos locales.
La figura 3 es una representación aproximada
del comportamiento del algoritmo cuando
explora diversas regiones en un problema de
optimización; la propiedad de aceptar
soluciones de peor calidad le permite al
método “escalar” en las regiones de óptimos
locales para finalmente alcanzar el óptimo
global del sistema[7], que por lo general es la
configuración que tiene el menor valor en la
función objetivo o menor estado energético; la
figura 4 muestra la relación entre la
probabilidad de aceptar soluciones de peor
calidad y la temperatura de la estructura; a
altas temperaturas la probabilidad de
aceptación es alta, con la disminución de la
temperatura se disminuye igualmente la
probabilidad de aceptación.
Figura 3. Comportamiento del algoritmo SA
5. Figura 4. Probabilidad de aceptación de un nuevo
estado en el algoritmo de Metrópolis
A medida que la temperatura baja, también lo
hace la probabilidad de aceptación y es
necesario aumentar el número de
posibilidades a evaluar; este número de
posibilidades a evaluar en cada paso del
proceso iterativo se conoce con el nombre de
la cadena de Markov. Cada uno de los
elementos dentro de la cadena de Markov es
una estructura o configuración que difiere
muy poco del la actual, y es evaluado por el
algoritmo Simulated Annealing. Existen dos
expresiones que permiten calcular la longitud
de la cadena de Markov en la próxima
iteración.
𝑁𝑘+1 = 𝜂𝑁0 (5)
donde 𝑁0es la longitud inicial de la cadena de
Markov, la cual para este problema toma
valores entre 1 y 4 y es una variable mayor a
uno. También es posible calcular la longitud
de la cadena con la expresión:
𝑁𝑘+1 = 𝜌𝑁𝑘 (6)
donde la longitud de la nueva cadena (Nk+1)
depende del anterior (Nk) y es un valor
constante que hace que la cadena crezca en un
porcentaje constante; tanto como son valores
determinados por la naturaleza y complejidad
del problema. [6]
Simulated annealing se basa en dos
principales algoritmos los cuales son:
Número 1
Calcular(𝑁0, 𝑇0)
𝑁 𝑘 = 𝑁0
Genere una configuración inicial 𝑆0
Haga mientras no se cumpla el criterio de
parada
Haga desde 𝑘 = 1 hasta 𝑁 𝑘
Genere una configuración 𝑆𝑗 a partir de 𝑆𝑖
Si 𝐸𝑗 = 𝐸𝑖
𝑆𝑖= 𝑆𝑗
Sino
Si 𝑎𝑙𝑒𝑎𝑡𝑜𝑟𝑖𝑜 < 𝑒
(𝐸𝑖−𝐸𝑗 )/𝑇
𝑆𝑖= 𝑆𝑗
Fin Si
Fin Si
𝑘 = 𝑘 + 1
Fin haga
Calcular(𝑁 𝑘,𝑇𝑘)
Criterio de parada
Fin Haga
Fin Programa
El cálculo de la temperatura inicial es un
factor determinante en el éxito del algoritmo;
el valor inicial de la temperatura (𝑇0) se
obtiene con una heurística constructiva,
simulando el número de transiciones hechas
para la primera cadena de Markov, lo cual da
un estimativo del número y calidad de las
degradaciones o mejoramientos en la función
objetivo. El algoritmo que se emplea para el
cálculo de la temperatura inicial es el
siguiente:
Número 2
Inicio Programa
Inicie 𝑇0 = 0; 𝑚1 = 0; 𝑚2 = 0; 𝐹 = 0
6. Genere una configuración 𝑆𝑖
Haga desde k=1 hasta 𝑁0
Genere una configuración 𝑆𝑗 a partir de 𝑆𝑖
Si 𝐸𝑗 = 𝐸𝑖
𝑚1 = 𝑚1 + 1
Sino
𝑚2 = 𝑚2 + 1
𝛥𝐸 = 𝐸𝑖 − 𝐸𝑗
Fin si
𝑆𝑖 = 𝑆𝑖
Fin Haga
𝛥𝐸+ = ∑
𝛥𝐸
𝑚2
𝑚2
𝑘=1
𝑇0 =
𝛥𝐸 +
𝑙𝑛(
𝑚2
𝑚2 𝑋− 𝑚1(1− 𝑋)
)
Fin Programa
𝑇0 es la salida final de este programa, y es la
temperatura con que inicia el proceso SA. En
este algoritmo E+ es una medida de la
degradación de la función objetivo, 𝑚1 es el
número de transiciones de i a j donde mejora
la función objetivo, 𝑚2 es el número de
transiciones de i a j donde empeora la función
objetivo y x es una tasa de aceptación que
varía entre 0.8 y 0.9 [8]
6. IMPLEMENTACIÓN DEL
ALGORITMO DE SIMULATED
ANNEALING EN PERCEPTRÓN
MULTICAPA
Como es sabido un perceptrón multicapa
tiene n neuronas en su capa oculta, a partir de
esto se ilustrará la configuración óptima para
encontrar los pesos de tal manera que ésta
pueda aprender un conjunto de patrones. El
objetivo de SA es minimizar el error arrojado
del resultado de la capa de salida, teniendo en
cuenta la ecuación (7) como la condición de
parada.
𝐸(𝑛) =
1
2
∑ (∑ (𝜁𝑖
𝜇
− 𝜎𝑖
𝜇
)2𝑛
𝑖=1
𝑝 𝑝𝑎𝑡𝑟𝑜𝑛𝑒𝑠
𝜇=1
(7)
El entrenamiento parte de tener en cuenta los
siguientes pasos:
Primer paso: Como la arquitectura de este
tipo de RNA es multicapa, por tanto se
determina la cantidad de neuronas en la capa
oculta.
Segundo paso: Una vez definida la
Perceptrón multicapa se inicializan todos los
pesos de todas las neuronas. Una vez
inicializada se propagan los patrones para así
encontrar un primer valor para la función
objetivo, y este es el punto de partida para el
Algoritmo SA
Tercer paso: Comenzar el proceso de
ejecución del Algoritmo SA, tener en cuenta
que es necesario definir una cadena inicial de
Markov, la cual será la temperatura inicial y
debe ser determinada, por tanto se usará el
algoritmo 2, donde T=0. Para cada cadena de
Markov y en la temperatura dada se generan
varios estados posibles a través de una
estructura de vecindad. Los pesos de todas y
cada una de las neuronas se pueden organizar
en un conjunto de matrices y así ir generando
nuevo peso. Evaluar la condición si (el peso
actual - el nuevo peso) es menor o igual a
cero; si es verdadero se debe tomar como la
solución. De lo contrario evaluar la condición
si (el peso actual - el nuevo peso ) es mayor
que cero; se calcula la expresión basada en la
ecuación 7, si esta es mayor que un número
aleatorio que se genera entre cero y uno , se
toma como la solución, de lo contrario se
rechaza. Este procedimiento se debe realizar
reiteradas veces hasta decrecer la temperatura
(cadena de Markov) en este caso el error o
conseguir la salida deseada.
7. 7. RESULTADOS
El entrenamiento de la perceptrón multicapa
fue desarrollada bajo el lenguaje de
programación java, utilizando el IDE
Netbeans en su versión 8.0. Implementando
lo nombrado en el anterior ítem se dio como
resultado, ingresando como número de
neuronas de la capa oculta 6.
Como se puede observar en la gráfica 1 es
notorio el decrecimiento de la variable inicial
(temperatura, teniendo en cuenta el método
de Markov), en este caso la minimización del
error asociado realizando n-esimas
iteraciones para llegar a un número cerca a la
salida deseada de 0.9
Gráfica 1. Resultados obtenidos en simulación con 6
neuronas en la capa oculta
8. CONCLUSIONES
Es evidente el avance que se ha logrado a lo
largo de la historia en la implementación de la
Inteligencia Artificial, ya que esta ha sido de
gran ayuda en la vida cotidiana de los seres
humanos, por ejemplo el lograr basarse en
una neurona biológica para así implementarlo
en múltiples aplicaciones de ingeniería es
increíble.
Una red neuronal sin importar si es simple o
multicapa puede ser dirigida, por múltiples
métodos, en este caso se uso Simulated
Annealing ya que permite minimizar de forma
efectiva, realizando cierto número de
iteraciones la variable o resultado de la capa
de salida. El algoritmo de Simulated
Annealing permite minimizar errores llegando
a un número por debajo de cero.
9. BIBLIOGRAFÍA
[1] Basogain, Xavier (2014). Redes
Neuronales Artificiales y sus aplicaciones. En
línea en
http://www.ciberesquina.una.edu.ve:
8080/2014_2/350_E.pdf
[2] Salas, Rodrigo (2002). Redes
Neuronales Artificiales. En línea en
http://www.inf.utfsm.cl/~rsalas/Pagin
a_Investigacion/docs/Apuntes/Redes
%20Neuronales%20Artificiales.pdf
[3]Palacios, Francisco José (2003).
Herramientas en GNU/Linux para
estudiantes universitarios. Redes
Neuronales con GNU/Linux . En línea
en
http://www.ibiblio.org/pub/linux/doc
s/LuCaS/Presentaciones/200304curso
-glisa/redes_neuronales/curso-glisa-
redes_neuronales-html/x105.html
[4]Modelos computacionales.Capitulo
5 Redes Neuronales Multicapa. En
línea
http://www.lcc.uma.es/~munozp/doc
umentos/modelos_computacionales/t
emas/Tema5MC-05.pdf
[5]R Romero, R A Gallego, and A
Monticelli. (1996).“Transmission
System Expanssion Planning by
Simulated Annealing”, IEEE Trans on
Power System, Vol 11, No 1, pp 364-
369.
[6]Goméz, Germán, Henao, Juan
Carlos, Salazar
Harold.(2004)Entrenamiento de una
red neuronal artificial. Scientia et
8. Technica Año X, No 24, Mayo 2004.
UTP. ISSN 0122-1701 En línea en
http://revistas.utp.edu.co/index.php/r
evistaciencia/article/viewFile/7307/43
25
[7]Aarts E., Korst J. (1989).
“Simulated Annealing and Boltzmann
Machines”, John Wiley & Son.
[8] R Romero, R A Gallego, and A
Monticelli. (1996). “Transmission
System Expanssion Planning by
Simulated Annealing”, IEEE Trans on
Power System, Vol 11, No 1, pp 364-
369.
http://revistas.utp.edu.co/index.php/r
evistaciencia/article/viewFile/7307/43
25