Apprendimento automatico e Reti Neurali - pagina 57

 

Lezione 10.3 — L'idea del pieno apprendimento bayesiano



Lezione 10.3 — L'idea del pieno apprendimento bayesiano [Reti neurali per l'apprendimento automatico]

In questo video, parlerò dell'apprendimento bayesiano completo e di come funziona. Nell'apprendimento bayesiano completo, miriamo a trovare la distribuzione posteriore completa su tutte le possibili impostazioni dei parametri, piuttosto che cercare un'unica impostazione ottimale. Tuttavia, il calcolo di questa distribuzione è computazionalmente intensivo per modelli complessi come le reti neurali. Una volta che abbiamo la distribuzione a posteriori, possiamo fare previsioni calcolando la media delle previsioni da diverse impostazioni dei parametri ponderate in base alle loro probabilità a posteriori. Sebbene questo approccio sia impegnativo dal punto di vista computazionale, ci consente di utilizzare modelli complessi anche con dati limitati.

L'overfitting è un problema comune quando si adattano modelli complicati a piccoli set di dati. Tuttavia, ottenendo la distribuzione posteriore completa sui parametri, possiamo evitare l'overfitting. Un approccio frequentista suggerisce di utilizzare modelli più semplici quando i dati sono limitati, supponendo che l'adattamento di un modello significhi trovare la migliore impostazione dei parametri. Ma con la distribuzione a posteriori completa, anche con pochi dati, le previsioni possono essere vaghe a causa delle diverse impostazioni dei parametri con probabilità a posteriori significative. Man mano che raccogliamo più dati, la distribuzione a posteriori diventa più focalizzata su impostazioni di parametri specifici, portando a previsioni più nitide.

L'esempio di overfitting implica l'adattamento di un polinomio di quinto ordine a sei punti dati, che sembra adattarsi perfettamente ai dati. Al contrario, una linea retta con solo due gradi di libertà non si adatta bene ai dati. Tuttavia, se iniziamo con un precedente ragionevole sui polinomi del quinto ordine e calcoliamo l'intera distribuzione a posteriori, otteniamo previsioni più vaghe ma più sensate. Diversi modelli all'interno della distribuzione a posteriori fanno previsioni diverse a un dato valore di input e, in media, si allineano strettamente con le previsioni fatte dalla linea verde.

Da una prospettiva bayesiana, la quantità di dati raccolti non dovrebbe influenzare le convinzioni precedenti sulla complessità del modello. Approssimando l'apprendimento bayesiano completo in una rete neurale con pochi parametri, possiamo utilizzare un approccio basato sulla griglia. Posizioniamo una griglia sullo spazio dei parametri, consentendo a ciascun parametro alcuni valori alternativi. Il prodotto incrociato di questi valori ci fornisce punti della griglia nello spazio dei parametri. Valutando le prestazioni di ciascun punto della griglia nella previsione dei dati e considerando la sua probabilità a priori, assegniamo probabilità a posteriori. Nonostante sia computazionalmente costoso, questo metodo evita la discesa del gradiente e problemi di ottimi locali. Funziona meglio della massima verosimiglianza o della massima a posteriori quando ci sono dati limitati.

Per fare previsioni sui dati del test, calcoliamo la probabilità di un output del test dato un input del test sommando le probabilità di tutti i punti della griglia. La probabilità di un punto della griglia dati i dati e prima, moltiplicata per la probabilità di ottenere l'output del test dati l'input e il punto della griglia, determina il peso della previsione di ciascun punto della griglia. Consideriamo anche la possibilità di modificare l'output della rete prima di produrre la risposta del test.

Nell'immagine fornita che illustra l'apprendimento bayesiano completo, viene mostrata una piccola rete con quattro pesi e due distorsioni. Se consideriamo nove possibili valori per ogni peso e bias, lo spazio dei parametri avrebbe nove alla potenza di sei punti della griglia. Per ogni punto della griglia, calcoliamo la probabilità degli output osservati per tutti i casi di addestramento, moltiplicata per la probabilità a priori specifica per quel punto della griglia. La normalizzazione di queste probabilità ci dà la probabilità a posteriori su tutti i punti della griglia. Infine, facciamo previsioni utilizzando questi punti della griglia, pesando ogni previsione in base alla sua probabilità a posteriori.

Lecture 10.3 — The idea of full Bayesian learning [Neural Networks for Machine Learning]
Lecture 10.3 — The idea of full Bayesian learning [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Lezione 10.4 — Rendere pratico l'apprendimento bayesiano completo



Lezione 10.4 — Rendere pratico l'apprendimento bayesiano completo [Reti neurali per l'apprendimento automatico]

In questo video, spiegherò come rendere pratico l'apprendimento bayesiano completo per grandi reti neurali con migliaia o addirittura milioni di pesi. La tecnica utilizzata è un metodo Monte Carlo, che a prima vista può sembrare strano. Utilizziamo un generatore di numeri casuali per esplorare lo spazio dei vettori di peso in modo casuale, ma con una propensione verso la discesa della funzione di costo. Se eseguito correttamente, questo approccio ha una proprietà notevole: campiona i vettori di peso in proporzione alle loro probabilità nella distribuzione a posteriori. Campionando un gran numero di vettori peso, possiamo ottenere una buona approssimazione del metodo bayesiano completo.

All'aumentare del numero di parametri, il numero di punti della griglia nello spazio dei parametri diventa esponenzialmente grande. Pertanto, la creazione di una griglia per più di pochi parametri non è fattibile quando ci sono dati sufficienti per rendere altamente improbabile la maggior parte dei vettori di parametri. Invece, possiamo concentrarci sulla valutazione di una piccola frazione dei punti della griglia che danno un contributo significativo alle previsioni. Un'idea che rende fattibile l'apprendimento bayesiano è campionare i vettori di peso in base alle loro probabilità a posteriori. Invece di riassumere tutti i termini dell'equazione, possiamo campionare i termini dalla somma. Assegniamo un peso di uno o zero a ciascun vettore di peso, a seconda che sia campionato o meno. La probabilità di essere campionata corrisponde alla probabilità a posteriori del vettore dei pesi, risultando nel valore atteso corretto.

La retropropagazione standard, raffigurata sul lato destro, segue un percorso da un punto iniziale a un singolo punto finale spostandosi lungo il gradiente e discendendo la funzione di costo. Al contrario, un metodo di campionamento introduce il rumore gaussiano ad ogni aggiornamento del peso, facendo vagare il vettore del peso ed esplorando continuamente lo spazio del peso. Questo comportamento errante favorisce le regioni a basso costo e tende a spostarsi verso il basso quando possibile. Una domanda essenziale è la frequenza con cui i pesi visiteranno ogni punto nello spazio. I punti rossi rappresentano i campioni prelevati durante il vagabondaggio e potrebbero non trovarsi nelle regioni a basso costo a causa del rumore intrinseco. Tuttavia, dopo una sufficiente esplorazione, emerge una notevole proprietà della catena di Markov Monte Carlo: i vettori peso diventano campioni imparziali dalla vera distribuzione posteriore. È più probabile che i vettori di peso altamente probabili sotto il posteriore siano rappresentati da un punto rosso rispetto a quelli altamente improbabili. Questa tecnica, nota come catena di Markov Monte Carlo, consente l'utilizzo dell'apprendimento bayesiano con migliaia di parametri.

Il metodo menzionato in precedenza, che comporta l'aggiunta di rumore gaussiano, è chiamato metodo Langevin. Sebbene efficace, non è l'approccio più efficiente. Sono disponibili metodi più sofisticati che richiedono meno tempo ai vettori di peso per esplorare lo spazio prima di ottenere campioni affidabili. Uno di questi approcci è l'utilizzo di mini-batch nell'apprendimento bayesiano completo. Quando calcoliamo il gradiente della funzione di costo su un mini-batch casuale, otteniamo una stima imparziale con rumore di campionamento. Questo rumore di campionamento può essere utilizzato per fornire il rumore richiesto dal metodo Monte Carlo della catena di Markov. Un'idea intelligente di Welling e collaboratori consente un campionamento efficiente dalla distribuzione posteriore sui pesi utilizzando metodi mini-batch. Questo avanzamento dovrebbe rendere fattibile l'apprendimento bayesiano completo per reti molto più grandi che richiedono la formazione con mini-batch per completare il processo di formazione.

L'utilizzo di mini-batch nell'apprendimento bayesiano completo offre numerosi vantaggi. Quando calcoliamo il gradiente della funzione di costo su un mini-batch casuale, non solo otteniamo una stima imparziale con il rumore di campionamento, ma sfruttiamo anche l'efficienza dei metodi mini-batch. Ciò significa che possiamo addestrare reti molto più grandi che altrimenti non sarebbe possibile addestrare con un apprendimento bayesiano completo.

La svolta raggiunta da Welling e dai suoi collaboratori consente un campionamento efficiente dalla distribuzione posteriore su pesi utilizzando metodi mini-batch. La loro idea intelligente utilizza il rumore di campionamento insito nella stima del gradiente mini-batch per fungere da rumore richiesto dal metodo Monte Carlo della catena di Markov. Incorporando in modo appropriato questo rumore, hanno ottenuto con successo campioni affidabili dalla distribuzione posteriore, rendendo pratico l'apprendimento bayesiano completo per reti più grandi.

Con questo avanzamento, diventa possibile addestrare reti neurali con migliaia o addirittura milioni di pesi utilizzando mini-batch e ottenere campioni dalla distribuzione posteriore sui pesi. Ciò è particolarmente vantaggioso quando si affrontano problemi su larga scala che richiedono ampie risorse computazionali. La capacità di incorporare l'incertezza attraverso l'apprendimento bayesiano completo fornisce una comprensione più completa delle previsioni del modello e può portare a un migliore processo decisionale.

L'apprendimento bayesiano completo può essere reso pratico per reti neurali di grandi dimensioni sfruttando metodi Monte Carlo come la catena di Markov Monte Carlo. Campionando i vettori di peso in base alle loro probabilità a posteriori, possiamo approssimare il metodo bayesiano completo e ottenere preziose informazioni sull'incertezza dei nostri modelli. Con l'introduzione dei metodi mini-batch, ora è possibile ottenere un campionamento efficiente dalla distribuzione posteriore sui pesi, consentendo l'applicazione dell'apprendimento bayesiano completo a reti molto più grandi.

Lecture 10.4 — Making full Bayesian learning practical [Neural Networks for Machine Learning]
Lecture 10.4 — Making full Bayesian learning practical [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Lezione 10.5 — L'abbandono



Lezione 10.5 — Dropout [Reti neurali per l'apprendimento automatico]

Il dropout è un metodo efficace per combinare un gran numero di modelli di reti neurali senza addestrare separatamente ciascun modello. In questo approccio, sottoinsiemi casuali di unità nascoste vengono eliminati per ogni caso di addestramento, risultando in architetture diverse per ogni caso. Questo crea un modello univoco per ogni caso di addestramento, sollevando domande su come addestrare e mediare in modo efficiente questi modelli durante i test.

Due modi per combinare gli output di più modelli sono la media delle loro probabilità di output o l'utilizzo della media geometrica delle loro probabilità. La condivisione del peso gioca un ruolo cruciale in questo metodo. Il dropout fornisce un modo efficiente per mediare le reti neurali, anche se potrebbe non funzionare bene come l'approccio bayesiano corretto. Durante l'addestramento, le unità nascoste vengono eliminate casualmente con una probabilità di 0,5, risultando in un vasto numero di architetture che condividono i pesi. L'abbandono può essere visto come una media del modello, in cui la maggior parte dei modelli non viene campionata e ogni modello campionato riceve solo un esempio di addestramento. La condivisione del peso tra i modelli li regolarizza efficacemente. Al momento del test, vengono utilizzate tutte le unità nascoste, ma i loro pesi in uscita vengono dimezzati per calcolare la media geometrica delle previsioni da tutti i modelli possibili. Il dropout può essere esteso a più layer nascosti applicando un dropout di 0,5 in ogni layer. Questa approssimazione è più rapida rispetto alla media di modelli di abbandono separati, ma fornisce una buona approssimazione.

Inoltre, il dropout può essere applicato a livelli di input con una maggiore probabilità di mantenere gli input. Questa tecnica è già utilizzata nel denoising degli autoencoder e ha mostrato buoni risultati. Il dropout si è dimostrato efficace nel ridurre gli errori e prevenire l'overfitting nelle reti neurali profonde. Incoraggia la specializzazione delle unità nascoste e previene co-adattamenti complessi che possono portare a una scarsa generalizzazione sui nuovi dati di test. Forzando le unità nascoste a lavorare con diverse combinazioni di altre unità nascoste, l'abbandono promuove comportamenti individualmente utili e scoraggia la dipendenza da collaborazioni specifiche. Questo approccio migliora le prestazioni delle reti di abbandono consentendo a ciascuna unità di contribuire in modo unico e marginalmente utile, portando a risultati eccellenti.

Il dropout è una tecnica potente per l'addestramento e la combinazione di modelli di reti neurali. Affronta la sfida dell'overfitting regolarizzando i modelli attraverso la condivisione del peso e l'abbandono casuale delle unità nascoste. Creando architetture diverse per ogni caso formativo, l'abbandono incoraggia la specializzazione delle singole unità e riduce i co-adattamenti complessi. Il processo di calcolo della media delle probabilità di output dei modelli o l'utilizzo della media geometrica fornisce un effetto simile a un insieme, migliorando le prestazioni complessive della rete. Anche se l'abbandono può non raggiungere lo stesso livello di prestazioni del corretto approccio bayesiano, offre un'alternativa pratica ed efficiente. Se applicato a più livelli nascosti, l'abbandono può essere utilizzato in ogni livello con una probabilità di abbandono di 0,5. Questa approssimazione, nota come "mean net", combina efficacemente i vantaggi dell'abbandono con un calcolo più veloce. È particolarmente utile quando le risorse computazionali sono limitate.

Inoltre, il dropout può essere esteso al livello di input applicando il dropout con una maggiore probabilità di conservare gli input. Questa tecnica aiuta a prevenire l'overfitting e ha mostrato successo in varie applicazioni. È importante notare che l'abbandono non solo migliora le prestazioni sui dati di addestramento, ma migliora anche la generalizzazione a dati di test invisibili. Incoraggiando il comportamento delle singole unità e riducendo complessi co-adattamenti, i modelli di abbandono tendono a funzionare bene su esempi nuovi e invisibili.

Il dropout è un metodo pratico ed efficace per combinare modelli di reti neurali. Eliminando casualmente le unità nascoste e incoraggiando il comportamento delle singole unità, l'abbandono mitiga l'overfitting e migliora la generalizzazione. La sua semplicità ed efficienza lo rendono uno strumento prezioso per l'addestramento di reti neurali profonde.

Lecture 10.5 — Dropout [Neural Networks for Machine Learning]
Lecture 10.5 — Dropout [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Lezione 11.1 — Reti Hopfield



Lezione 11.1 — Hopfield Nets [Reti neurali per l'apprendimento automatico]

In questo video, il presentatore introduce le reti Hopfield e il loro ruolo nella rinascita dell'interesse per le reti neurali negli anni '80. Le reti Hopfield sono semplici dispositivi utilizzati per immagazzinare ricordi come schemi di attività distribuiti. Sono modelli basati sull'energia con unità di soglia binarie e connessioni ricorrenti.

L'analisi di reti con unità non lineari e connessioni ricorrenti può essere impegnativa a causa dei loro vari comportamenti come l'assestamento a stati stabili, l'oscillazione o persino l'essere caotici. Tuttavia, Hopfield e altri ricercatori si sono resi conto che se le connessioni sono simmetriche, è possibile definire una funzione energetica globale per ogni configurazione binaria della rete. La regola di decisione della soglia binaria, combinata con la giusta funzione energetica, fa sì che la rete si muova verso il basso in termini di energia, raggiungendo infine un minimo di energia. La funzione energia consiste in contributi locali che rappresentano il prodotto dei pesi di connessione e gli stati binari dei neuroni connessi.

Per trovare un minimo di energia, le unità in una rete Hopfield vengono aggiornate in sequenza, una alla volta, in ordine casuale. Ogni unità calcola il proprio stato in base alla configurazione che produce l'energia globale più bassa. Questo aggiornamento sequenziale impedisce alle unità di prendere decisioni simultanee che potrebbero aumentare l'energia e portare a oscillazioni. Le reti Hopfield sono adatte per immagazzinare memorie, poiché le memorie corrispondono ai minimi energetici nella rete. I ricordi possono essere parziali o corrotti e la regola di decisione della soglia binaria può ripulirli e riportarli a ricordi completi. Questa memoria indirizzabile al contenuto consente l'accesso agli elementi archiviati in base a informazioni parziali sul contenuto.

Le reti Hopfield hanno proprietà che le rendono robuste contro i danni hardware, poiché possono ancora funzionare correttamente anche con poche unità rimosse. I pesi nella rete forniscono informazioni su come gli stati dei neuroni si incastrano tra loro, in modo simile alla ricostruzione di un dinosauro da poche ossa. La regola di immagazzinamento dei ricordi in una rete Hopfield è semplice. Incrementando i pesi tra le unità in base al prodotto delle loro attività, è possibile memorizzare un vettore di stato binario. Questa regola richiede solo un passaggio attraverso i dati, rendendola una regola online. Tuttavia, non è una regola di correzione degli errori, che presenta sia vantaggi che svantaggi.

Le reti Hopfield offrono un approccio diretto alla memorizzazione dei ricordi e hanno proprietà interessanti che le rendono preziose per varie applicazioni.

Lecture 11.1 — Hopfield Nets [Neural Networks for Machine Learning]
Lecture 11.1 — Hopfield Nets [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Lezione 11.2 — Trattare i minimi spuri



Lezione 11.2 — Affrontare i minimi spuri [Reti neurali per l'apprendimento automatico]

In questo video, parlerò della capacità di memorizzazione delle reti Hopfield e di come sia limitata da ricordi spuri. I ricordi spuri si verificano quando i minimi energetici vicini si combinano, creando un nuovo minimo nel posto sbagliato. Gli sforzi per eliminare questi minimi spuri hanno portato a un interessante metodo di apprendimento in sistemi più complessi rispetto alle reti Hopfield di base.

Toccherò anche una riscoperta storica relativa all'aumento della capacità delle reti Hopfield. I fisici che tentavano di migliorare la loro capacità di memorizzazione si sono imbattuti nella procedura di convergenza del percettrone, che è stata inizialmente sviluppata dopo che Hopfield ha inventato le reti di Hopfield come dispositivi di memorizzazione della memoria.

La capacità di una rete Hopfield, utilizzando la regola di archiviazione Hopfield per una rete completamente connessa, è di circa 0,15 n memorie, dove n rappresenta il numero di unità di soglia binarie. Questa capacità indica il numero di memorie che possono essere memorizzate senza confusione. Ogni memoria è costituita da una configurazione casuale delle N unità, che contribuiscono con n bit di informazione. Pertanto, l'informazione totale memorizzata in una rete Hopfield è di circa 0,15 N bit quadrati.

Tuttavia, questo metodo di archiviazione non utilizza in modo efficiente i bit necessari per memorizzare i pesi. Se analizziamo il numero di bit necessari per memorizzare i pesi nel computer, esso supera 0.15N bit quadrati, dimostrando che la memoria distribuita nei minimi energetici locali non è efficiente.

Per migliorare la capacità di una rete Hopfield, dobbiamo affrontare la fusione dei minimi energetici, che ne limita la capacità. Ogni volta che viene memorizzata una configurazione binaria, speriamo di creare un nuovo minimo energetico. Tuttavia, modelli vicini possono portare alla fusione di minimi, rendendo impossibile distinguere tra ricordi separati. Questo fenomeno di fusione è ciò che limita la capacità di una rete Hopfield.

Un'idea intrigante emersa dal miglioramento della capacità delle reti Hopfield è il concetto di disimparare. L'annullamento dell'apprendimento implica consentire alla rete di assestarsi da uno stato iniziale casuale e quindi applicare l'opposto della regola di archiviazione per eliminare i minimi spuri. Hopfield, Feinstein e Palmer hanno dimostrato che il disapprendimento aumenta efficacemente la capacità di memoria e Crick e Mitchison hanno proposto che il disapprendimento possa verificarsi durante il sonno REM.

La sfida sta nel determinare quanto disimparare dovrebbe essere fatto. Idealmente, il disapprendimento dovrebbe far parte del processo di adattamento di un modello ai dati. L'adattamento di massima verosimiglianza del modello può incorporare automaticamente il disapprendimento, fornendo una guida precisa sulla quantità di disapprendimento richiesta.

I fisici si sono impegnati per migliorare la capacità delle reti di Hopfield, spinti dal desiderio di trovare connessioni tra concetti matematici familiari e funzionalità del cervello. Elizabeth Gardner ha proposto una regola di archiviazione più efficiente che utilizza la piena capacità dei pesi. Questa regola prevedeva di scorrere più volte il set di addestramento e di utilizzare la procedura di convergenza del percettrone per addestrare lo stato corretto di ciascuna unità.

Questa tecnica è simile al metodo di pseudo-verosimiglianza utilizzato nelle statistiche, in cui miri a ottenere una dimensione corretta dati i valori su tutte le altre dimensioni. La procedura di convergenza del percettrone, con alcuni aggiustamenti per i pesi simmetrici nelle reti di Hopfield, consente un'archiviazione della memoria più efficiente.

Utilizzando la procedura di convergenza del percettrone e ripetendo i dati più volte, possiamo migliorare l'efficienza di archiviazione della memoria delle reti Hopfield. Questa tecnica è analoga al metodo della pseudo-verosimiglianza impiegato nelle statistiche, in cui l'obiettivo è ottenere una dimensione corretta in base ai valori di tutte le altre dimensioni. La procedura di convergenza del percettrone, con opportune modifiche per i pesi simmetrici nelle reti di Hopfield, consente un'archiviazione della memoria più efficace.

Questa regola di stoccaggio avanzata presentata da Gardner rappresenta un progresso significativo nella massimizzazione della capacità delle reti Hopfield. Scorrendo attraverso il set di addestramento e regolando iterativamente i pesi in base alla procedura di convergenza del percettrone, la rete può memorizzare un numero maggiore di memorie.

Vale la pena notare che questo approccio sacrifica la proprietà online delle reti Hopfield, che consente l'elaborazione dei dati in un unico passaggio. Tuttavia, il compromesso è giustificato dalla migliore efficienza di stoccaggio ottenuta attraverso l'utilizzo della piena capacità dei pesi.

L'incorporazione del disapprendimento, come proposto da Hopfield, Feinstein e Palmer, fornisce un mezzo per rimuovere minimi spuri e aumentare ulteriormente la capacità di memoria. Il disapprendimento consente la separazione dei minimi uniti, garantendo un migliore richiamo dei singoli ricordi.

È interessante notare che Crick e Mitchison hanno suggerito una spiegazione funzionale per il disapprendimento durante il sonno REM. Hanno proposto che lo scopo del sogno sia quello di facilitare la rimozione di minimi spuri, ripristinando efficacemente la rete a uno stato casuale e disimparando i modelli precedenti.

Per affrontare la sfida matematica di determinare la quantità ottimale di disapprendimento, una possibile soluzione consiste nel trattare il disapprendimento come parte del processo di adattamento del modello. Utilizzando l'adattamento di massima verosimiglianza, l'unlearning può essere incorporato automaticamente, fornendo una guida precisa sull'entità dell'unlearning richiesta per ottimizzare le prestazioni del modello.

La ricerca per migliorare la capacità delle reti Hopfield ha prodotto preziose informazioni sull'archiviazione della memoria e sui processi di apprendimento. Lo sviluppo della procedura di convergenza del percettrone, insieme all'esplorazione del disapprendimento, ci ha avvicinato allo sfruttamento del pieno potenziale delle reti di Hopfield per un'efficace memorizzazione e recupero della memoria.

Lecture 11.2 — Dealing with spurious minima [Neural Networks for Machine Learning]
Lecture 11.2 — Dealing with spurious minima [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Lezione 11.3 — Reti Hopfield con unità nascoste



Lezione 11.3 — Reti Hopfield con unità nascoste [Reti Neurali per Machine Learning]

In questo video, introdurrò un nuovo approccio all'utilizzo delle reti di Hopfield e della loro funzione energetica. Incorporando le unità nascoste nella rete, miriamo a derivare interpretazioni dell'input percettivo basate sugli stati di queste unità nascoste. Il concetto chiave è che i pesi tra le unità impongono vincoli a interpretazioni favorevoli e, trovando stati a bassa energia, possiamo scoprire buone interpretazioni dei dati di input.

Le reti di Hopfield combinano due idee fondamentali: la capacità di trovare i minimi energetici locali utilizzando unità di soglia binarie collegate simmetricamente e l'idea che questi minimi energetici locali possano corrispondere a ricordi. Tuttavia, esiste un modo alternativo per sfruttare la capacità di trovare i minimi locali. Invece di utilizzare la rete esclusivamente per l'archiviazione della memoria, possiamo utilizzarla per costruire interpretazioni di input sensoriali. Per illustrare questa idea, approfondiamo i dettagli dell'inferenza di informazioni da una linea 2D in un'immagine sul mondo tridimensionale. Quando osserviamo una linea 2D, può provenire da vari bordi tridimensionali nel mondo. A causa della perdita di informazioni sulla profondità nell'immagine, più bordi 3D possono portare allo stesso aspetto sulla retina. Questa ambiguità sorge perché ci manca la conoscenza della profondità a ciascuna estremità della linea.

Per risolvere questo problema, assumiamo che un bordo 3D dritto nel mondo causi una linea 2D dritta nell'immagine. Tuttavia, questa ipotesi elimina due gradi di libertà relativi alla profondità a ciascuna estremità del bordo 3D. Di conseguenza, un'intera famiglia di bordi 3D corrisponde alla stessa linea 2D, ma possiamo percepirne solo uno alla volta. Consideriamo ora un esempio che dimostri come possiamo utilizzare la capacità di trovare stati di bassa energia in una rete di unità binarie per aiutare nell'interpretazione dell'input sensoriale. Supponiamo di avere un disegno al tratto e di volerlo interpretare come un oggetto tridimensionale. Per ogni potenziale linea 2D, assegniamo un neurone corrispondente. Solo pochi neuroni si attiveranno in una data immagine, rappresentando le linee presenti.

Per costruire interpretazioni, introduciamo un insieme di unità di linea 3D, una per ogni possibile bordo 3D. Poiché ogni unità di linea 2D può corrispondere a più linee 3D, è necessario eccitare tutte le linee 3D rilevanti garantendo al tempo stesso la concorrenza tra di esse, poiché dovrebbe essere attiva solo una linea 3D alla volta. Per raggiungere questo obiettivo, stabiliamo connessioni eccitatorie dall'unità di linea 2D a tutte le linee 3D candidate, insieme a connessioni inibitorie per consentire la competizione.

Tuttavia, il cablaggio della rete neurale non è ancora completo. Dobbiamo incorporare informazioni su come si connettono i bordi 3D. Ad esempio, quando due linee 2D convergono nell'immagine, è altamente probabile che corrispondano a bordi con la stessa profondità nel punto di giunzione. Possiamo rappresentare questa aspettativa introducendo connessioni aggiuntive che supportano tali bordi 3D coincidenti.

Inoltre, possiamo sfruttare la presenza comune di bordi 3D che si uniscono ad angolo retto. Stabilendo connessioni più forti tra due bordi 3D che concordano in profondità e formano un angolo retto, possiamo indicare la loro relazione coesiva. Queste connessioni, rappresentate da linee verdi più spesse, forniscono informazioni su come i bordi del mondo si connettono e contribuiscono alla formazione di un oggetto 3D coerente. Ora, la nostra rete contiene conoscenze sulla disposizione dei bordi nel mondo e su come proiettano per creare linee nell'immagine. Quando inseriamo un'immagine in questa rete, dovrebbe generare un'interpretazione. Nel caso dell'immagine che presento, ci sono due interpretazioni distinte, conosciute come il cubo di Necker. La rete mostrerebbe due minimi energetici, ciascuno corrispondente a una delle possibili interpretazioni del cubo di Necker.

Si noti che questo esempio serve come analogia per cogliere il concetto di utilizzo di stati di bassa energia come interpretazioni di dati percettivi. Costruire un modello completo che tenga conto accuratamente del capovolgimento del cubo di Necker sarebbe considerevolmente più complesso dello scenario semplificato qui descritto. Se decidiamo di utilizzare stati di bassa energia per rappresentare interpretazioni percettive valide, emergono due sfide chiave. In primo luogo, dobbiamo affrontare il problema della ricerca: come evitare che le unità nascoste rimangano intrappolate in bassi livelli energetici locali. I minimi scarsi riflettono interpretazioni subottimali basate sul nostro modello e pesi attuali. Esiste un approccio migliore della semplice discesa di energia da uno stato iniziale casuale?

La seconda sfida è ancora più scoraggiante: come apprendere i pesi delle connessioni tra unità nascoste e tra unità visibili e nascoste. Esiste un semplice algoritmo di apprendimento per regolare questi pesi, considerando che non esiste un supervisore esterno che guidi il processo di apprendimento? Il nostro obiettivo è che la rete riceva input e costruisca modelli significativi di attività nelle unità nascoste che rappresentano interpretazioni sensate. Ciò rappresenta una sfida considerevole.

In sintesi, utilizzare le reti di Hopfield e la loro funzione energetica in un modo nuovo comporta l'incorporazione di unità nascoste per ricavare interpretazioni di input percettivi. I pesi tra le unità rappresentano vincoli su buone interpretazioni e trovare stati a bassa energia ci consente di scoprire interpretazioni favorevoli.

Tuttavia, ci sono sfide da superare. La prima sfida è il problema della ricerca, che consiste nell'evitare di rimanere intrappolati in bassi minimi energetici locali. Questi minimi rappresentano interpretazioni non ottimali e trovare un metodo di ricerca efficiente è fondamentale. La seconda sfida è imparare i pesi sulle connessioni tra unità nascoste e tra unità visibili e nascoste. Questo compito è complicato dall'assenza di un supervisore o di una guida esterna. È necessario un algoritmo di apprendimento adeguato per regolare i pesi, consentendo alla rete di costruire interpretazioni significative dell'input sensoriale. È importante notare che l'esempio fornito, che prevede l'interpretazione di un disegno al tratto 2D come oggetto 3D, è un'analogia per illustrare il concetto di utilizzo di stati a bassa energia per le interpretazioni. Costruire un modello completo per gestire fenomeni percettivi più complessi richiederebbe approcci più complessi.

Nel prossimo video, approfondiremo il problema della ricerca ed esploreremo potenziali soluzioni per evitare di rimanere intrappolati in minimi locali scarsi della funzione energetica.

Lecture 11.3 — Hopfield nets with hidden units [Neural Networks for Machine Learning]
Lecture 11.3 — Hopfield nets with hidden units [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Lezione 11.4 — Usare le unità stocastiche per migliorare la ricerca



Lezione 11.4 — Utilizzo di unità stocastiche per migliorare la ricerca [Reti neurali per l'apprendimento automatico]

In questo video, spiegherò come l'aggiunta di rumore ai sistemi può aiutarli a sfuggire ai minimi locali. Nello specifico, ti mostrerò come incorporare il rumore nelle unità di una rete Hopfield in modo appropriato.

Una rete Hopfield prende sempre decisioni che riducono l'energia. Ciò rende difficile uscire da un minimo locale. Se siamo intrappolati in un minimo locale, non possiamo superare la barriera energetica per raggiungere un minimo migliore.

Tuttavia, aggiungendo rumore casuale, possiamo sfuggire a minimi scarsi, specialmente quelli poco profondi e privi di barriere energetiche significative. La strategia più efficace consiste nell'iniziare con un elevato livello di rumore, consentendo l'esplorazione dello spazio su scala grossolana e trovando regioni generalmente buone. Man mano che il livello di rumore diminuisce, l'attenzione si sposta sui migliori minimi vicini.

La ricottura simulata è una tecnica che riduce gradualmente il livello di rumore per guidare il sistema verso un minimo profondo. Sfrutta la temperatura in un sistema fisico o simulato, dove una temperatura più alta appiattisce il panorama energetico, consentendo un più facile attraversamento delle barriere, mentre una temperatura più bassa migliora il rapporto di probabilità per favorire le transizioni da un minimo all'altro.

Per introdurre il rumore in una rete di Hopfield, sostituiamo le unità binarie di soglia con unità binarie stocastiche che prendono decisioni casuali distorte. Il livello di rumore è controllato da un parametro chiamato temperatura. Aumentare il livello di rumore corrisponde a diminuire i gap energetici tra le configurazioni.

Il concetto di equilibrio termico è importante da comprendere nel contesto delle macchine Boltzmann. A una temperatura fissa, l'equilibrio termico si riferisce alla distribuzione di probabilità che si assesta in una distribuzione stazionaria, determinata dalla funzione dell'energia. La probabilità di una configurazione in equilibrio termico è proporzionale ad e alla potenza di meno la sua energia.

Il raggiungimento dell'equilibrio termico comporta l'esecuzione di più sistemi stocastici con gli stessi pesi e l'applicazione di regole di aggiornamento stocastico. Sebbene i singoli sistemi continuino a modificare le configurazioni, la frazione di sistemi in ciascuna configurazione rimane costante. Questo è analogo a mescolare i pacchetti di carte in un grande casinò fino a quando l'ordine iniziale diventa irrilevante e un numero uguale di pacchetti è in ogni ordine possibile.

La ricottura simulata è un metodo potente per superare gli ottimi locali, ma non sarà ulteriormente discussa in questo corso, in quanto può essere una distrazione dalla comprensione delle macchine di Boltzmann. Verranno invece utilizzate unità stocastiche binarie con una temperatura di uno (funzione logistica standard).

L'aggiunta di rumore ai sistemi, come le reti Hopfield e le macchine Boltzmann, può aiutare a sfuggire ai minimi locali ed esplorare regioni più favorevoli. Il livello di rumore è controllato dalla temperatura e il raggiungimento dell'equilibrio termico implica che la frazione di sistemi in ciascuna configurazione rimanga costante mentre i singoli sistemi continuano a cambiare il proprio stato.

Lecture 11.4 — Using stochastic units to improve search [Neural Networks for Machine Learning]
Lecture 11.4 — Using stochastic units to improve search [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Lezione 11.5 — Come una macchina di Boltzmann modella i dati



Lezione 11.5 — Come una macchina Boltzmann modella i dati [Reti neurali per l'apprendimento automatico]

In questo video spiegherò come una macchina Boltzmann modella i vettori di dati binari. In primo luogo, discuterò le ragioni per modellare i vettori di dati binari e le potenziali applicazioni di un tale modello. Quindi, approfondirò come le probabilità assegnate ai vettori di dati binari sono determinate dai pesi in una macchina Boltzmann.

Le macchine di Boltzmann, note anche come reti di Hopfield stocastiche con unità nascoste, sono efficaci nella modellazione di dati binari. Utilizzando unità nascoste, queste macchine possono adattare un modello a un insieme di vettori di addestramento binari e assegnare una probabilità a ogni possibile vettore binario.

Esistono diverse applicazioni pratiche per la modellazione di dati binari. Ad esempio, se hai diverse distribuzioni di vettori binari, potresti voler determinare a quale distribuzione appartiene un nuovo vettore binario. Utilizzando unità nascoste per modellare la distribuzione per ogni tipo di documento, è possibile identificare la classe di documenti più probabile per un dato vettore binario.

Inoltre, le macchine Boltzmann possono essere utili per monitorare sistemi complessi e rilevare comportamenti insoliti. Supponiamo di avere una centrale nucleare con letture binarie da vari quadranti che indicano lo stato della stazione. Invece di fare affidamento sull'apprendimento supervisionato, che richiede esempi di stati pericolosi, puoi costruire un modello di stati normali e rilevare le deviazioni dalla norma. In questo modo, puoi identificare stati insoliti senza una conoscenza preliminare di tali stati.

Per calcolare la probabilità a posteriori che una particolare distribuzione abbia generato i dati osservati, puoi utilizzare il teorema di Bayes. Dati i dati osservati, la probabilità che provenga da un modello specifico è la probabilità che il modello generi quei dati divisa per la somma della stessa quantità per tutti i modelli.

Esistono due approcci principali per generare modelli di dati, in particolare vettori binari. L'approccio del modello causale prevede prima la generazione degli stati delle variabili latenti, che vengono poi utilizzati per generare il vettore binario. Questo modello si basa su connessioni ponderate e distorsioni tra le unità latenti e visibili. L'analisi fattoriale è un esempio di modello causale che utilizza variabili continue.

D'altra parte, una macchina di Boltzmann è un modello basato sull'energia che non genera dati in modo causale. Invece, definisce tutto in termini di energie di configurazioni congiunte di unità visibili e nascoste. La probabilità di una configurazione congiunta è definita direttamente in termini di energia o calcolata proceduralmente dopo l'aggiornamento delle unità binarie stocastiche fino al raggiungimento dell'equilibrio termico. L'energia di una configurazione articolare è costituita da termini di polarizzazione, interazioni visibile-visibile, interazioni visibile-nascosto e interazioni nascosto-nascosto.

Per calcolare le probabilità di diversi vettori visibili, possiamo lavorare su un esempio. Annotando tutti i possibili stati delle unità visibili, calcolando le loro energie negative, elevando a potenza quelle energie e normalizzando le probabilità, possiamo determinare le probabilità delle configurazioni articolari e dei singoli vettori visibili.

Per reti più grandi, il calcolo della funzione di partizione diventa impossibile a causa del numero esponenziale di termini. In tali casi, possiamo utilizzare i metodi Monte Carlo della catena di Markov per ottenere campioni dal modello. Aggiornando le unità stocasticamente in base ai loro gap energetici, possiamo raggiungere la distribuzione stazionaria e ottenere un campione dal modello. La probabilità di un campione è proporzionale ae alla potenza dell'energia negativa.

Inoltre, potremmo essere interessati a ottenere campioni dalla distribuzione a posteriori su configurazioni nascoste dato un vettore di dati, necessario per l'apprendimento. Utilizzando la catena di Markov Monte Carlo con le unità visibili fissate al vettore di dati, possiamo aggiornare solo le unità nascoste e ottenere campioni dalla distribuzione posteriore. Queste informazioni sono fondamentali per trovare buone spiegazioni per i dati osservati e guidare i processi di apprendimento.

Il processo di apprendimento in una macchina Boltzmann comporta la regolazione dei pesi e delle distorsioni per migliorare l'adattamento del modello ai dati di addestramento. Questo processo di apprendimento è in genere ottenuto attraverso un algoritmo chiamato divergenza contrastiva.

La divergenza contrastiva è un metodo di approssimazione utilizzato per stimare il gradiente della funzione di verosimiglianza logaritmica. Ci consente di aggiornare in modo efficiente i pesi e le inclinazioni nella macchina Boltzmann. L'idea di base alla base della divergenza contrastiva è eseguire alcuni passaggi del campionamento di Gibbs, che prevede l'alternanza tra l'aggiornamento delle unità nascoste e l'aggiornamento delle unità visibili, a partire da un vettore di dati.

Per aggiornare le unità nascoste, possiamo campionare i loro stati in base alle probabilità determinate dall'energia della configurazione congiunta delle unità visibili e nascoste. Quindi, aggiorniamo le unità visibili in base ai nuovi stati delle unità nascoste. Questo processo viene ripetuto per alcune iterazioni finché la catena di Markov non raggiunge un equilibrio approssimativo.

Una volta ottenuto un campione dalla distribuzione a posteriori su configurazioni nascoste, possiamo usarlo per calcolare le associazioni positive e negative tra le unità visibili e nascoste. Le associazioni positive vengono calcolate prendendo il prodotto esterno del vettore di dati e la configurazione nascosta campionata. Le associazioni negative vengono calcolate in modo simile, ma utilizzando le unità visibili ottenute dal processo di campionamento di Gibbs.

Prendendo la differenza tra le associazioni positive e negative, possiamo calcolare il gradiente della funzione di verosimiglianza. Questo gradiente viene quindi utilizzato per aggiornare i pesi e le distorsioni della macchina di Boltzmann attraverso una regola di apprendimento, come la discesa del gradiente stocastico.

Il processo di apprendimento continua applicando ripetutamente la divergenza contrastiva, campionando dalla distribuzione posteriore e aggiornando i pesi e le distorsioni. Nel tempo, la macchina Boltzmann impara a catturare i modelli e le distribuzioni sottostanti presenti nei dati di addestramento.

È importante notare che l'addestramento di una macchina Boltzmann può essere un compito impegnativo, soprattutto per reti di grandi dimensioni con molte unità nascoste. La complessità computazionale aumenta esponenzialmente con il numero di unità, rendendo difficile eseguire calcoli esatti. Tuttavia, metodi approssimati come la divergenza contrastiva forniscono una soluzione pratica per l'apprendimento nelle macchine Boltzmann.

L'apprendimento in una macchina Boltzmann comporta la regolazione dei pesi e delle distorsioni attraverso la divergenza contrastiva, che approssima il gradiente della funzione di verosimiglianza logaritmica. Campionando iterativamente dalla distribuzione a posteriori e aggiornando i parametri del modello, la macchina di Boltzmann può imparare a modellare i modelli sottostanti nei dati binari.

Lecture 11.5 — How a Boltzmann machine models data [Neural Networks for Machine Learning]
Lecture 11.5 — How a Boltzmann machine models data [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Lezione 12.1 — Boltzmann machine learning



Lezione 12.1 — Boltzmann machine learning [Reti neurali per Machine Learning]

Nel video precedente, ho dimostrato come una macchina Boltzmann può essere utilizzata come modello probabilistico per vettori di dati binari. Ora, approfondiamo l'algoritmo di apprendimento automatico di Boltzmann.

Inizialmente, l'algoritmo di apprendimento automatico di Boltzmann era lento e rumoroso, il che lo rendeva poco pratico. Tuttavia, sono state sviluppate diverse tecniche per velocizzare notevolmente l'algoritmo, rendendolo più pratico ed efficace. In effetti, è stato utilizzato con successo in una competizione di apprendimento automatico da un milione di dollari.

L'algoritmo di apprendimento automatico di Boltzmann è un algoritmo di apprendimento non supervisionato, il che significa che non richiede dati etichettati. Invece, mira a costruire un modello di un insieme di vettori di input (o vettori di output) massimizzando il prodotto delle probabilità assegnate dalla macchina di Boltzmann ai vettori di addestramento. Ciò può essere ottenuto anche massimizzando la somma delle probabilità logaritmiche o la probabilità di ottenere i casi di addestramento.

Per addestrare la macchina Boltzmann, seguiamo più volte un processo di assestamento a una distribuzione stazionaria senza alcun input esterno. Quindi campioniamo il vettore visibile e ripetiamo questo processo più volte per ottenere campioni dalla distribuzione posteriore.

L'apprendimento nella macchina Boltzmann può essere impegnativo a causa delle interazioni tra i pesi. Ogni peso deve conoscere altri pesi per determinare la direzione appropriata per il cambiamento. Sorprendentemente, è sufficiente un semplice algoritmo di apprendimento che utilizza solo informazioni locali. La regola di apprendimento si basa sulla differenza di due correlazioni, catturando le informazioni necessarie per gli aggiornamenti del peso.

La regola di apprendimento consiste di due termini. Il primo termine aumenta i pesi proporzionalmente al prodotto delle attività unitarie osservate durante la presentazione dei dati. Questo termine è simile al termine di archiviazione in una rete Hopfield. Tuttavia, senza controllo, i pesi continuerebbero a crescere, portando all'instabilità. Il secondo termine diminuisce i pesi proporzionali al prodotto delle attività unitarie durante il campionamento dalla distribuzione del modello. Questo termine aiuta a eliminare minimi spuri e mantiene la stabilità.

La derivata della probabilità logaritmica di un vettore visibile rispetto a un peso è notevolmente semplice. Può essere espresso come il prodotto delle due attività unitarie connesse. Questa semplicità deriva dalla relazione lineare tra le probabilità logaritmiche e la funzione energia, che a sua volta è lineare nei pesi.

La fase negativa del processo di apprendimento serve a disimparare oa ridurre l'influenza di certe configurazioni. Si concentra sulla diminuzione dell'energia dei termini che contribuiscono in modo significativo alla funzione di partizione, riducendo così il loro impatto.

Per raccogliere le statistiche necessarie per la regola di apprendimento, viene comunemente utilizzato un metodo chiamato divergenza contrastiva. Nella fase positiva, i vettori di dati vengono bloccati sulle unità visibili e le unità nascoste vengono aggiornate fino al raggiungimento dell'equilibrio termico. Le correlazioni tra le coppie di unità vengono quindi campionate e calcolate la media su tutti i vettori di dati. Nella fase negativa, nessun dato viene bloccato e la rete può stabilizzarsi in equilibrio senza interferenze esterne. Le correlazioni tra le coppie di unità vengono nuovamente campionate più volte.

Determinare il numero di iterazioni necessarie nella fase negativa può essere difficile, poiché il panorama energetico della macchina Boltzmann può contenere più modalità. Queste modalità rappresentano diverse configurazioni con livelli di energia simili ed è necessario un campionamento ripetuto per catturarle in modo efficace.

Quando si ha a che fare con una macchina Boltzmann, è fondamentale considerare il numero di ripetizioni richieste nella fase negativa. A causa della presenza di più modalità nel panorama energetico, l'algoritmo deve campionare ampiamente per garantire che tutte le modalità siano adeguatamente rappresentate.

Il processo di apprendimento in una macchina Boltzmann comporta l'aggiornamento iterativo dei pesi in base alle correlazioni ottenute dalle fasi positive e negative. Confrontando le correlazioni in queste fasi, l'algoritmo può regolare i pesi per migliorare la rappresentazione dei dati da parte del modello.

Un aspetto importante da notare è che l'algoritmo di apprendimento automatico di Boltzmann è una forma di apprendimento hebbiano. Segue il principio proposto da Donald Hebb negli anni '40 o '50, suggerendo che le sinapsi nel cervello rafforzano le connessioni tra i neuroni in base alla loro co-attivazione. Nella macchina di Boltzmann, la fase positiva aumenta i pesi in proporzione al prodotto delle attività unitarie osservate durante la presentazione dei dati, in modo simile all'idea di Hebb.

Tuttavia, senza un meccanismo di controbilanciamento, i pesi continuerebbero a crescere all'infinito, portando all'instabilità. La fase negativa serve a questo scopo riducendo i pesi in base al prodotto delle attività unitarie durante il campionamento dalla distribuzione del modello. Questo equilibrio assicura che la macchina Boltzmann rimanga stabile durante il processo di apprendimento.

Vale la pena ricordare che l'algoritmo di apprendimento automatico di Boltzmann ha basi teoriche relative alle funzioni energetiche e alle distribuzioni di probabilità. La probabilità di una configurazione globale all'equilibrio termico segue una funzione esponenziale della sua energia. La relazione lineare tra i pesi e la probabilità logaritmica consente calcoli derivati diretti e facilita aggiornamenti di peso efficienti.

L'algoritmo di apprendimento automatico di Boltzmann è un approccio di apprendimento non supervisionato che mira a costruire un modello di vettori di input o output. Massimizzando le probabilità assegnate ai vettori di addestramento, l'algoritmo regola i pesi utilizzando una combinazione di correlazioni positive e negative. Questo processo di apprendimento, insieme a tecniche come la divergenza contrastiva, aiuta la macchina di Boltzmann a catturare schemi complessi nei dati.

Lecture 12.1 — Boltzmann machine learning [Neural Networks for Machine Learning]
Lecture 12.1 — Boltzmann machine learning [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Lezione 12.2 — Modi più efficienti per ottenere le statistiche [Neural Networks for Machine Learning


Lezione 12.2 — Modi più efficienti per ottenere le statistiche [Neural Networks for Machine Learning

In questo video, il relatore fornisce informazioni dettagliate su come accelerare l'algoritmo di apprendimento automatico di Boltzmann impiegando tecniche intelligenti per mantenere le catene di Markov vicino alla distribuzione di equilibrio e utilizzando metodi di campo medio. Pur riconoscendo che il materiale è avanzato e non fa parte del curriculum del corso, il relatore assicura agli spettatori che possono saltare questo video a meno che non abbiano un vivo interesse nell'ottimizzazione delle macchine Boltzmann profonde.

Il relatore discute le sfide associate al raggiungimento dell'equilibrio termico partendo da uno stato casuale, poiché potrebbe richiedere molto tempo. Inoltre, non esiste un modo semplice per determinare se l'equilibrio termico è stato raggiunto. Per risolvere questo problema, il relatore suggerisce di partire dallo stato ottenuto nella precedente iterazione per un particolare vettore di dati. Questo stato memorizzato, denominato "particella", funge da interpretazione del vettore di dati nelle unità nascoste, offrendo un vantaggio di avvio a caldo. Se i pesi sono stati aggiornati minimamente, bastano pochi aggiornamenti delle unità in una particella per riportarla all'equilibrio. Le particelle possono essere utilizzate sia per la fase positiva (quando un fattore dati è bloccato) sia per la fase negativa (quando non è bloccato nulla).

Per raccogliere statistiche in modo efficiente, l'oratore introduce un metodo di Radford Neal nel 1992. Nella fase positiva, vengono impiegate particelle specifiche dei dati, con ciascuna particella che rappresenta una configurazione di unità nascoste insieme al vettore di dati associato. Gli aggiornamenti sequenziali vengono eseguiti sulle unità nascoste in ciascuna particella, con il relativo vettore di dati bloccato. Le probabilità delle coppie di unità connesse vengono quindi calcolate in media su tutte le particelle. Nella fase negativa vengono utilizzate particelle di fantasia, che rappresentano configurazioni globali. Dopo ogni aggiornamento del peso, le unità in ciascuna particella di fantasia vengono aggiornate in sequenza. Ancora una volta, le probabilità di coppie di unità connesse sono mediate tra tutte le particelle di fantasia. La regola di apprendimento è definita come la variazione dei pesi, proporzionale alla differenza tra le medie ottenute con i dati e le particelle di fantasia.

Sebbene questa regola di apprendimento funzioni bene per l'apprendimento in batch completo, applicarla a mini-batch pone delle sfide. A causa di molteplici aggiornamenti del peso nell'apprendimento mini-batch, le particelle specifiche dei dati memorizzati per ciascun vettore di dati potrebbero non essere più vicine all'equilibrio termico. Per superare questo problema, il relatore propone di assumere che l'insieme di buone spiegazioni (stati di unità nascoste che interpretano un vettore di dati) sia unimodale quando un vettore di dati è bloccato. Questa ipotesi consente l'uso di un'approssimazione del campo medio, che fornisce un metodo efficiente per avvicinarsi all'equilibrio termico o una sua approssimazione con i dati.

Per implementare un apprendimento mini-batch efficiente nelle macchine Boltzmann, il relatore suggerisce di utilizzare un'architettura speciale chiamata macchina Boltzmann profonda. In questa architettura, vengono eseguiti aggiornamenti paralleli alternati per le particelle di fantasia consentendo livelli senza connessioni e omettendo collegamenti di livello salta. Aggiornando solo la metà degli stati di tutte le unità in parallelo, è possibile ottenere aggiornamenti efficienti.

Il relatore discute l'applicazione riuscita delle macchine Boltzmann profonde utilizzando il campo medio per l'apprendimento della fase positiva e gli aggiornamenti alternati degli strati per la fase negativa. Russ Salakhutdinov, ad esempio, ha utilizzato questo approccio per modellare le cifre MNIST e i dati generati assomigliavano molto al set di dati MNIST effettivo.

Inoltre, il relatore affronta la sfida di stimare statistiche negative con solo un numero limitato di esempi negativi (particelle di fantasia). In genere, lo spazio di configurazione globale per problemi interessanti è altamente multimodale. Tuttavia, il processo di apprendimento interagisce con la catena di Markov utilizzata per raccogliere statistiche negative, aumentando di fatto il suo tasso di mescolamento. L'oratore spiega che quando le particelle di fantasia sono più numerose dei dati positivi in una modalità della superficie energetica, l'energia viene aumentata, portando le particelle a sfuggire a quella modalità. Questa interazione tra l'apprendimento e la catena di Markov consente l'esplorazione di modalità multiple, anche con un numero limitato di particelle.

Questa proprietà dell'algoritmo di apprendimento, in cui la superficie energetica viene manipolata per migliorare la velocità di mescolamento della catena di Markov, è un aspetto cruciale dell'efficacia della macchina di Boltzmann. Il processo di apprendimento spinge attivamente le particelle fantastiche ad esplorare diverse modalità della superficie energetica, permettendo al modello di sfuggire ai minimi locali che la sola catena di Markov faticherebbe a superare in un tempo ragionevole.

Per illustrare ulteriormente questo concetto, immaginate la superficie energetica come un paesaggio con valli e colline che rappresentano diverse modalità. Le particelle di fantasia agiscono come esploratori che navigano in questo paesaggio. Inizialmente, alcune modalità possono avere una maggiore concentrazione di particelle di fantasia rispetto ai dati disponibili, con conseguente superficie di energia elevata in quelle regioni. L'algoritmo di apprendimento riconosce questa discrepanza e solleva la superficie energetica, creando efficacemente barriere che impediscono il movimento delle particelle.

Alzando la superficie energetica, l'algoritmo di apprendimento incoraggia le particelle fantastiche ad allontanarsi dalle modalità sovrappopolate, cercando modalità alternative con meno particelle. Mentre esplorano diverse regioni del panorama energetico, le particelle alla fine sfuggono alle modalità inizialmente dominanti e si distribuiscono su più modalità più in linea con la distribuzione dei dati.

Questo processo consente alla macchina di Boltzmann di scoprire vari modi della superficie energetica, catturando efficacemente la complessa struttura multimodale della distribuzione dei dati sottostante. Mentre la catena di Markov da sola potrebbe faticare a sfuggire ai minimi locali, la manipolazione attiva della superficie energetica da parte dell'algoritmo di apprendimento consente l'esplorazione di diverse modalità, portando a una rappresentazione più accurata dei dati.

In sintesi, l'interazione tra l'algoritmo di apprendimento e la catena di Markov usata per raccogliere statistiche negative è un fattore chiave per l'efficacia della macchina di Boltzmann. Il processo di apprendimento regola dinamicamente la superficie energetica, incoraggiando le particelle fantastiche a esplorare modalità diverse ea sfuggire ai minimi locali. Questa capacità di esplorare il panorama energetico migliora la capacità del modello di catturare la complessa distribuzione dei dati sottostanti, con conseguente miglioramento delle prestazioni e rappresentazioni più accurate dei dati.

Lecture 12.2 — More efficient ways to get the statistics [Neural Networks for Machine Learning]
Lecture 12.2 — More efficient ways to get the statistics [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...