Boltzmann Machine

Questi sono processi di apprendimento stocastici con struttura ricorrente e sono la base delle prime tecniche di ottimizzazione utilizzate in ANN. Boltzmann Machine è stata inventata da Geoffrey Hinton e Terry Sejnowski nel 1985. Si può osservare una maggiore chiarezza nelle parole di Hinton su Boltzmann Machine.

“Una caratteristica sorprendente di questa rete è che utilizza solo le informazioni disponibili localmente. Il cambiamento di peso dipende solo dal comportamento delle due unità che collega, anche se il cambiamento ottimizza una misura globale ”- Ackley, Hinton 1985.

Alcuni punti importanti sulla Boltzmann Machine -

  • Usano la struttura ricorrente.

  • Sono costituiti da neuroni stocastici, che hanno uno dei due stati possibili, 1 o 0.

  • Alcuni dei neuroni in questo sono adattivi (stato libero) e alcuni sono bloccati (stato congelato).

  • Se applichiamo la ricottura simulata su una rete Hopfield discreta, allora diventerebbe Boltzmann Machine.

Obiettivo della Boltzmann Machine

Lo scopo principale di Boltzmann Machine è ottimizzare la soluzione di un problema. È compito di Boltzmann Machine ottimizzare i pesi e la quantità relativi a quel particolare problema.

Architettura

Il diagramma seguente mostra l'architettura della macchina Boltzmann. È chiaro dal diagramma che si tratta di una matrice bidimensionale di unità. Qui, i pesi sulle interconnessioni tra le unità sono–p dove p > 0. I pesi delle auto-connessioni sono dati dab dove b > 0.

Algoritmo di formazione

Poiché sappiamo che le macchine Boltzmann hanno pesi fissi, quindi non ci sarà alcun algoritmo di addestramento poiché non è necessario aggiornare i pesi nella rete. Tuttavia, per testare la rete dobbiamo impostare i pesi e trovare la funzione di consenso (CF).

La macchina Boltzmann ha una serie di unità Ui e Uj e ha connessioni bidirezionali su di essi.

  • Stiamo considerando il peso fisso diciamo wij.

  • wij ≠ 0 Se Ui e Uj sono collegati.

  • Esiste anche una simmetria nell'interconnessione ponderata, ad es wij = wji.

  • wii esiste anche, cioè ci sarebbe l'auto-connessione tra le unità.

  • Per qualsiasi unità Ui, il suo stato ui potrebbe essere 1 o 0.

L'obiettivo principale di Boltzmann Machine è quello di massimizzare la funzione di consenso (CF) che può essere data dalla seguente relazione

$$ CF \: = \: \ displaystyle \ sum \ limits_ {i} \ displaystyle \ sum \ limits_ {j \ leqslant i} w_ {ij} u_ {i} u_ {j} $$

Ora, quando lo stato cambia da 1 a 0 o da 0 a 1, il cambiamento di consenso può essere dato dalla seguente relazione:

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

Qui ui è lo stato attuale di Ui.

La variazione del coefficiente (1 - 2ui) è dato dalla seguente relazione -

$$ (1 \: - \: 2u_ {i}) \: = \: \ begin {case} +1, & U_ {i} \: is \: currently \: off \\ - 1, & U_ {i } \: è \: attualmente \: on \ end {case} $$

Generalmente, unit Uinon cambia il proprio stato, ma in tal caso le informazioni risiederebbero localmente nell'unità. Con quel cambiamento, ci sarebbe anche un aumento del consenso della rete.

La probabilità della rete di accettare il cambiamento di stato dell'unità è data dalla seguente relazione:

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

Qui, Tè il parametro di controllo. Diminuirà quando la CF raggiunge il valore massimo.

Algoritmo di test

Step 1 - Inizializza quanto segue per iniziare la formazione -

  • Pesi che rappresentano il vincolo del problema
  • Parametro di controllo T

Step 2 - Continuare i passaggi 3-8, quando la condizione di arresto non è vera.

Step 3 - Eseguire i passaggi 4-7.

Step 4 - Supponi che uno degli stati abbia modificato il peso e scegli il numero intero I, J come valori casuali tra 1 e n.

Step 5 - Calcola la variazione del consenso come segue -

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

Step 6 - Calcola la probabilità che questa rete accetti il ​​cambiamento di stato

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

Step 7 - Accetta o rifiuta questa modifica come segue -

Case I - se R < AF, accetta la modifica.

Case II - se R ≥ AF, rifiuta la modifica.

Qui, R è il numero casuale compreso tra 0 e 1.

Step 8 - Ridurre il parametro di controllo (temperatura) come segue -

T(new) = ⁡0.95T(old)

Step 9 - Verifica delle condizioni di arresto che possono essere le seguenti:

  • La temperatura raggiunge un valore specificato
  • Non vi è alcun cambiamento di stato per un numero specificato di iterazioni