Máquina de Boltzmann

Estos son procesos de aprendizaje estocásticos que tienen estructura recurrente y son la base de las primeras técnicas de optimización utilizadas en ANN. La máquina de Boltzmann fue inventada por Geoffrey Hinton y Terry Sejnowski en 1985. Se puede observar más claridad en las palabras de Hinton sobre la máquina de Boltzmann.

“Una característica sorprendente de esta red es que utiliza solo información disponible localmente. El cambio de peso depende únicamente del comportamiento de las dos unidades que conecta, aunque el cambio optimiza una medida global ”- Ackley, Hinton 1985.

Algunos puntos importantes sobre la máquina de Boltzmann:

  • Usan estructura recurrente.

  • Consisten en neuronas estocásticas, que tienen uno de los dos estados posibles, 1 o 0.

  • Algunas de las neuronas en esto son adaptativas (estado libre) y algunas están bloqueadas (estado congelado).

  • Si aplicamos recocido simulado en una red Hopfield discreta, entonces se convertiría en Máquina de Boltzmann.

Objetivo de la máquina de Boltzmann

El objetivo principal de la máquina Boltzmann es optimizar la solución de un problema. Es el trabajo de Boltzmann Machine optimizar los pesos y la cantidad relacionados con ese problema en particular.

Arquitectura

El siguiente diagrama muestra la arquitectura de la máquina Boltzmann. Del diagrama se desprende claramente que se trata de una matriz bidimensional de unidades. Aquí, las ponderaciones de las interconexiones entre unidades son–p dónde p > 0. Los pesos de las autoconexiones están dados porb dónde b > 0.

Algoritmo de entrenamiento

Como sabemos que las máquinas Boltzmann tienen pesos fijos, no habrá algoritmo de entrenamiento ya que no necesitamos actualizar los pesos en la red. Sin embargo, para probar la red tenemos que establecer los pesos así como encontrar la función de consenso (CF).

La máquina Boltzmann tiene un conjunto de unidades Ui y Uj y tiene conexiones bidireccionales en ellos.

  • Estamos considerando el peso fijo, digamos wij.

  • wij ≠ 0 Si Ui y Uj estan conectados.

  • También existe una simetría en la interconexión ponderada, es decir wij = wji.

  • wii también existe, es decir, existiría la auto-conexión entre unidades.

  • Para cualquier unidad Ui, su estado ui sería 1 o 0.

El principal objetivo de la Máquina de Boltzmann es maximizar la Función de Consenso (CF) que puede estar dada por la siguiente relación

$$ CF \: = \: \ estilo de visualización \ sum \ límites_ {i} \ estilo de visualización \ suma \ límites_ {j \ leqslant i} w_ {ij} u_ {i} u_ {j} $$

Ahora, cuando el estado cambia de 1 a 0 o de 0 a 1, entonces el cambio en el consenso puede estar dado por la siguiente relación:

$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ Displaystyle \ sum \ limits_ {j \ neq i} u_ {i} w_ { ij}) $$

aquí ui es el estado actual de Ui.

La variación en el coeficiente (1 - 2ui) viene dado por la siguiente relación:

$$ (1 \: - \: 2u_ {i}) \: = \: \ begin {cases} +1, & U_ {i} \: está \: actualmente \: desactivado \\ - 1, & U_ {i } \: está \: actualmente \: en \ end {casos} $$

Generalmente, unidad Uino cambia su estado, pero si lo hace, entonces la información residiría localmente en la unidad. Con ese cambio, también habría un aumento en el consenso de la red.

La probabilidad de que la red acepte el cambio en el estado de la unidad viene dada por la siguiente relación:

$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$

Aquí, Tes el parámetro de control. Disminuirá a medida que CF alcance el valor máximo.

Algoritmo de prueba

Step 1 - Inicialice lo siguiente para iniciar el entrenamiento -

  • Pesos que representan la restricción del problema
  • Parámetro de control T

Step 2 - Continúe con los pasos 3 a 8, cuando la condición de parada no sea verdadera.

Step 3 - Realice los pasos 4-7.

Step 4 - Suponga que uno de los estados ha cambiado el peso y elija el número entero I, J como valores aleatorios entre 1 y n.

Step 5 - Calcule el cambio en el consenso de la siguiente manera -

$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ Displaystyle \ sum \ limits_ {j \ neq i} u_ {i} w_ { ij}) $$

Step 6 - Calcular la probabilidad de que esta red acepte el cambio de estado.

$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$

Step 7 - Acepte o rechace este cambio de la siguiente manera -

Case I - si R < AF, acepta el cambio.

Case II - si R ≥ AF, rechace el cambio.

Aquí, R es el número aleatorio entre 0 y 1.

Step 8 - Reducir el parámetro de control (temperatura) de la siguiente manera -

T(new) = ⁡0.95T(old)

Step 9 - Pruebe las condiciones de frenado que pueden ser las siguientes:

  • La temperatura alcanza un valor especificado
  • No hay cambio de estado para un número específico de iteraciones