Macchina di Boltzmann ristretta

Da testwiki.
Vai alla navigazione Vai alla ricerca
Schema di una macchina di Boltzmann ristretta con tre unità visibili e quattro unità nascoste (senza unità di bias)

Una macchina di Boltzmann ristretta (RBM) (detta anche modello di Sherrington-Kirkpatrick ristretto con campo esterno o modello di Ising-Lenz-Little stocastico ristretto ) è una rete neurale artificiale stocastica generativa in grado di apprendere una distribuzione di probabilità dall'insieme dei dati in ingresso.[1]

Le RBM furono inizialmente proposte con il nome di Harmonium da Paul Smolensky nel 1986[2] e salirono alla ribalta dopo che Geoffrey Hinton e i suoi collaboratori idearono algoritmi di apprendimento efficienti per questi modelli a metà degli anni 2000. Le RBM hanno trovato applicazioni a problemi di riduzione della dimensionalità[3], classificazione[4], filtraggio collaborativo[5], apprendimento delle feature[6] modellazione degli argomenti[7], l'immunologia[8], e persino di meccanica quantistica a moti corpi[9][10]. A seconda del compito da svolgere, l'addestramento può avvenire in modalità supervisionata o non supervisionata.

Come suggerisce il nome, le RBM sono una variante delle macchine di Boltzmann, con la restrizione che i loro neuroni debbano formare un grafo bipartito:

  • una coppia di nodi appartenenti ciascuno ai due gruppi distinti di unità (comunemente denominate, rispettivamente, unità "visibili" e "nascoste") può avere una connessione simmetrica tra loro; e
  • non ci sono connessioni tra i nodi all'interno di uno stesso gruppo.

Per converso, le macchine di Boltzmann "senza restrizioni" possono avere connessioni tra unità nascoste. Tale restrizione consente algoritmi di addestramento più efficienti di quelli disponibili per la classe generale di macchine di Boltzmann, in particolare l'algoritmo di divergenza contrastiva basato su gradiente[11].

Le RBM possono essere utilizzate anche nelle reti per l'apprendimento profondo. In particolare, si possono formare reti bayesiane profonde "impilando" più RBM e addestrando la rete profonda risultante mediante discesa di gradiente e retropropagazione.[12]

Struttura

Il tipo standard di RBM contiene unità nascoste e visibili a valori binari (booleani) e consiste in una matrice di pesi W di dimensioni m×n. Ogni peso wi,j della matrice è associato alla connessione tra l'unità visibile (input) vi e l'unità nascosta hj. Inoltre, ci sono pesi aggiuntivi per i bias (offset) ai per vi e bj per hj. Dati i pesi e i bias, l'energia di una configurazione (coppia di vettori booleani) (v,h) è definita come segue:

E(v,h)=iaivijbjhjijviwi,jhj

o, in forma matriciale,

E(v,h)=aTvbThvTWh.

Tale funzione d'energia è analoga a quella di una rete di Hopfield. Come per le macchine di Boltzmann generali, la distribuzione di probabilità congiunta per i vettori visibili e nascosti viene definita in termini della funzione d'energia come segue[13]:

P(v,h)=1ZeE(v,h)

dove Z è una funzione di partizione definita come la somma di eE(v,h) su tutte le possibili configurazioni, interpretabile come una costante di normalizzazione necessaria a garantire che la somma delle probabilità sia unitaria. La probabilità marginale di un vettore visibile è la somma delle P(v,h) su tutte le possibili configurazioni dello strato nascosto[13],

P(v)=1Z{h}eE(v,h) ,

e viceversa. Poiché la struttura del grafo dell'RBM è bipartita (quindi non ci sono connessioni intra-strato), le attivazioni delle unità nascoste sono reciprocamente indipendenti date le attivazioni delle unità visibili. Al contrario, le attivazioni delle unità visibili sono reciprocamente indipendenti date le attivazioni delle unità nascoste[11]. Cioè, per m unità visibili e n unità nascoste, la probabilità condizionata di una configurazione delle unità visibili v, data una configurazione delle unità nascoste h, è

P(v|h)=i=1mP(vi|h) .

Invece, la probabilità condizionata di h dato v è

P(h|v)=j=1nP(hj|v) .

Le probabilità di attivazione individuali sono date da:

P(hj=1|v)=σ(bj+i=1mwi,jvi) e P(vi=1|h)=σ(ai+j=1nwi,jhj)

dove σ denota la sigmoide logistica.

Le unità visibili della macchina di Boltzmann ristretta possono essere multinomiali, sebbene le unità nascoste siano Bernoulli. In tal caso, la funzione logistica per le unità visibili è sostituita dalla funzione softmax

P(vik=1|h)=exp(aik+ΣjWijkhj)Σk=1Kexp(aik+ΣjWijkhj)

dove K è il numero di valori discreti che hanno i valori visibili. Sono applicati nella modellazione degli argomenti[7] e nei sistemi di raccomandazione[5].

Relazione con altri modelli

Le macchine di Boltzmann ristrette sono un caso speciale delle macchine di Boltzmann e dei Markov random field[14][15].

Il modello grafico delle RBM trova corrispondenza a quello dell'analisi fattoriale[16].

Algoritmo di addestramento

Le RBM sono addestrate per massimizzare il prodotto delle probabilità assegnate a un insieme di addestramento V (una matrice, ogni riga della quale viene trattata come un vettore visibile v),

argmaxWvVP(v)

o equivalentemente, per massimizzare il valore atteso del logaritmo della probabilità di un campione di addestramento v selezionato casualmente da V[14][15]:

argmaxW𝔼[logP(v)]

L'algoritmo utilizzato più spesso per addestrare le RBM, ovvero per ottimizzare la matrice dei pesi W, è l'algoritmo di divergenza contrastiva (CD) di Hinton, sviluppato originariamente per addestrare modelli PoE (<i>prodotti di esperti</i>)[17][18]. L'algoritmo effettua il campionamento di Gibbs e viene utilizzato all'interno di una procedura di discesa del gradiente per calcolare l'aggiornamento dei pesi (similmente a come la backpropagation viene usata in tale procedura per l'addestramento delle reti neurali feedforward).

La procedura di base di divergenza contrastiva a passo singolo (CD-1), dato un singolo campione, può essere riassunta come segue:

  1. Si considera un campione di training v, si calcolano le probabilità delle unità nascoste e si estrae un vettore di attivazione nascosto h da questa distribuzione di probabilità.
  2. Si calcola il cosiddetto gradiente positivo, ossia il prodotto esterno di v e h.
  3. Da h, si campiona una ricostruzione v per le unità visibili poi, da questa, si ri-campionano le attivazioni nascoste h (passo di Gibbs sampling).
  4. Si calcola il cosiddetto gradiente negativo, ossia il prodotto esterno di v e h.
  5. Si calcola l'aggiornamento della matrice dei pesi W come differenza fra il gradiente positivo e quello negativo, moltiplicata per un certo learning rate ϵ: ΔW=ϵ(vh𝖳vh'𝖳) .
  6. Si aggiornano i bias a e b in modo analogo: Δa=ϵ(vv), Δb=ϵ(hh) .

Una guida pratica per l'addestramento delle RBM scritta da Hinton è disponibile nella sua homepage[13].

Letteratura

Altri collegamenti

Note

  1. Template:Cita pubblicazione
  2. Template:Cita libro
  3. Template:Cita pubblicazione
  4. Template:Cita conferenza
  5. 5,0 5,1 Template:Cita conferenza
  6. Template:Cita conferenza
  7. 7,0 7,1 Template:Cita conferenza
  8. Template:Cita pubblicazione
  9. Template:Cita pubblicazione
  10. Template:Cita pubblicazione
  11. 11,0 11,1 Miguel Á. Carreira-Perpiñán and Geoffrey Hinton (2005). Template:Cita testo. Artificial Intelligence and Statistics.
  12. Template:Cita pubblicazione
  13. 13,0 13,1 13,2 Geoffrey Hinton (2010). Template:Cita testo. UTML TR 2010–003, University of Toronto.
  14. 14,0 14,1 Template:Cita pubblicazione
  15. 15,0 15,1 Asja Fischer and Christian Igel. Template:Cita testo. Pattern Recognition 47, pp. 25-39, 2014
  16. Template:Cita pubblicazione
  17. Geoffrey Hinton (1999). Template:Cita testo. ICANN 1999.
  18. Template:Cita pubblicazione

Bibliografia

Collegamenti esterni