Apprendimento automatico e Reti Neurali - pagina 59

 

Lezione 14.4 — Modellazione di dati a valori reali con un RBM



Lezione 14.4 — Modellazione di dati a valori reali con un RBM [Neural Networks for Machine Learning]

Descriverò come utilizzare una Restricted Boltzmann Machine (RBM) per modellare dati a valori reali. In questo approccio, le unità visibili vengono trasformate da unità binarie stocastiche a unità lineari con rumore gaussiano. Per affrontare le sfide di apprendimento, le unità nascoste sono impostate come unità lineari rettificate.

L'apprendimento di un RBM per dati a valori reali è relativamente semplice. Inizialmente, gli RBM venivano usati con immagini di cifre scritte a mano, dove le probabilità rappresentavano intensità intermedie causate da pixel parzialmente inchiostrati. Queste probabilità, che vanno da 0 a 1, modellano la probabilità che un'unità logistica venga attivata. Questa approssimazione ha funzionato bene per i pixel parzialmente inchiostrati, sebbene sia tecnicamente errata.

Tuttavia, quando si ha a che fare con immagini reali, l'intensità di un pixel è generalmente vicina all'intensità media dei pixel vicini. Un'unità logistica non può rappresentare accuratamente questo comportamento. Le unità logistiche sul campo medio faticano a catturare le differenze di intensità a grana fine. Per risolvere questo problema, vengono utilizzate unità lineari con rumore gaussiano per modellare le intensità dei pixel come variabili gaussiane.

Il campionamento di Gibbs alternato, utilizzato nell'apprendimento della divergenza contrastiva, può ancora essere applicato per eseguire la catena di Markov. Tuttavia, è necessario un tasso di apprendimento inferiore per prevenire l'instabilità. La funzione energetica utilizzata nell'equazione RBM consiste in un termine di contenimento parabolico che impedisce l'esplosione e un termine interattivo tra unità visibili e nascoste.

Il termine interattivo rappresenta il contributo delle unità nascoste alla funzione energetica. Differenziando il termine si ottiene un gradiente costante. L'effetto combinato della funzione di contenimento parabolico e del contributo dall'alto verso il basso delle unità nascoste si traduce in una funzione parabolica con una media spostata rispetto alla polarizzazione dell'unità visibile.

Tuttavia, l'apprendimento con gli RBM gaussiano-binari pone delle sfide. È difficile apprendere variazioni strette per le unità visibili. Quando la deviazione standard di un'unità visibile è piccola, gli effetti dal basso verso l'alto vengono esagerati, mentre gli effetti dall'alto verso il basso vengono attenuati. Ciò porta le unità nascoste a saturarsi e ad essere saldamente attivate o disattivate, interrompendo il processo di apprendimento.

Per risolvere questo problema, è necessario disporre di un numero maggiore di unità nascoste rispetto alle unità visibili. Ciò consente a piccoli pesi tra le unità visibili e nascoste di avere un significativo effetto dall'alto verso il basso a causa dell'abbondanza di unità nascoste. Inoltre, il numero di unità nascoste dovrebbe cambiare al diminuire della deviazione standard delle unità visibili.

Per raggiungere questo obiettivo, vengono introdotte unità sigmoidee a gradini. Queste unità sono copie multiple di ciascuna unità nascosta binaria stocastica, ciascuna con gli stessi pesi e bias ma un offset fisso rispetto al bias. Questo offset varia tra i membri della famiglia delle unità sigmoidee, risultando in una curva di risposta che aumenta linearmente all'aumentare dell'input totale. Questo approccio fornisce più effetti dall'alto verso il basso per guidare le unità visibili con piccole deviazioni standard.

Sebbene l'utilizzo di un'ampia popolazione di unità stocastiche binarie con distorsioni offset possa essere computazionalmente costoso, è possibile effettuare approssimazioni rapide che producono risultati simili. Queste approssimazioni comportano l'approssimazione della somma delle attività delle unità sigmoidee con distorsioni di offset come il logaritmo di 1 più l'esponenziale dell'input totale. In alternativa, è possibile utilizzare unità lineari rettificate, che sono più veloci da calcolare e mostrano l'equivarianza di scala, rendendole adatte per rappresentazioni di immagini.

Le unità lineari rettificate hanno la proprietà dell'equivarianza di scala, il che significa che se le intensità dei pixel in un'immagine vengono moltiplicate per uno scalare, anche le attività delle unità nascoste verranno ridimensionate dello stesso fattore. Questa proprietà è simile all'equivarianza traslazionale esibita dalle reti neurali convoluzionali (CNN). Nelle CNN, lo spostamento di un'immagine porta a una rappresentazione spostata in ogni livello senza influire in modo significativo sul comportamento generale della rete.

Utilizzando RBM con unità lineari e unità lineari rettificate, diventa possibile modellare efficacemente i dati a valori reali.

Lecture 14.4 — Modeling real valued data with an RBM [Neural Networks for Machine Learning]
Lecture 14.4 — Modeling real valued data with an RBM [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 14.5 — Gli RBM sono reti di credenze sigmoidee infinite



Lezione 14.5 — Gli RBM sono reti di credenze sigmoidee infinite [Reti neurali per l'apprendimento automatico]

In questo video, discutiamo materiale avanzato relativo alle origini del deep learning e agli aspetti matematici delle reti neurali profonde. Esploriamo la relazione tra macchine Boltzmann ristrette (RBM) e reti di credenze sigmoidee infinitamente profonde con pesi condivisi.

Gli RBM possono essere visti come un caso speciale di reti di credenze sigmoidee, dove l'RBM corrisponde a una rete infinitamente profonda con pesi condivisi. Comprendendo l'equivalenza tra RBM e reti infinitamente profonde, otteniamo informazioni sull'efficacia dell'apprendimento strato per strato e sulla divergenza contrastiva.

La catena di Markov utilizzata per campionare da un RBM è equivalente al campionamento dalla distribuzione di equilibrio di una rete infinitamente profonda. L'inferenza nella rete infinitamente profonda è semplificata grazie all'implementazione di un precedente complementare, che annulla le correlazioni causate dalla spiegazione. Ciò semplifica il processo di inferenza a ogni livello della rete.

L'algoritmo di apprendimento per le reti di credenze sigmoidee può essere utilizzato per derivare l'algoritmo di apprendimento per gli RBM. Legando i pesi della rete e congelando i pesi dello strato inferiore, possiamo apprendere gli strati rimanenti come RBM. Questo processo, noto come apprendimento della divergenza contrastiva, fornisce un limite variazionale alla probabilità logaritmica dei dati.

Nell'apprendimento della divergenza contrastiva, tagliamo le derivate superiori dei pesi, poiché il mix della catena di Markov è veloce e gli strati superiori si avvicinano alla distribuzione di equilibrio. Man mano che i pesi aumentano, diventa necessario eseguire più iterazioni di divergenza contrastiva. Tuttavia, per l'apprendimento di più livelli di caratteristiche in una pila di RBM, CD uno (divergenza contrastiva in un passaggio) è sufficiente e può essere anche migliore dell'apprendimento di massima verosimiglianza.

Comprendere la relazione tra RBM e reti di credenze sigmoidee infinitamente profonde fornisce preziose informazioni sul funzionamento delle reti neurali profonde e sull'efficacia dell'apprendimento strato per strato e della divergenza contrastiva.

Lecture 14.5 — RBMs are infinite sigmoid belief nets [Neural Networks for Machine Learning]
Lecture 14.5 — RBMs are infinite sigmoid belief 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 15.1 — Dal PCA agli autoencoder



Lezione 15.1 — Dal PCA agli autoencoder [Reti neurali per l'apprendimento automatico]

L'analisi delle componenti principali (PCA) è una tecnica ampiamente utilizzata nell'elaborazione del segnale che mira a rappresentare dati ad alta dimensione utilizzando un codice a dimensione inferiore. L'idea chiave alla base della PCA è trovare una varietà lineare nello spazio ad alta dimensione in cui si trovano i dati. Proiettando i dati su questa varietà, possiamo rappresentare la sua posizione sulla varietà, perdendo informazioni minime.

PCA può essere implementato in modo efficiente utilizzando metodi standard o in modo meno efficiente utilizzando una rete neurale con unità lineari nascoste e di output. Il vantaggio di utilizzare una rete neurale è la possibilità di generalizzare la tecnica a reti neurali profonde, dove il codice e la ricostruzione dei dati diventano funzioni non lineari dell'input. Questo ci consente di gestire varietà curve nello spazio di input, ottenendo una rappresentazione più potente.

In PCA, miriamo a rappresentare dati n-dimensionali utilizzando meno di n numeri. Identificando m direzioni ortogonali con la massima varianza, chiamate direzioni principali, ignoriamo le direzioni con poca variazione. Queste m direzioni principali formano un sottospazio di dimensione inferiore, e noi rappresentiamo un punto dati n-dimensionale proiettandolo su queste direzioni nello spazio di dimensione inferiore. Sebbene le informazioni sulla posizione del punto dati nelle direzioni ortogonali vengano perse, non sono significative a causa della loro bassa varianza.

Per ricostruire un punto dati dalla sua rappresentazione usando m numeri, usiamo il valore medio per le direzioni non rappresentate (n - m). L'errore di ricostruzione viene calcolato come differenza al quadrato tra il valore del punto dati nelle direzioni non rappresentate e il valore medio in tali direzioni.

Per implementare la PCA utilizzando la backpropagation, possiamo creare una rete neurale con uno strato di collo di bottiglia con m unità nascoste, che rappresentano i componenti principali. L'obiettivo della rete è minimizzare l'errore al quadrato tra l'input e l'output ricostruito. Se le unità nascoste e di output sono lineari, la rete apprenderà codici che riducono al minimo l'errore di ricostruzione, simile a PCA. Tuttavia, le unità nascoste potrebbero non corrispondere esattamente ai componenti principali, avendo potenzialmente una rotazione e un'inclinazione degli assi. Tuttavia, lo spazio coperto dai vettori di peso entranti dell'unità di codice sarà lo stesso dello spazio coperto dalle m componenti principali.

L'uso della retropropagazione in una rete neurale consente di generalizzare il PCA incorporando livelli non lineari prima e dopo il livello di codice. Ciò consente la rappresentazione di dati giacenti su varietà curve in spazi ad alta dimensione, rendendo l'approccio più versatile. La rete è costituita da un vettore di input, unità nascoste non lineari, uno strato di codice (che può essere lineare), unità nascoste non lineari aggiuntive e un vettore di output addestrato per assomigliare al vettore di input.

L'analisi delle componenti principali è una tecnica per rappresentare dati ad alta dimensione utilizzando un codice a dimensione inferiore identificando le direzioni principali con varianza elevata. Può essere implementato in modo efficiente utilizzando metodi tradizionali o in modo meno efficiente utilizzando una rete neurale. La versione della rete neurale consente la generalizzazione alle reti neurali profonde e la rappresentazione dei dati su varietà curve.

Lecture 15.1 — From PCA to autoencoders [Neural Networks for Machine Learning]
Lecture 15.1 — From PCA to autoencoders [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 15.2 — Autocodificatori profondi



Lezione 15.2 — Deep autoencoder [Reti Neurali per Machine Learning]

Gli autocodificatori profondi hanno rivoluzionato la riduzione della dimensionalità superando le capacità delle tecniche lineari come l'analisi dei componenti principali. La loro capacità di catturare relazioni complesse e non lineari all'interno dei dati li ha resi uno strumento prezioso in vari domini.

Nel caso dell'autocodificatore profondo implementato da Salakhutdinov e Hinton, le cifre ricostruite mostrano una qualità superiore rispetto alle loro controparti dei componenti principali lineari. Questo miglioramento deriva dalla capacità dell'autoencoder profondo di apprendere una gerarchia di rappresentazioni sempre più astratte attraverso i suoi molteplici livelli nascosti. Ogni livello acquisisce funzionalità di livello superiore che contribuiscono a una ricostruzione più fedele dei dati di input.

Il potere degli autocodificatori profondi risiede nella loro capacità di apprendere mappature altamente espressive sia nella direzione di codifica che in quella di decodifica. Il codificatore mappa i dati di input ad alta dimensione in una rappresentazione del codice a dimensione inferiore, catturando efficacemente le caratteristiche più salienti. D'altra parte, il decodificatore ricostruisce l'input originale da questa rappresentazione di codice compresso. Questa mappatura bidirezionale assicura che le informazioni preziose vengano conservate durante il processo di riduzione della dimensionalità.

L'addestramento di autocodificatori profondi è stato inizialmente impegnativo a causa del problema del gradiente in via di estinzione. Tuttavia, con i progressi nelle tecniche di ottimizzazione, come il pre-allenamento senza supervisione e le strategie di inizializzazione del peso, il processo di allenamento è diventato molto più efficiente ed efficace. Questi metodi consentono all'autoencoder profondo di apprendere rappresentazioni significative senza rimanere bloccato in soluzioni non ottimali.

Inoltre, gli autocodificatori profondi hanno aperto la strada allo sviluppo di architetture più avanzate, come gli autocodificatori variazionali e le reti generative avversarie. Questi modelli estendono le capacità dei codificatori automatici profondi incorporando tecniche di apprendimento probabilistico e contraddittorio, consentendo attività come la generazione di dati, il rilevamento di anomalie e l'apprendimento semi-supervisionato.

In conclusione, gli autoencoder profondi hanno rivoluzionato la riduzione della dimensionalità fornendo mappature flessibili e non lineari che superano le tradizionali tecniche lineari. La loro capacità di apprendere rappresentazioni gerarchiche e ricostruire dati di alta qualità li ha spinti in una posizione di rilievo nel campo del deep learning. Con la continua ricerca e sviluppo, si prevede che gli autocodificatori profondi sbloccheranno ulteriori possibilità per comprendere e manipolare strutture di dati complesse in vari domini.

Lecture 15.2 — Deep autoencoders [Neural Networks for Machine Learning]
Lecture 15.2 — Deep autoencoders [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 15.3 — Deep autoencoder per il recupero di documenti



Lezione 15.3 — Codificatori automatici profondi per il recupero di documenti [Reti neurali per l'apprendimento automatico]

In questo video viene discussa l'applicazione dei codificatori automatici profondi nel recupero dei documenti. Un metodo precedente chiamato analisi semantica latente utilizzava l'analisi delle componenti principali (PCA) sui vettori di conteggio delle parole estratti dai documenti per determinare la somiglianza del documento e facilitare il recupero. Tuttavia, il potenziale per gli autoencoder profondi di superare il PCA in questo compito ha portato a ulteriori esplorazioni.

La ricerca condotta da Russ Salakhutdinov ha dimostrato che gli autocodificatori profondi hanno effettivamente superato l'analisi semantica latente quando applicati a un ampio database di documenti. Anche riducendo la dimensionalità dei dati a soli 10 componenti, l'autoencoder profondo ha prodotto risultati superiori rispetto ai 50 componenti ottenuti da metodi lineari come l'analisi semantica latente.

Il processo di recupero del documento implica la conversione di ogni documento in una rappresentazione di parole, essenzialmente un vettore di conteggi di parole. Le stop words, come "the" o "over", che forniscono poche informazioni sull'argomento del documento, vengono ignorate. Il confronto dei conteggi delle parole di un documento di query con quelli di milioni di altri documenti può essere computazionalmente costoso. Per risolvere questo problema, viene impiegato un codificatore automatico profondo per comprimere i vettori del conteggio delle parole da 2.000 dimensioni a 10 numeri reali, che possono quindi essere utilizzati per il confronto dei documenti in modo più efficiente.

Per adattare l'autoencoder ai conteggi delle parole, viene eseguita una divisione per il numero totale di parole continue, convertendo il vettore di conteggio in un vettore di probabilità in cui i numeri si sommano a uno. Il livello di output dell'autoencoder utilizza una funzione softmax con una dimensionalità corrispondente alla dimensione del vettore di conteggio delle parole. Durante la ricostruzione, le probabilità di conteggio delle parole vengono trattate come valori target. Tuttavia, quando si attiva il primo livello nascosto, tutti i pesi vengono moltiplicati per "n" per tenere conto di più osservazioni dalla distribuzione di probabilità. Ciò garantisce che le unità di input forniscano un input sufficiente al primo livello nascosto.

L'efficacia di questo approccio è stata valutata utilizzando un set di dati di 4.000 documenti aziendali etichettati a mano dal set di dati Reuters. Inizialmente è stato addestrato uno stack di macchine Boltzmann limitate, seguito dalla messa a punto utilizzando la backpropagation con uno strato di output softmax a 2.000 vie. Il test ha comportato la selezione di un documento come query e la classificazione dei documenti rimanenti in base al coseno degli angoli tra i loro vettori a dieci dimensioni. L'accuratezza del recupero è stata misurata confrontando il numero di documenti recuperati con la proporzione di documenti nella stessa classe etichettata a mano del documento interrogato.

I risultati hanno mostrato che l'autocodificatore, anche con solo dieci numeri reali come codice, ha superato l'analisi semantica latente utilizzando 50 numeri reali. Inoltre, la riduzione dei vettori di documenti a due numeri reali e la loro visualizzazione su una mappa ha rivelato una separazione molto più netta delle classi di documenti rispetto alla PCA. Tali display visivi possono fornire preziose informazioni sulla struttura del set di dati e aiutare nei processi decisionali.

In conclusione, i codificatori automatici profondi offrono miglioramenti promettenti rispetto ai metodi lineari tradizionali come PCA per le attività di recupero dei documenti. La loro capacità di comprimere e ricostruire in modo efficiente le rappresentazioni dei documenti catturando le informazioni essenziali può migliorare l'accuratezza e l'efficienza dei sistemi di recupero dei documenti.

Lecture 15.3 — Deep autoencoders for document retrieval [Neural Networks for Machine Learning]
Lecture 15.3 — Deep autoencoders for document retrieval [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 15.4 — Hashing semantico



Lezione 15.4 — Hashing semantico [Reti neurali per l'apprendimento automatico]

In questo video parlerò dell'hashing semantico, una tecnica che trova in modo efficiente documenti simili a un documento di query. Il concetto prevede la conversione di un documento in un indirizzo di memoria e l'organizzazione della memoria per raggruppare insieme documenti simili. È analogo a un supermercato dove si trovano prodotti simili nella stessa zona.

I descrittori binari delle immagini sono preziosi per il rapido recupero delle immagini, ma ottenere un insieme di descrittori binari ortogonali è impegnativo. L'apprendimento automatico può aiutare a risolvere questo problema. Esploreremo l'applicazione di questa tecnica ai documenti e poi alle immagini.

Per ottenere codici binari per i documenti, addestriamo un codificatore automatico profondo con unità logistiche nel suo livello di codice. Tuttavia, per evitare che le unità logistiche utilizzino i loro intervalli medi per trasmettere informazioni sui conteggi delle parole, aggiungiamo rumore agli input durante la fase di fine tuning. Questo rumore incoraggia le unità di codice ad essere attivate o disattivate, risultando in valori binari. La soglia delle unità logistiche al momento del test produce codici binari.

In alternativa, possiamo usare unità binarie stocastiche invece di aggiungere rumore. Durante il passaggio in avanti, un valore binario viene scelto stocasticamente in base all'output dell'unità logistica. Durante il passaggio all'indietro, la probabilità a valori reali viene utilizzata per il calcolo del gradiente uniforme durante la retropropagazione.

Con i codici binari brevi ottenuti, possiamo eseguire una ricerca sequenziale confrontando il codice del documento interrogato con i codici dei documenti archiviati. Tuttavia, un approccio più efficiente consiste nel trattare il codice come un indirizzo di memoria. Utilizzando il deep autoencoder come funzione hash, convertiamo il documento in un indirizzo a 30 bit. Ogni indirizzo in memoria punta a documenti con lo stesso indirizzo, formando un elenco. Capovolgendo i bit nell'indirizzo, possiamo accedere agli indirizzi vicini e trovare documenti semanticamente simili. Ciò evita la necessità di cercare in un lungo elenco di documenti.

Questa ricerca basata sulla memoria è altamente efficiente, specialmente per database di grandi dimensioni. È simile a come cercheresti in un supermercato andando in un luogo specifico e guardando gli articoli nelle vicinanze. Tuttavia, in uno spazio di memoria a 30 dimensioni, gli elementi possono essere posizionati uno vicino all'altro per molteplici motivi, rendendo la ricerca più efficace.

L'hashing semantico si allinea ai metodi di recupero rapido che intersecano gli elenchi archiviati associati ai termini della query. I computer dispongono di hardware specializzato, come il bus di memoria, che può intersecare più elenchi in una singola istruzione. Garantendo che i 32 bit nel codice binario corrispondano a proprietà significative del documento, l'hashing semantico sfrutta l'apprendimento automatico per mappare il problema di recupero sulle operazioni di intersezione di elenchi, consentendo rapide ricerche di somiglianza senza metodi di ricerca tradizionali.

L'hashing semantico è una tecnica potente che sfrutta l'apprendimento automatico per trasformare il problema di recupero in un'attività di intersezione di elenchi in cui i computer eccellono. Rappresentando documenti o immagini come codici binari, possiamo trovare in modo efficiente elementi simili senza la necessità di metodi di ricerca tradizionali.

Per raggiungere questo obiettivo, viene addestrato un codificatore automatico profondo per codificare i documenti in codici binari. Inizialmente, l'autoencoder viene addestrato come una pila di macchine Boltzmann ristrette, che vengono poi srotolate e messe a punto utilizzando la backpropagation. Durante la fase di messa a punto, viene aggiunto del rumore agli ingressi delle unità di codice per incoraggiare l'apprendimento delle caratteristiche binarie.

Una volta addestrato l'autoencoder, i codici binari possono essere utilizzati come indirizzi di memoria. Ogni indirizzo in memoria corrisponde a un insieme di documenti che condividono caratteristiche simili. Capovolgendo alcuni bit nell'indirizzo, possiamo accedere agli indirizzi vicini, formando una palla di Hamming. All'interno di questa palla di Hamming, ci aspettiamo di trovare documenti semanticamente simili.

Questo approccio elimina la necessità di ricerche sequenziali attraverso un ampio database di documenti. Invece, calcoliamo semplicemente l'indirizzo di memoria per il documento di query, esploriamo gli indirizzi vicini capovolgendo i bit e recuperiamo documenti simili. L'efficienza di questa tecnica diventa particolarmente evidente quando si ha a che fare con enormi database contenenti miliardi di documenti, in quanto evita la ricerca seriale attraverso ogni elemento.

Un'analogia spesso utilizzata per spiegare questo processo è il concetto di ricerca al supermercato. Proprio come in un supermercato, dove chiedi al cassiere l'ubicazione di un determinato prodotto, qui convertiamo il documento interrogato in un indirizzo di memoria e cerchiamo documenti simili nelle vicinanze. Lo spazio di memoria a 30 dimensioni consente relazioni complesse e offre ampio spazio per posizionare oggetti con attributi simili in prossimità.

Mentre i metodi di recupero tradizionali si basano su elenchi intersecanti associati a termini di query, l'hashing semantico utilizza l'apprendimento automatico per mappare il problema di recupero sulle capacità di intersezione degli elenchi dei computer. Garantendo che i 32 bit nel codice binario corrispondano a proprietà significative di documenti o immagini, possiamo trovare in modo efficiente elementi simili senza la necessità di operazioni di ricerca esplicite.

L'hashing semantico è una tecnica altamente efficiente per trovare documenti o immagini simili. Trasformandoli in codici binari e trattando i codici come indirizzi di memoria, possiamo recuperare rapidamente elementi semanticamente simili esplorando gli indirizzi vicini. Questo approccio sfrutta i punti di forza dell'apprendimento automatico e sfrutta le capacità di intersezione degli elenchi dei computer, consentendo un recupero rapido e accurato senza la necessità di metodi di ricerca tradizionali.

Lecture 15.4 — Semantic Hashing [Neural Networks for Machine Learning]
Lecture 15.4 — Semantic Hashing [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 15.5 — Apprendimento dei codici binari per il recupero delle immagini



Lezione 15.5 — Apprendimento dei codici binari per il recupero delle immagini [Reti neurali per l'apprendimento automatico]

Il video discute l'uso di codici binari per il recupero delle immagini e lo confronta con i metodi tradizionali che si basano sui sottotitoli. Recuperare le immagini in base al loro contenuto è difficile perché i singoli pixel non forniscono molte informazioni sul contenuto dell'immagine. Tuttavia, estraendo un breve vettore binario che rappresenta il contenuto dell'immagine, possiamo archiviare e abbinare le immagini in modo più efficiente.

Il video suggerisce un metodo in due fasi per il recupero delle immagini. Nella prima fase, un breve codice binario, in genere di circa 30 bit, viene estratto utilizzando l'hashing semantico. Questo codice viene utilizzato per generare rapidamente un breve elenco di potenziali corrispondenze. Nella seconda fase vengono utilizzati codici binari più lunghi, ad esempio 256 bit, per una ricerca più dettagliata e accurata tra le immagini candidate.

Il video presenta un esempio di architettura di autoencoder in grado di ricostruire immagini ed estrarre codici binari informativi. L'autoencoder è costituito da più strati, riducendo progressivamente il numero di unità fino a raggiungere un codice a 256 bit. Utilizzando questo codificatore automatico, il video dimostra che le immagini recuperate sono simili all'immagine della query e presentano relazioni significative.

Inoltre, il video esplora l'uso di una rete neurale pre-addestrata per il riconoscimento delle immagini per estrarre vettori di attività come rappresentazioni del contenuto dell'immagine. Quando si utilizza la distanza euclidea per confrontare questi vettori di attività, i risultati del recupero sono promettenti, suggerendo che questo approccio potrebbe essere esteso ai codici binari per una corrispondenza più efficiente.

Il video si conclude menzionando che la combinazione del contenuto dell'immagine con le didascalie può migliorare ulteriormente la rappresentazione e migliorare le prestazioni di recupero.

Il video evidenzia i vantaggi dell'utilizzo di codici binari per il recupero delle immagini, come l'archiviazione efficiente, la corrispondenza rapida e la capacità di acquisire contenuti di immagini significativi. Dimostra l'efficacia degli autocodificatori e delle reti neurali pre-addestrate nell'estrazione di codici binari informativi e suggerisce che la combinazione di contenuti di immagini e didascalie può portare a risultati di recupero ancora migliori.

Lecture 15.5 — Learning binary codes for image retrieval [Neural Networks for Machine Learning]
Lecture 15.5 — Learning binary codes for image retrieval [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 15.6 — Codificatori automatici poco profondi per la pre-formazione



Lezione 15.6 — Codificatori automatici superficiali per la pre-formazione [Reti neurali per l'apprendimento automatico]

In questo video, il relatore discute metodi di pre-formazione alternativi per l'apprendimento delle reti neurali profonde. Inizialmente, hanno introdotto il pre-allenamento utilizzando macchine Boltzmann restrittive (RBM) addestrate con divergenza contrastiva. Tuttavia, in seguito è stato scoperto che esistono altri modi per pre-addestrare i livelli di funzionalità. Se i pesi sono inizializzati correttamente, il pre-allenamento potrebbe non essere necessario, a condizione che vi siano dati etichettati sufficienti. Il relatore menziona i vantaggi degli autoencoder profondi e dei loro codici per varie applicazioni.

Quindi spostano l'attenzione sugli autoencoder poco profondi, in particolare sugli RBM addestrati con la massima verosimiglianza. Gli RBM come codificatori automatici hanno una forte regolarizzazione dovuta alle unità binarie nascoste, che ne limitano la capacità. Tuttavia, se gli RBM vengono addestrati con la massima verosimiglianza, ignorano i pixel rumorosi e li modellano utilizzando bias di input. Il relatore suggerisce di utilizzare una pila di codificatori automatici invece di RBM per il pre-addestramento, ma questo approccio non è altrettanto efficace, specialmente con codificatori per acque poco profonde che penalizzano solo i pesi al quadrato.

Il relatore introduce gli autoencoder denoising, ampiamente studiati dal gruppo di Montreal. Questi codificatori automatici aggiungono rumore ai vettori di input, impostando alcuni componenti su zero (simile al dropout). Sono tenuti a ricostruire gli input con componenti azzerati, impedendo loro di copiare semplicemente l'input. A differenza dei codificatori per acque poco profonde, i codificatori automatici di riduzione del rumore acquisiscono le correlazioni tra gli input, utilizzando alcuni valori di input per aiutare a ricostruire gli input azzerati. Lo stacking degli autoencoder di denoising può essere molto efficace per il pre-addestramento, superando nella maggior parte dei casi gli RBM.

Il relatore afferma che la valutazione del pre-training utilizzando gli autoencoder di denoising è più semplice poiché la funzione obiettivo può essere facilmente calcolata. Al contrario, la valutazione di RBM con divergenza contrastiva non produce la vera funzione obiettivo. Tuttavia, gli autocodificatori di denoising mancano del limite variazionale che possiedono gli RBM, sebbene questo interesse teorico sia limitato agli RBM addestrati con la massima verosimiglianza.

Un altro tipo di encoder discusso è l'autoencoder contrattivo, anch'esso sviluppato dal gruppo di Montreal. Questi codificatori automatici mirano a rendere le attività nascoste insensibili agli input penalizzando il gradiente al quadrato di ciascuna unità nascosta rispetto a ciascun input. Gli autocodificatori contrattivi funzionano bene per il pre-addestramento e tendono ad avere codici sparsi, con solo un piccolo sottoinsieme di unità nascoste sensibili a diverse parti dello spazio di input.

Il relatore conclude riassumendo il loro punto di vista attuale sulla pre-formazione. Il pre-training layer-by-layer è vantaggioso quando un set di dati ha dati etichettati limitati, poiché aiuta a scoprire buone funzionalità senza fare affidamento sulle etichette. Tuttavia, per set di dati etichettati di grandi dimensioni, il pre-addestramento senza supervisione non è necessario se la rete è sufficientemente grande. Tuttavia, per reti ancora più grandi, la pre-formazione diventa ancora una volta cruciale per prevenire l'overfitting. Il relatore sostiene che i metodi di regolarizzazione come l'abbandono e la pre-formazione sono importanti, soprattutto quando si ha a che fare con ampi spazi di parametri rispetto ai dati disponibili.

Lecture 15.6 — Shallow autoencoders for pre-training [Neural Networks for Machine Learning]
Lecture 15.6 — Shallow autoencoders for pre-training [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 16.1 — Apprendimento di un modello congiunto di immagini e didascalie



Lezione 16.1 — Apprendimento di un modello congiunto di immagini e didascalie [Reti neurali per l'apprendimento automatico]

Discuterò il recente lavoro sull'apprendimento di un modello congiunto di didascalie di immagini e vettori di caratteristiche. In una lezione precedente, abbiamo esplorato come estrarre caratteristiche significative dalle immagini senza utilizzare didascalie. Tuttavia, le didascalie possono fornire informazioni preziose per estrarre categorie semantiche rilevanti dalle immagini e, viceversa, le immagini possono aiutare a disambiguare il significato delle parole nelle didascalie.

L'approccio proposto prevede l'addestramento di una grande rete che prenda come input vettori di funzionalità di visione artificiale standard estratti da immagini e rappresentazioni di parole di didascalie. La rete apprende la relazione tra le due rappresentazioni di input. Viene mostrato un filmato della rete finale, che dimostra l'uso delle parole per creare vettori di caratteristiche per le immagini e la ricerca dell'immagine più vicina nel suo database, nonché l'uso delle immagini per creare sacchi di parole.

Nitish Srivastava e Ruslan Salakhutdinov hanno condotto una ricerca per costruire un modello di densità congiunta di didascalie e immagini. Tuttavia, invece di utilizzare pixel grezzi, hanno rappresentato le immagini utilizzando le funzionalità standard di visione artificiale. Ciò ha richiesto più calcoli rispetto alla creazione di un modello di densità congiunta di etichette e immagini digitali. Hanno addestrato modelli multistrato separati per immagini e vettori di conteggio delle parole dalle didascalie. Questi singoli modelli sono stati quindi collegati a un nuovo livello superiore che integrava entrambe le modalità. È stata eseguita una formazione congiunta dell'intero sistema per consentire a ciascuna modalità di migliorare i primi livelli dell'altra modalità.

Per pre-addestrare gli strati nascosti di una profonda macchina Boltzmann, hanno seguito un approccio diverso rispetto a quello trattato in precedenza nel corso. Piuttosto che utilizzare una pila di macchine Boltzmann (RBM) ristrette per formare una profonda rete di credenze, hanno pre-addestrato direttamente una pila di RBM in un modo specifico. I pesi degli RBM in alto e in basso nello stack sono stati addestrati con una proprietà simmetrica della scala, in cui i pesi dal basso verso l'alto erano due volte più grandi dei pesi dall'alto verso il basso. Gli RBM intermedi sono stati allenati con pesi simmetrici. Questa configurazione di peso ha consentito la media geometrica dei due diversi modelli di ogni strato nella macchina Boltzmann profonda finale.

La giustificazione di questa configurazione di peso risiede nel modo in cui i due modi di inferire gli stati delle unità in ogni strato sono combinati nella profonda macchina di Boltzmann. I pesi assicurano che le prove non vengano conteggiate due volte quando si deduce lo stato di un livello. Gli strati intermedi eseguono la media geometrica delle prove dai modelli bottom-up e top-down, evitando la duplicazione delle prove. Per una spiegazione più dettagliata, fare riferimento al documento originale.

L'approccio presentato nel video si concentra sull'apprendimento di un modello congiunto di didascalie di immagini e vettori di caratteristiche. Integrando le informazioni di entrambe le modalità, il modello mira a migliorare la comprensione di immagini e didascalie e consentire una rappresentazione semantica più accurata.

Vale la pena notare che l'uso di una profonda macchina Boltzmann invece di una profonda rete di credenze per l'allenamento articolare ha i suoi vantaggi. Mentre una rete di credenze profonde avrebbe potuto essere impiegata con la messa a punto generativa utilizzando il sonno di veglia contrastivo, l'algoritmo di messa a punto per le macchine profonde di Boltzmann dovrebbe produrre risultati migliori. Pertanto, la decisione di utilizzare una macchina Boltzmann profonda consente una migliore formazione e miglioramento dei rilevatori di caratteristiche nei primi strati di ciascuna modalità.

Il video tocca anche brevemente il processo di addestramento per la profonda macchina Boltzmann. I pesi degli RBM nella pila sono regolati in modo simmetrico, assicurando che le prove siano opportunamente combinate senza doppi conteggi. Questo approccio consente la media geometrica dei due diversi modelli di ciascun livello, considerando sia gli input bottom-up che quelli top-down. La configurazione del peso specifico garantisce che le prove non vengano duplicate, tenendo conto delle dipendenze tra i livelli.

Sebbene il video fornisca una spiegazione di alto livello del processo, la matematica sottostante e il ragionamento dettagliato possono essere trovati nel documento di accompagnamento. L'approccio presentato nel video e la successiva ricerca di Nitish Srivastava e Ruslan Salakhutdinov contribuiscono a far progredire la modellazione congiunta di didascalie e vettori di caratteristiche, facilitando una migliore comprensione e rappresentazione delle immagini e delle relative didascalie.

In conclusione, il lavoro discusso nel video si concentra sull'apprendimento di un modello congiunto di didascalie di immagini e vettori di caratteristiche. Sfruttando le informazioni presenti in entrambe le modalità, l'approccio proposto mira a migliorare l'estrazione di categorie semantiche dalle immagini e la disambiguazione delle parole nelle didascalie. L'uso di una macchina Boltzmann profonda e la configurazione del peso specifico durante l'allenamento consentono un'efficace integrazione e apprendimento tra le due modalità.

Lecture 16.1 — Learning a joint model of images and captions [Neural Networks for Machine Learning]
Lecture 16.1 — Learning a joint model of images and captions [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 16.2 — Sistemi di coordinate gerarchiche



Lezione 16.2 — Frame di coordinate gerarchiche [Reti neurali per l'apprendimento automatico]

In questo video, il relatore discute il potenziale della combinazione di approcci di riconoscimento degli oggetti nella visione artificiale. Vengono menzionati tre approcci principali: reti neurali convoluzionali profonde (CNN), approcci basati su parti e funzionalità ingegnerizzate a mano con un'ampia ingegneria manuale.

Sebbene le CNN si siano dimostrate efficaci nel riconoscimento degli oggetti, l'oratore sottolinea i limiti, come la perdita di posizioni precise del rilevatore di caratteristiche e la difficoltà di estrapolazione a nuovi punti di vista e scale. Per affrontare queste sfide, il relatore suggerisce di utilizzare una gerarchia di frame di coordinate e di rappresentare la congiunzione della forma e della posa di una caratteristica rispetto alla retina utilizzando gruppi di neuroni.

Rappresentando le pose di parti di oggetti rispetto alla retina, diventa più facile riconoscere oggetti più grandi sfruttando la coerenza delle pose parziali. Il relatore spiega un metodo per utilizzare le attività neurali per rappresentare i vettori di posa e come le relazioni spaziali possono essere modellate come operazioni lineari. Ciò facilita l'apprendimento delle gerarchie delle entità visive e la generalizzazione attraverso i punti di vista.

Il relatore sottolinea l'importanza di incorporare i frame coordinati per rappresentare le forme in modo efficace. Forniscono esempi che dimostrano come il nostro sistema visivo impone frame di coordinate per riconoscere correttamente le forme. La percezione di una forma può cambiare a seconda del frame di coordinate imposto, evidenziando il ruolo dei frame di coordinate nella rappresentazione della forma.

Il video esplora l'idea di combinare diversi approcci di riconoscimento degli oggetti sfruttando i frame di coordinate e le rappresentazioni gerarchiche. Questo approccio mira ad affrontare i limiti delle CNN e migliorare il riconoscimento degli oggetti incorporando le relazioni spaziali e la coerenza della posa. Viene inoltre sottolineata l'importanza dei frame di coordinate nella percezione della forma.

Lecture 16.2 — Hierarchical Coordinate Frames [Neural Networks for Machine Learning]
Lecture 16.2 — Hierarchical Coordinate Frames [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...