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
[modifica | modifica wikitesto]Il tipo standard di RBM contiene unità nascoste e visibili a valori binari (booleani) e consiste in una matrice di pesi di dimensioni . Ogni peso della matrice è associato alla connessione tra l'unità visibile (input) e l'unità nascosta . Inoltre, ci sono pesi aggiuntivi per i bias (offset) per e per . Dati i pesi e i bias, l'energia di una configurazione (coppia di vettori booleani) è definita come segue:
o, in forma matriciale,
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]:
dove è una funzione di partizione definita come la somma di 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 su tutte le possibili configurazioni dello strato nascosto[13],
- ,
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 unità visibili e unità nascoste, la probabilità condizionata di una configurazione delle unità visibili , data una configurazione delle unità nascoste , è
- .
Invece, la probabilità condizionata di dato è
- .
Le probabilità di attivazione individuali sono date da:
- e
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
dove è 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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]Le RBM sono addestrate per massimizzare il prodotto delle probabilità assegnate a un insieme di addestramento (una matrice, ogni riga della quale viene trattata come un vettore visibile ),
o equivalentemente, per massimizzare il valore atteso del logaritmo della probabilità di un campione di addestramento selezionato casualmente da [14][15]:
L'algoritmo utilizzato più spesso per addestrare le RBM, ovvero per ottimizzare la matrice dei pesi , è 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:
- Si considera un campione di training , si calcolano le probabilità delle unità nascoste e si estrae un vettore di attivazione nascosto da questa distribuzione di probabilità.
- Si calcola il cosiddetto gradiente positivo, ossia il prodotto esterno di e .
- Da , si campiona una ricostruzione per le unità visibili poi, da questa, si ri-campionano le attivazioni nascoste (passo di Gibbs sampling).
- Si calcola il cosiddetto gradiente negativo, ossia il prodotto esterno di e .
- Si calcola l'aggiornamento della matrice dei pesi come differenza fra il gradiente positivo e quello negativo, moltiplicata per un certo learning rate : .
- Si aggiornano i bias e in modo analogo: , .
Una guida pratica per l'addestramento delle RBM scritta da Hinton è disponibile nella sua homepage[13].
Letteratura
[modifica | modifica wikitesto]- Lecture Notes in Computer Science, vol. 7441, DOI:10.1007/978-3-642-33275-3_2, ISBN 978-3-642-33274-6.
Altri collegamenti
[modifica | modifica wikitesto]- Autoencoder
- Macchina di Helmholtz
Note
[modifica | modifica wikitesto]- ^ Sherrington, David, Solvable Model of a Spin-Glass, in Physical Review Letters, vol. 35, n. 35, 1975, pp. 1792–1796, Bibcode:1975PhRvL..35.1792S, DOI:10.1103/PhysRevLett.35.1792.
- ^ Paul Smolensky, Chapter 6: Information Processing in Dynamical Systems: Foundations of Harmony Theory (PDF), in Rumelhart, David E. e McLelland, James L. (a cura di), Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Volume 1: Foundations, MIT Press, 1986, pp. 194–281., ISBN 0-262-68053-X.
- ^ G. E. Hinton e R. R. Salakhutdinov, Reducing the Dimensionality of Data with Neural Networks (PDF), in Science, vol. 313, n. 5786, 2006, pp. 504–507, Bibcode:2006Sci...313..504H, DOI:10.1126/science.1127647, PMID 16873662.
- ^ Larochelle, H.; Bengio, Y., Classification using discriminative restricted Boltzmann machines (PDF), 25th international conference on Machine learning - ICML '08, 2008, p. 536, DOI:10.1145/1390156.1390224, ISBN 978-1-60558-205-4.
- ^ a b Salakhutdinov, R.; Mnih, A.; Hinton, G., Restricted Boltzmann machines for collaborative filtering, Proceedings of the 24th international conference on Machine learning - ICML '07, 2007, p. 791, DOI:10.1145/1273496.1273596.
- ^ Coates, Adam; Lee, Honglak; Ng, Andrew Y., An analysis of single-layer networks in unsupervised feature learning (PDF), International Conference on Artificial Intelligence and Statistics (AISTATS), 2011.
- ^ a b Ruslan Salakhutdinov and Geoffrey Hinton, Replicated softmax: an undirected topic model (PDF), 22nd International Conference on Neural Information Processing Systems, Curran Associates Inc., 2009, pp. 1607–1614.
- ^ Bravi, B; Di Gioacchino, A; Fernandez-de-Cossio-Diaz, J; Walczak, A M; Mora, T; Cocco, S; Monasson, R, A transfer-learning approach to predict antigen immunogenicity and T-cell receptor specificity, in Bitbol, A-F; Eisen, M B (a cura di), eLife, vol. 12, DOI:10.7554/eLife.85126, ISSN 2050-084X , PMID 37681658.
- ^ (EN) Carleo, Giuseppe e Troyer, Matthias, Solving the quantum many-body problem with artificial neural networks, in Science, vol. 355, n. 6325, pp. 602–606, Bibcode:2017Sci...355..602C, DOI:10.1126/science.aag2302, ISSN 0036-8075 , PMID 28183973, arXiv:1606.02318.
- ^ (EN) Melko, R. G.; Carleo, G.; Carrasquilla, J.; Cirac, J. I., Restricted Boltzmann machines in quantum physics, in Nature Physics, vol. 15, n. 9, pp. 887–892, Bibcode:2019NatPh..15..887M, DOI:10.1038/s41567-019-0545-1, ISSN 1745-2481 .
- ^ a b Miguel Á. Carreira-Perpiñán and Geoffrey Hinton (2005). On contrastive divergence learning.. Artificial Intelligence and Statistics.
- ^ G. Hinton, Deep belief networks, in Cowell, Robert G. and Ghahramani, Zoubin (a cura di), Scholarpedia, vol. 4, n. 5, 2009, pp. 5947, Bibcode:2009SchpJ...4.5947H, DOI:10.4249/scholarpedia.5947.
- ^ a b c Geoffrey Hinton (2010). A Practical Guide to Training Restricted Boltzmann Machines (PDF). UTML TR 2010–003, University of Toronto.
- ^ a b Sutskever, Ilya; Tieleman, Tijmen, On the convergence properties of contrastive divergence (PDF), in Proc. 13th Int'l Conf. On AI and Statistics (AISTATS), 2010.
- ^ a b Asja Fischer and Christian Igel. Training Restricted Boltzmann Machines: An Introduction (PDF) (archiviato dall'url originale il 10 giugno 2015).. Pattern Recognition 47, pp. 25-39, 2014
- ^ M.A. Cueto; J. Morton; B. Sturmfels, Geometry of the restricted Boltzmann machine". Algebraic Methods in Statistics and Probability, in Algebraic Methods in Statistics and Probability, vol. 516, AMS, 2010, Bibcode:2009arXiv0908.4425A, arXiv:0908.4425.
- ^ Geoffrey Hinton (1999). Products of Experts (PDF).. ICANN 1999.
- ^ Hinton, G. E., Training Products of Experts by Minimizing Contrastive Divergence (PDF), in Neural Computation, vol. 14, n. 8, 2002, pp. 1771–1800, DOI:10.1162/089976602760128018, PMID 12180402.
Bibliografia
[modifica | modifica wikitesto]- blog.echen.me, http://blog.echen.me/2011/07/18/introduction-to-restricted-boltzmann-machines/ .
- deeplearning4j.org, https://deeplearning4j.org/restrictedboltzmannmachine.html . URL consultato il 15 novembre 2018.
- deeplearning4j.org, http://deeplearning4j.org/understandingRBMs.html . URL consultato il 29 dicembre 2014.
Collegamenti esterni
[modifica | modifica wikitesto]- Implementazione. Python di una Bernoulli RBM con un tutorial.
- SimpleRBM. è un codice per RBM molto breve (24 kB), utile a imparare come apprendono e funzionano le RBM.
- Implementazione Julia delle RBM: https://github.com/cossio/RestrictedBoltzmannMachines.jl