Download Máquinas Estocásticas
Document related concepts
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