Download Máquinas Estocásticas

Document related concepts

Máquina de Boltzmann wikipedia , lookup

Algoritmo de recocido simulado wikipedia , lookup

Hopfield (RNA) wikipedia , lookup

Propagación hacia atrás wikipedia , lookup

Teoría hebbiana wikipedia , lookup

Transcript
7
Máquinas Estocásticas
______________________________________________________________________
7.1 Introducción
Cuando estudiamos los modelos recurrentes de Hopfield nos encontramos con el
inconveniente de que la red, que busca la configuración de mínima energía
computacional, suele quedar atrapada en mínimos locales que no son globales, puesto
que el que una configuración de la red tenga menor energía que sus configuraciones
vecinas no quiere decir que sea la de menor energía. Por otra parte, se podría pensar que
para una red de Hopfield con N unidades de proceso bastaría evaluar la función de
energía en las 2N configuraciones posibles y determinar directamente la de menor
energía. Sin embargo, la cantidad 2N suele ser demasiado grande para permitir dicha
evaluación en un tiempo de cómputo razonable. Así, para intentar resolver dicho
problema, vamos a recurrir a métodos estocásticos (probabilísticos) de búsqueda global.
En concreto, vamos a estudiar un método estocástico general de búsqueda global basado
en conceptos y técnicas de la física, especialmente de la mecánica estadística, llamado
el método de recocido simulado o de enfriamiento estadístico. Asimismo, vamos a
estudiar una versión determinística de dicho método. Finalmente, vamos a estudiar una
red neuronal binaria, llamada máquina de Boltzmann, que utiliza dicho método e
incorpora su propia regla de aprendizaje, y que permite implementar asociaciones entre
entradas y salidas de gran interés para el reconocimiento de patrones.
7.2. El Algoritmo de Metrópolis
El método de optimización global basado en el algoritmo de Metrópolis está inspirado
en la mecánica estadística que es la disciplina central de la física de la materia
condensada y trata del comportamiento de sistemas con muchos grados de libertad en
equilibrio térmico a una temperatura finita. El punto de partida de la mecánica
estadística es una función de energía E(x) que mide la energía térmica de un sistema
físico en un estado (configuración) dado x, donde x pertenece a un conjunto de posibles
estados S. Si la temperatura absoluta del sistema es mayor que cero el estado x variará
en el tiempo causando también variación de su energía. Esta variación se realiza con
una tendencia a disminuir (en promedio) la energía del sistema y continúa hasta que se
alcanza un estado de mínima energía (equilibrio térmico). Un resultado fundamental de
la física establece que en equilibrio térmico cada uno de los estados posibles se alcanza
con probabilidad
π ( x) =
e
−
E ( x)
kT
∑e
−
E (x)
kT
(1)
x∈S
donde k es la constante de Boltzmann (1.38×10−16 erg/K) y T es la temperatura absoluta.
Al numerador se le llama el factor de Boltzmann y a esta distribución de probabilidad se
le llama distribución de Boltzmann-Gibbs. Obsérvese que se garantiza que un estado
(configuración) de menor energía es más probable que un estado de mayor energía.
Para modelar este sistema dinámico utilizaremos una cadena de Markov, es decir,
una sucesión de variables aleatorias {Xo, X1, X2,..., Xn,….}, verificando la siguiente
propiedad:
P{ X n +1 = x n +1 / X 0 = x 0 , X 1 = x 1 ,...., X n −1 = x n −1 , X n = x n } = P{ X n +1 = x / X n = x n }
donde la variable aleatoria Xn nos da el estado en el que se encuentra el sistema en el
tiempo n, n=1,2,…, y xn+1 es un estado del conjunto S de estados posibles. Dicha
expresión nos dice que la probabilidad (condicionada) de que el sistema pase al estado
xn+1 en la iteración n+1 cuando en las iteraciones anteriores estaba en los estados
señalados por las variables aleatorias X0, X1, …,Xn sólo depende directamente del estado
en el que se encontraba en la iteración anterior, n. Las cantidades P{Xn+1=xn+1/ Xn=xn)
son las probabilidades de transición.
Nosotros estamos interesados en el comportamiento límite del sistema (después de
un gran número de transiciones), pues deseamos que el sistema se estabilice y tenga
una distribución estacionaria, es decir, que
lim P{ X n = x / X 0 = x' } = π (x)
n →∞
Esta expresión establece que la probabilidad de encontrarnos en el estado x después de
un número n suficientemente grande de iteraciones es independiente del estado de
partida. A la distribución de probabilidad π(x) se le llama distribución de estado estable,
estacionaria o de equilibrio.
Una condición suficiente en términos de las probabilidades de transición para que la
distribución sea estacionaria, es el principio del balance pormenorizado, que establece
que en el equilibrio térmico la tasa de ocurrencia de transiciones de un estado x a otro
x' sea igual a la tasa de transiciones inversas (de transiciones de x' a x), es decir,
π (x) P{ X n +1 = x' / X n = x} = π (x' ) P{ X n +1 = x / X n = x' )
es decir,
∆E
−
P{ X n +1 = x' / X n = x) π (x' )
=
= e kT
P´{X n +1 = x / X n = x' ) π (x)
(2)
si se elige como distribución estacionaria la dada en la expresión (1), siendo ∆E =
E(x')−E(x).
142
Por ello, el algoritmo de Metrópolis, Rosenbluth, Teller y Teller (1953) elige como
probabilidades de transición
⎧1
⎪
P{ X n +1 = x / X n = x' ) = ⎨ - ∆E
⎪⎩e kT
si ∆E < 0
si ∆E ≥ 0
(3)
Presenta la ventaja de que se realicen más transiciones a niveles más bajos de energía, al
mismo tiempo que permite algunas veces transiciones a estados de mayor energía, lo
que permite, por una parte, que se alcance más rápidamente un estado de equilibrio, y,
por otra, se le permite escapar de mínimos locales.
Obsérvese que si al pasar de un estado x´ a otro x decrece la función de energía
entonces si pasamos de x a x´ se incrementa. En el primer caso, la probabilidad de
−
∆E
transición es uno mientras que en el otro es e kT y su cociente cumple la condición (2).
En el algoritmo de Metrópolis se parte de un estado x al que se le aplica una
perturbación aleatoria ∆x, obteniendo el nuevo estado x+∆x; si con el nuevo estado se
disminuye la energía entonces se acepta dicho estado como nuevo punto de búsqueda;
en caso contrario, se acepta dicho estado como nuevo punto de búsqueda con
probabilidad exp(-∆E/T), pues nosotros sustituiremos la constante kT por el parámetro
de control T.
7.3 La técnica de Recocido Simulado
Aunque podríamos aplicar el algoritmo de Metrópolis para generar nuevos estados a
baja temperatura, ya que a baja temperatura los estados de menor energía son mucho
más favorecidos (más probables), sin embargo la tasa de convergencia del algoritmo es
demasiado lenta a muy bajas temperaturas. Así, el método preferido para mejorar la
eficiencia computacional consiste en hacer que el sistema opere a altas temperaturas
donde la convergencia al equilibrio es rápida y entonces mantener el sistema en
equilibrio conforme se va disminuyendo gradualmente la temperatura. Esta es la técnica
del recocido de metales que consiste en calentar un metal a altas temperaturas (caldear)
para después ir enfriándolo gradualmente y conseguir así metales resistentes, con ciertos
grados de dureza y elasticidad, y recuperar de nuevo la ductilidad (admitir
deformaciones en frío sin llegar a romperse) o el temple que suelen perder al trabajarlos.
Con ello se consigue que un sistema físico, como el constituido por las moléculas de un
gas o los átomos magnéticos (imanes) de un sólido (aleación), alcance configuraciones
de baja energía.
Por lo tanto, usaremos la técnica del recocido simulado desarrollada por Kirkpatrick,
Gilatt y Vecchi (1983) que consta de:
•
•
Un esquema de enfriamiento que regula cómo va disminuyendo gradualmente la
temperatura.
Un algoritmo, como el algoritmo de Metrópolis, que se utiliza para encontrar la
distribución de equilibrio para cada nuevo valor de la temperatura obtenido por
el esquema de enfriamiento.
143
Al comienzo del algoritmo de recocido simulado se parte de un valor alto de T y
conforme progresa el algoritmo este valor se va disminuyendo gradualmente hasta el
valor cero según el esquema de enfriamiento elegido para T. Para valores más altos de
T, la probabilidad de pasar a un estado de mayor energía es más alta, mientras que para
valores más pequeños de T dicha probabilidad es más baja. El esquema de enfriamiento
nos especifica la forma gradual de ir disminuyendo los valores de T conforme
evoluciona el algoritmo; si es demasiado rápido entonces se puede llegar, por una
convergencia prematura, a un mínimo local no global, mientras que si es demasiado
lento conlleva una cantidad excesiva de cómputo. Desafortunadamente, se ha
demostrado teóricamente (Geman y Geman, 1984) que se debe reducir T muy
lentamente en comparación a la inversa del logaritmo del número de iteraciones k
(tiempo), es decir,
To
T (k ) =
,
k=1,2,3,....
1 + ln k
para garantizar que el algoritmo converja casi siempre a un mínimo global. Para acelerar
esta búsqueda se han propuesto muchos métodos. En la práctica, una buena solución
mínimo local puede ser suficiente y para ello podemos utilizar un esquema de
enfriamiento rápido, por ejemplo:
T (k + 1) = αT (k ) ,
donde 0.85≤α≤0.98. Dicho esquema supone una reducción exponencial de la
temperatura.
Ahora, vamos a considerar una red de Hopfield constituida por N unidades de
proceso bipolares, cuya función de energía computacional para el estado
(configuración) x(k ) = ( s1 (k ), s 2 (k ),..., s N (k )) presentado en la iteración k viene dada
por la siguiente expresión:
E (x(k )) = −
1 N
N
N
w s (k ) s j (k ) + ∑i =1 θ i s i (k )
∑
i =1 ∑ j =1 ij i
2
Si modificamos la dinámica de la computación de dicha red teniendo en cuenta el
método de recocido simulado, de manera que si una configura vecina, obtenida al elegir
una unidad de proceso aleatoriamente y cambiar su estado, conduce a una configuración
de mayor energía, entonces se acepta tal cambio con probabilidad exp(-∆E(k)/T(k)).
Dicha posibilidad permite a la red escapar de mínimos locales. Por otra parte, si una
configura vecina, obtenida al elegir una unidad de proceso aleatoriamente y cambiar su
estado, conduce a una configuración de menor energía, entonces se realiza dicho
cambio, lo que favorecerá la estabilización de la red. De esta manera tenemos una
dinámica de la computación para la red de Hopfield basada en un método de búsqueda
global en lugar de la dinámica clásica basada en el método del gradiente que le permite
encontrar el mínimo global de la función de energía o mínimos locales aceptables. Por
lo tanto, tenemos el siguiente algoritmo que describe la evolución de la red en el que
rand[0,1) es un número aleatorio del intervalo [0,1):
144
ALGORITMO
Paso 0 Elegir una configuración inicial de la red (k=0) y
un esquema de enfriamiento T(k).
Paso 1
Hacer k ← k + 1
Paso 2 Elegir aleatoriamente una unidad de proceso;
supongamos que su estado es si(k) correspondiente a la
configuración de la red x(k ) = ( s1 (k ), s 2 (k ),..., s N (k )) .
•
•
Si la configuración x(k + 1) = ( s1 (k ), s 2 (k ),...,− s i (k ),..., s N (k ))
verifica que E(k+1) < E(k) entonces se toma como
nueva configuración,
Si no, entonces
elegir también
o si exp(-∆E(k)/T(k))>rand[0,1)
si(k+1) = −si(k) para la nueva configuración,
o si no, la nueva configuración es la misma que
la anterior, si(k+1) = si(k).
Paso 3 Si k = kmax (u otro criterio de parada se cumple
que garantice que todas las unidades de proceso han sido
actualizadas varias veces) parar, la configuración obtenida
es la buscada. Si no, volver al paso 1.
Por otra parte, en el cálculo del incremento de la energía ∆E(k) debemos de tener en
cuenta que
∆E (k ) =
= E ( s1 (k ), s 2 (k ),...,− s i (k ),..., s N (k )) − E ( s1 (k − 1), s 2 (k − 1),..., s i (k − 1),..., s N (k − 1))
= 2s i (k )hi (k ) ,
N
donde hi (k ) = ∑ wij s j (k ) es el potencial sináptico de la unidad de proceso i.
j =1
7.4 La máquina de Boltzmann
La máquina de Boltzmann es una máquina estocástica constituida por unidades de
proceso (neuronas) estocásticas con conexiones sinápticas simétricas entre las mismas.
Dichas unidades de proceso son de dos tipos funcionales: visibles u ocultas, como se
muestra en la figura 1. Las unidades visibles sirven de interfaz entre la red y el entorno
en el que opera (recogen la información suministrada). Durante la fase de
entrenamiento se ajustan los estados de todas las unidades visibles a estados específicos
establecidos por los patrones de entrenamiento (entorno en el que opera) pueden ser, a
su vez, de entrada o de salida mientras que las unidades ocultas siempre operan
libremente y se utilizan para explicar restricciones subyacentes contenidas en los
patrones de entrada.
145
neuronas ocultas
Neuronas de entrada
Neuronas de salida
Figura 1. Arquitectura de la máquina de Boltzmann.
La máquina de Boltzmann es una máquina estocástica compuesta por unidades de
proceso estocásticas (probabilísticas). Una unidad de proceso probabilística (i) es
aquella cuya salida (Si) es una variable aleatoria binaria con una distribución de
probabilidad, que es función de su potencial sináptico de entrada, definida por la
siguiente expresión:
P ( S i = +1) =
1
1 + e − 2 hi / T
Hemos representado el estado de la unidad de proceso i por Si, ya que se trata de una
variable aleatoria. La utilización de esta distribución de probabilidad se basa en la
mecánica estadística. El parámetro T desempeña el papel de la temperatura y controla el
grado de aleatoriedad de la salida; cuando T es grande la red toma los dos valores
posibles con probabilidades casi iguales, pues casi no interviene el potencial sináptico, y
se consigue que los espines magnéticos (que se corresponde con nuestras unidades de
proceso) estén orientados hacia arriba o hacia abajo con igual probabilidad (las
fluctuaciones térmicas favorecen los cambios de orientación de los espines magnéticos)
mientras que si T es próximo a cero la neurona es casi determinística, ya que toma el
valor +1, con probabilidad próxima a 1, cuando el potencial sinápticos es positivo, y se
corresponde con que los espines magnéticos se orientan alineándose con el campo
imperante.
La descripción matemática anterior del efecto de las fluctuaciones térmicas es un
modelo Ising con dinámica de Glauber (1963):
⎧+ 1
S i (k ) = ⎨
⎩- 1
con probabilidad
g (hi )
con probabilidad 1 − g (hi )
146
siendo g (hi ) =
1
1 + e − 2 hi / T
Hay que tener en cuenta también que
1 − g (hi ) =
1
1 + e 2 hi / T
pues 1-g(u)=g(−u), y que el parámetro T se puede utilizar para controlar la
aproximación de la función g a la función signo (cuando T→0 se aproxima a dicha
función). Además,
1
• Cuando T es “grande” entonces P ( S i = +1) ≈
2
si hi > 0
⎧1
• Cuando T es “pequeño” entonces P ( S i = +1) ≈ ⎨
si hi < 0
⎩0
que se comporta como el Modelo de Hopfield determinístico.
Hinton y Sejnowski (1983) introdujeron una regla de aprendizaje para la máquina de
Boltzmann cuyo objetivo es ajustar los pesos sinápticos de la red de forma que las
neuronas visibles implementen una distribución de probabilidad deseada determinada
por los patrones de entrenamiento (cada patrón de entrenamiento establece una relación
entre una entrada y una salida deseada), es decir, una correspondencia (asociación)
establecida a través de un conjunto de patrones de entrada y sus correspondientes
salidas deseadas, de manera que puede haber varias salidas posibles para una entrada.
Un patrón de entrenamiento puede tener salida diferente que otro con la misma entrada,
y la red debe aprender también la frecuencia apropiada con la que ocurren las diferentes
salidas.
El proceso de aprendizaje se lleva a cabo en dos etapas: una etapa de bloqueo o
ajuste donde se ajustan las unidades visibles a los patrones de entrenamiento mientras
que las unidades ocultas evolucionan según la dinámica de la red; en la otra etapa libre
sólo se ajustan las neuronas de entrada y las demás evolucionan libremente.
Para deducir la regla de aprendizaje vamos a representar por α a una configuración
concreta de los estados de las neuronas visibles y por β representan una configuración
concreta de los estados de las neuronas ocultas. Asimismo, representaremos por
P(α) : probabilidad de que las neuronas visibles presenten la configuración α
cuando la red opera de forma bloqueada (ajustada a las condiciones del
entorno), es decir, la probabilidad deseada.
Q(α) : probabilidad de que las neuronas visibles presenten la configuración α
cuando la red opera de forma libre (depende de los pesos sinápticos de la red).
Para cumplir nuestro objetivo vamos a determinar los pesos sinápticos de forma que se
minimice la entropía relativa (medida de información o divergencia de KullbackLeibler), definida por la expresión
2M
⎛ P (α ) ⎞
⎟⎟
H = ∑ P (α ) ln⎜⎜
α =1
⎝ Q(α ) ⎠
que es una medida de la discrepancia entre la distribución de probabilidad del modelo
que implementa la red y del modelo deseado, siendo M el número de unidades de
147
proceso visibles y 2M el número total de configuraciones posibles que pueden presentar
las M unidades de proceso visibles (bipolares). Obsérvese que la entropía es no negativa
y cuando Q(α)=P(α) vale cero.
Se trata de modificar los pesos sinápticos de la red de manera que se pase a una
nueva configuración de menor entropía relativa utilizando para ello el método del
gradiente, es decir, moviéndose en la dirección del gradiente de la entropía pero en
sentido opuesto, es decir,
∆wij = −η
P (α ) ∂Q(α )
∂H
=η∑
∂wij
α Q (α ) ∂wij
(4)
pues P(α) no depende de wij . Teniendo en cuenta que utilizamos la distribución de
Boltzmann en esta red, se tiene que
Q(α ) = ∑ P(α , β ) =
∑β e
−
E (α , β )
T
Z
donde Z es la constante de normalización para que sea una distribución de probabilidad,
β
es decir, Z = ∑ e
−
E (α , β )
T
. Por lo tanto,
α ,β
∂Q(α )
=
∂wij
∑β e
− E (α , β ) / T
s i (α , β ) s j (α , β )
−
TZ
∑β P(α , β )s (α , β )s
i
=
donde
si s j
(α , β )
j
−
T
libre
( ∑ e − E (α , β ) / T ) ∑ e − E ( λ , µ ) / T s i ( λ , µ ) s j (λ , µ )
β
λ ,µ
TZ 2
Q(α ) s i s j
libre
T
es la media de los valores sisj en la fase libre.
Sustituyendo la expresión anterior en (4) se llega a que
∆wij =
=
η⎛
⎜ ∑ P(α )∑ P( β / α ) s i s j − s i s j
T ⎜⎝ α
β
η
T
(ss
i
j
bloqueo
− si s j
libre
)
⎞
⎟
libre ⎟
⎠
(5)
Así, el primer término de la derecha es el valor medio de los productos sisj cuando las
unidades visibles están ajustadas a los valores deseados según las distribución P(α) (la
correlación en la fase de bloqueo entre el estado de la neurona i y el estado de la
neurona j); mientras que el segundo término es el valor medio de los productos sisj
(correlación) cuando la red opera libremente.
148
ALGORITMO de la MÁQUINA de BOLTZMANN ESTOCÁSTICA
Paso 1: Inicio
Inicia los pesos sinápticos de la red con valores aleatorios entre –1 y 1
Paso 2: Fase de bloqueo
Ajustar las unidades visibles a los patrones de entrenamiento. Si hay varias
salidas posibles para una misma entrada entonces cada salida se debe ajustar
con la frecuencia apropiada.
Realizar un enfriamiento estadístico, para cada patrón entrada-salida, según
una secuencia dada de valores decrecientes de la temperatura, To,T1,...,Tfinal; por
ejemplo: Tk=0.95Tk-1.
Actualizar la red, para cada valor de la temperatura, eligiendo aleatoriamente
una neurona oculta, y asignarle el valor +1 con probabilidad
1
P ( X i = +1) =
1 + e − 2 hi / T
Alcanzada la temperatura final, calcular la media de los valores del producto
sisj, en cada actualización (correlación), para cada par de neuronas i, j.
Paso 3: Fase libre
Repetir las computaciones del paso 2 pero ajustando sólo las neuronas de
entrada y estimar también las correlaciones.
Paso 4: Actualización de los pesos sinápticos
Actualizar los pesos sinápticos según la regla de aprendizaje de Boltzmann:
∆wij =
η
(ss
T
donde η es la tasa de aprendizaje.
i
j
bloqueo
− si s j
libre
)
Paso 5:
Repetir los pasos anteriores hasta que el procedimiento de aprendizaje
converja (es decir, cuando no se produzcan cambios en el valor de los pesos
sinápticos)
7.5 El Recocido Simulado determinístico: Algoritmo de recocido de
campo medio (mean-field)
El algoritmo anterior suele ser muy lento, entre otras cosas porque va de un vértice a
otro (del hipercubo de dimensión N cuyos vértices se corresponden con las
configuraciones diferentes de la red) a través de sus aristas. No tiene en cuenta la
valiosa información que nos suministra el gradiente cuando los estados de las unidades
de proceso son analógicos (continuos), es decir, que pueden ser puntos del interior de
dicho hipercubo. Por lo tanto, un método más rápido se puede conseguir si permitimos
que las unidades de proceso tomen valores analógicos (del intervalo [-1,1]) y al final
del proceso de búsqueda forzamos a que dichos valores sean bipolares. Esto se
149
consigue si suponemos que el estado de cada unidad de proceso i viene dado por la
expresión
h
1
s i (k ) = tanh( i ) =
(6)
− 2 hi ( k ) / T
T
1+ e
N
donde hi (k ) = ∑ wij s j (k ) es el potencial sináptico de la unidad de proceso i.
j =1
Obsérvese que hemos sustituido la función signo, como función de transferencia, por la
función tangente hiperbólica y que, conforme T va disminuyendo, la función de
transferencia analógica (continua) se aproxima a la función signo (discontinua).
El estado analógico que presenta la unidad de proceso i es el valor medio que toma
una unidad de proceso bipolar probabilística, pues
E ( S i (k )) = (+1)
1
1+ e
− 2 hi ( k ) / T
+ (−1)
1
1+ e
2 hi ( k ) / T
=
1
1+ e
− 2 hi ( k ) / T
En los espines magnéticos, su orientación depende de su campo magnético local
(potencial sináptico de la unidad de proceso), y la teoría del campo medio consiste en
reemplazar la fluctuación verdadera hi por su valor medio, es decir, por
N
E (hi ) = ∑ wij E ( S j ) , i = 1,2,…,N.
j =1
Sustituyendo el potencial sináptico de cada unidad de proceso por su potencial sináptico
medio obtenemos un sistema no lineal de N ecuaciones con N incógnitas,
E (hi )
) , i = 1,2,…,N.
T
Por eso se dice que este modelo es determinístico, puesto que se puede reducir a la
resolución determinística de un sistema de ecuaciones cuando la temperatura es
reducida.
E (S i ) = tanh(
ALGORITMO
Paso 0 Elegir una configuración inicial de la red (k=0) y
un esquema de enfriamiento T(k).
Paso 1
Hacer k ← k + 1
Paso 2 Elegir aleatoriamente una unidad de proceso;
supongamos que su estado es si(k) correspondiente a la
configuración de la red x(k ) = ( s1 (k ), s 2 (k ),..., s N (k )) . Calcular
s i (k + 1) =
1
1+ e
− 2 hi ( k ) / T
Paso 3 Si k = kmax (u otro criterio de parada se cumple
que garantice que todas las unidades de proceso han sido
150
actualizadas varias veces) parar, la configuración obtenida
es la buscada. Si no, volver al paso 1.
En la práctica, ambos algoritmos conducen a soluciones similares pero el método de
recocido determinístico es mucho más rápido.
7.6 Aprendizaje de Boltzmann determinístico
La complejidad computacional del proceso de aprendizaje de la Máquina de Boltzmann
es muy alta puesto que cada patrón se tiene que presentar varias veces a las diferentes
temperaturas suministradas por el esquema de enfriamiento para obtener los valores
medios de las correlaciones sisj entre cada par de unidades de proceso. Por ello, es
preferible sustituir el algoritmo de recocido simulado que utiliza dicha máquina por un
algoritmo de recocido simulado determinístico que consiste en sustituir los valores
medio s i s j de la expresión (5) por el producto de los valores analógicos, sisj, dados
por la expresión (6). Al final de proceso de recocido simulado se alcanzan valores de si
bipolares de manera que el sistema se ha ido moviendo dentro del hipercubo y al final
alcanza una vértice del mismo correspondiente a una configuración bipolar de la red.
Por lo tanto, si partimos de un conjunto P de patrones de entrenamiento que
establecen una relación o asociación entre entradas y salidas, un esquema de
enfriamiento y una tasa de aprendizaje η, el algoritmo de la máquina de Boltzmann
determinística es el siguiente:
ALGORITMO de la MÁQUINA de BOLTZMANN DETERMINÍSTICA
Paso 1: Inicio
Seleccionar un conjunto de entrenamiento P, un esquema de enfriamiento y
una tasa de aprendizaje. Iniciar los pesos sinápticos de la red con valores
aleatorios entre –1 y 1
Paso 2: Fase de bloqueo
Ajustar las unidades visibles a los patrones de entrenamiento. Si hay varias
salidas posibles para una misma entrada entonces cada salida se debe ajustar
con la frecuencia apropiada.
Realizar un enfriamiento estadístico, para cada patrón entrada-salida, según
una secuencia dada de valores decrecientes de la temperatura, To,T1,...,Tfinal; por
ejemplo: Tk=0.95Tk-1.
Actualizar la red, para cada valor de la temperatura, eligiendo aleatoriamente
una neurona oculta, y asignarle el valor
1
s i (k + 1) =
− 2 hi ( k ) / T
1+ e
Alcanzada la temperatura final, calcular los valores del producto sisj, en cada
actualización (correlación), para par de neuronas i, j.
Paso 3: Fase libre
151
Repetir las computaciones del paso 2 pero ajustando sólo las neuronas de
entrada y estimar también las correlaciones.
Paso 4: Actualización de los pesos sinápticos
Actualizar los pesos sinápticos según la regla de aprendizaje de Boltzmann:
∆wij =
η
([s s ]
T
donde η es la tasa de aprendizaje.
i
j bloqueo
[ ]
− si s j
libre
)
Paso 5:
Repetir los pasos anteriores hasta que el procedimiento de aprendizaje
converja (es decir, cuando no se produzcan cambios en el valor de los pesos
sinápticos)
Al final del algoritmo encontramos los pesos sinápticos de la red con los que se
pretende que la máquina consiga una representación adecuada de la distribución
estadística, o la relación-asociación entre entradas y salidas que se desea implementar.
Obsérvese que las correlaciones medias s s j
que calcula la máquina de Boltzmann
estocástica son estimadas por el simple producto de los valores analógicos sisj , es decir,
que
s s j ≈ E (S i ) E (S j ) ≈ si s j .
152