SlideShare una empresa de Scribd logo
1 de 8
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:
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)
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
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
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
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. 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
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

Más contenido relacionado

La actualidad más candente

Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronaleslennydan11
 
Hardlim hardlims en_matlab
Hardlim hardlims en_matlabHardlim hardlims en_matlab
Hardlim hardlims en_matlabjhymermartinez
 
Función Logsig y tansig
Función Logsig y tansigFunción Logsig y tansig
Función Logsig y tansigVane Erraez
 
Redes neuronales-funciones-activacion-hardlim- hardlims-matlab
Redes neuronales-funciones-activacion-hardlim- hardlims-matlabRedes neuronales-funciones-activacion-hardlim- hardlims-matlab
Redes neuronales-funciones-activacion-hardlim- hardlims-matlabAna Mora
 
Perceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje SupervisadoPerceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje SupervisadoAndrea Lezcano
 
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...Sheyli Patiño
 
Cálculo de variación de voltaje con función purelin y variación de velocidad ...
Cálculo de variación de voltaje con función purelin y variación de velocidad ...Cálculo de variación de voltaje con función purelin y variación de velocidad ...
Cálculo de variación de voltaje con función purelin y variación de velocidad ...kathyR04
 
Perceptrón simple y multicapa
Perceptrón simple y multicapaPerceptrón simple y multicapa
Perceptrón simple y multicapaJefferson Guillen
 
INTRODUCCIÓN A LAS REDES NEURONALES ARTIFICIALES
INTRODUCCIÓN A LAS REDES NEURONALES ARTIFICIALESINTRODUCCIÓN A LAS REDES NEURONALES ARTIFICIALES
INTRODUCCIÓN A LAS REDES NEURONALES ARTIFICIALESESCOM
 
RED NEURONAL ARTIFICIAL . I.A
RED NEURONAL ARTIFICIAL . I.A RED NEURONAL ARTIFICIAL . I.A
RED NEURONAL ARTIFICIAL . I.A daniatacho
 
Características de las Redes Neuronales
Características de las Redes NeuronalesCaracterísticas de las Redes Neuronales
Características de las Redes NeuronalesESCOM
 
Problema de Aplicación sobre la fertilidad en los hombres aplicando las Funci...
Problema de Aplicación sobre la fertilidad en los hombres aplicando las Funci...Problema de Aplicación sobre la fertilidad en los hombres aplicando las Funci...
Problema de Aplicación sobre la fertilidad en los hombres aplicando las Funci...Henry Quezada
 
Redes neuronales Luis Lozano CI 22.840.519
Redes neuronales   Luis Lozano CI 22.840.519Redes neuronales   Luis Lozano CI 22.840.519
Redes neuronales Luis Lozano CI 22.840.519lozanolc
 

La actualidad más candente (19)

Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Hardlim hardlims en_matlab
Hardlim hardlims en_matlabHardlim hardlims en_matlab
Hardlim hardlims en_matlab
 
Función Logsig y tansig
Función Logsig y tansigFunción Logsig y tansig
Función Logsig y tansig
 
Funciones_ hardlim_hardlims
Funciones_ hardlim_hardlimsFunciones_ hardlim_hardlims
Funciones_ hardlim_hardlims
 
Redes neuronales-funciones-activacion-hardlim- hardlims-matlab
Redes neuronales-funciones-activacion-hardlim- hardlims-matlabRedes neuronales-funciones-activacion-hardlim- hardlims-matlab
Redes neuronales-funciones-activacion-hardlim- hardlims-matlab
 
Perceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje SupervisadoPerceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
Perceptrón Simple – Redes Neuronales con Aprendizaje Supervisado
 
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
 
Cálculo de variación de voltaje con función purelin y variación de velocidad ...
Cálculo de variación de voltaje con función purelin y variación de velocidad ...Cálculo de variación de voltaje con función purelin y variación de velocidad ...
Cálculo de variación de voltaje con función purelin y variación de velocidad ...
 
Trabajo rn
Trabajo rnTrabajo rn
Trabajo rn
 
Perceptrón simple y multicapa
Perceptrón simple y multicapaPerceptrón simple y multicapa
Perceptrón simple y multicapa
 
Purelin y poslin
Purelin y poslinPurelin y poslin
Purelin y poslin
 
Trabajo rn
Trabajo rnTrabajo rn
Trabajo rn
 
INTRODUCCIÓN A LAS REDES NEURONALES ARTIFICIALES
INTRODUCCIÓN A LAS REDES NEURONALES ARTIFICIALESINTRODUCCIÓN A LAS REDES NEURONALES ARTIFICIALES
INTRODUCCIÓN A LAS REDES NEURONALES ARTIFICIALES
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
RED NEURONAL ARTIFICIAL . I.A
RED NEURONAL ARTIFICIAL . I.A RED NEURONAL ARTIFICIAL . I.A
RED NEURONAL ARTIFICIAL . I.A
 
Características de las Redes Neuronales
Características de las Redes NeuronalesCaracterísticas de las Redes Neuronales
Características de las Redes Neuronales
 
Problema de Aplicación sobre la fertilidad en los hombres aplicando las Funci...
Problema de Aplicación sobre la fertilidad en los hombres aplicando las Funci...Problema de Aplicación sobre la fertilidad en los hombres aplicando las Funci...
Problema de Aplicación sobre la fertilidad en los hombres aplicando las Funci...
 
Redes neuronales Luis Lozano CI 22.840.519
Redes neuronales   Luis Lozano CI 22.840.519Redes neuronales   Luis Lozano CI 22.840.519
Redes neuronales Luis Lozano CI 22.840.519
 
Perceptron parte 1
Perceptron parte 1Perceptron parte 1
Perceptron parte 1
 

Similar a implementación simulated annealing-en-perceptronmulticapa

48690471 redes-neuronales
48690471 redes-neuronales48690471 redes-neuronales
48690471 redes-neuronalesjcbenitezp
 
Sistemas Basados en Casos IUT
Sistemas Basados en Casos IUTSistemas Basados en Casos IUT
Sistemas Basados en Casos IUTLuis Álamo
 
Función de activación de Logsig y tansig
Función  de activación de Logsig y tansigFunción  de activación de Logsig y tansig
Función de activación de Logsig y tansigVanee2014
 
Introduccion redes neuronales artificiales
Introduccion redes neuronales artificialesIntroduccion redes neuronales artificiales
Introduccion redes neuronales artificialesESCOM
 
Funciones satlin satlins
Funciones satlin satlinsFunciones satlin satlins
Funciones satlin satlinsChristian Lara
 
Función de transferencia compet
Función de transferencia competFunción de transferencia compet
Función de transferencia competRichar León
 

Similar a implementación simulated annealing-en-perceptronmulticapa (20)

48690471 redes-neuronales
48690471 redes-neuronales48690471 redes-neuronales
48690471 redes-neuronales
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Sistemas Basados en Casos IUT
Sistemas Basados en Casos IUTSistemas Basados en Casos IUT
Sistemas Basados en Casos IUT
 
Funciones poslin y purelin
Funciones poslin y purelinFunciones poslin y purelin
Funciones poslin y purelin
 
Slidecats
SlidecatsSlidecats
Slidecats
 
2º asignacion redes neuronales
2º asignacion redes neuronales2º asignacion redes neuronales
2º asignacion redes neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
redes neuronales
redes neuronalesredes neuronales
redes neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Función de activación de Logsig y tansig
Función  de activación de Logsig y tansigFunción  de activación de Logsig y tansig
Función de activación de Logsig y tansig
 
Introduccion redes neuronales artificiales
Introduccion redes neuronales artificialesIntroduccion redes neuronales artificiales
Introduccion redes neuronales artificiales
 
Funciones satlin satlins
Funciones satlin satlinsFunciones satlin satlins
Funciones satlin satlins
 
Función de transferencia compet
Función de transferencia competFunción de transferencia compet
Función de transferencia compet
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
redes competitivas
redes competitivasredes competitivas
redes competitivas
 

Más de Brian Piragauta

ANÁLISIS DE REDES INALÁMBRICAS
ANÁLISIS DE REDES INALÁMBRICASANÁLISIS DE REDES INALÁMBRICAS
ANÁLISIS DE REDES INALÁMBRICASBrian Piragauta
 
Modulacion Amplificacion SPP SMP
Modulacion Amplificacion SPP SMPModulacion Amplificacion SPP SMP
Modulacion Amplificacion SPP SMPBrian Piragauta
 
Proyecto Redes de Alta Velocidad
Proyecto Redes de Alta VelocidadProyecto Redes de Alta Velocidad
Proyecto Redes de Alta VelocidadBrian Piragauta
 
Informe portadora binaria moduladora binaria
Informe portadora binaria   moduladora binariaInforme portadora binaria   moduladora binaria
Informe portadora binaria moduladora binariaBrian Piragauta
 
Proyecto Seguridad en Redes
Proyecto Seguridad en RedesProyecto Seguridad en Redes
Proyecto Seguridad en RedesBrian Piragauta
 
Proyecto Redes Corporativas
Proyecto Redes CorporativasProyecto Redes Corporativas
Proyecto Redes CorporativasBrian Piragauta
 

Más de Brian Piragauta (11)

ANÁLISIS DE REDES INALÁMBRICAS
ANÁLISIS DE REDES INALÁMBRICASANÁLISIS DE REDES INALÁMBRICAS
ANÁLISIS DE REDES INALÁMBRICAS
 
Mapas de Calor
Mapas de CalorMapas de Calor
Mapas de Calor
 
Modulacion Amplificacion SPP SMP
Modulacion Amplificacion SPP SMPModulacion Amplificacion SPP SMP
Modulacion Amplificacion SPP SMP
 
Base de conocimiento
Base de conocimientoBase de conocimiento
Base de conocimiento
 
Ensayo geoingenieria
Ensayo geoingenieriaEnsayo geoingenieria
Ensayo geoingenieria
 
Proyecto Redes de Alta Velocidad
Proyecto Redes de Alta VelocidadProyecto Redes de Alta Velocidad
Proyecto Redes de Alta Velocidad
 
ospf isis
ospf   isisospf   isis
ospf isis
 
Informe portadora binaria moduladora binaria
Informe portadora binaria   moduladora binariaInforme portadora binaria   moduladora binaria
Informe portadora binaria moduladora binaria
 
Exposicion hdb3.pptx
Exposicion hdb3.pptxExposicion hdb3.pptx
Exposicion hdb3.pptx
 
Proyecto Seguridad en Redes
Proyecto Seguridad en RedesProyecto Seguridad en Redes
Proyecto Seguridad en Redes
 
Proyecto Redes Corporativas
Proyecto Redes CorporativasProyecto Redes Corporativas
Proyecto Redes Corporativas
 

Último

NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxJairReyna1
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRyanimarca23
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)dianamateo1513
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxHarryArmandoLazaroBa
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaSebastianQP1
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxluisvalero46
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresSegundo Silva Maguiña
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosfranchescamassielmor
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCarlos Delgado
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 

Último (20)

NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptx
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptx
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieria
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptx
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y Vectores
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negocios
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric Project
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 

implementación simulated annealing-en-perceptronmulticapa

  • 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