Apprendimento automatico e Reti Neurali - pagina 54

 

Lezione 4.2 — Una breve diversione nella scienza cognitiva



Lezione 4.2 — Una breve deviazione nelle scienze cognitive [Reti neurali per l'apprendimento automatico]

Nella scienza cognitiva, c'è stato un dibattito di lunga data sulla relazione tra rappresentazioni vettoriali di caratteristiche e rappresentazioni relazionali di concetti. Questo dibattito non è di grande interesse per gli ingegneri, quindi possono saltare questa discussione.

La teoria delle caratteristiche postula che i concetti siano definiti da un insieme di caratteristiche semantiche, utili per spiegare le somiglianze tra i concetti e per l'apprendimento automatico. D'altra parte, la teoria strutturalista sostiene che il significato di un concetto risiede nelle sue relazioni con altri concetti, favorendo una rappresentazione grafica relazionale.

Negli anni '70, Marvin Minsky ha utilizzato i limiti dei perceptron per argomentare a favore delle rappresentazioni grafiche relazionali. Tuttavia, entrambe le parti del dibattito sono considerate errate perché vedono le teorie come rivali quando possono effettivamente essere integrate.

Le reti neurali possono implementare grafici relazionali utilizzando vettori di caratteristiche semantiche. Nel caso dell'apprendimento degli alberi genealogici, la rete neurale trasmette informazioni senza regole di inferenza esplicite. La risposta è intuitivamente ovvia per la rete a causa dell'influenza delle micro-caratteristiche probabilistiche e delle loro interazioni.

Mentre le regole esplicite sono utilizzate per il ragionamento cosciente, gran parte del nostro buon senso e del ragionamento analogico comporta il "solo vedere" la risposta senza passaggi coscienti. Anche nel ragionamento cosciente, c'è bisogno di un modo per identificare rapidamente le regole applicabili per evitare il regresso infinito.

L'implementazione di un grafico relazionale in una rete neurale non è così semplice come assegnare i neuroni ai nodi del grafico e le connessioni alle relazioni binarie. Diversi tipi di relazioni e relazioni ternarie pongono sfide. Il metodo preciso per implementare la conoscenza relazionale in una rete neurale è ancora incerto, ma è probabile che più neuroni siano coinvolti nella rappresentazione di ciascun concetto, formando una rappresentazione distribuita in cui esistono mappature molti-a-molti tra concetti e neuroni.

In una rappresentazione distribuita, sono probabilmente utilizzati più neuroni per rappresentare ciascun concetto e ciascun neurone può essere coinvolto nella rappresentazione di più concetti. Questo approccio, noto come rappresentazione distribuita, consente una codifica più flessibile ed efficiente della conoscenza concettuale nelle reti neurali.

Tuttavia, i dettagli specifici dell'implementazione di come rappresentare la conoscenza relazionale in una rete neurale sono ancora oggetto di indagine. L'ipotesi che un neurone corrisponda a un nodo nel grafo relazionale e che le connessioni rappresentino relazioni binarie non è sufficiente. Le relazioni sono disponibili in diversi tipi e sapori e le connessioni neurali hanno solo forza, mancando della capacità di catturare diversi tipi di relazione.

Inoltre, devono essere considerate anche le relazioni ternarie, come "A è tra B e C". L'approccio ottimale per integrare la conoscenza relazionale in una rete neurale è ancora incerto e la ricerca in corso mira ad affrontare questa sfida.

Tuttavia, l'evidenza suggerisce che una rappresentazione distribuita è coinvolta nella rappresentazione dei concetti delle reti neurali. Questo approccio consente la flessibilità e la capacità di gestire vari concetti e le loro relazioni, aprendo la strada a modelli e comprensione cognitivi più sofisticati nel campo delle scienze cognitive.

Lecture 4.2 — A brief diversion into cognitive science [Neural Networks for Machine Learning]
Lecture 4.2 — A brief diversion into cognitive science [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 4.3 — La funzione di output softmax [Reti neurali per l'apprendimento automatico]



Lezione 4.3 — La funzione di output softmax [Reti neurali per l'apprendimento automatico]

Ora, approfondiamo l'argomento della funzione di output softmax. La funzione softmax è una tecnica utilizzata per garantire che gli output di una rete neurale si sommino a uno, consentendo loro di rappresentare una distribuzione di probabilità tra alternative che si escludono a vicenda.

Prima di continuare a discutere di come i vettori di caratteristiche vengono appresi per rappresentare le parole, prendiamo una diversione tecnica. Finora abbiamo utilizzato la misura dell'errore al quadrato come criterio di addestramento per le reti neurali, che è adatto per i neuroni lineari. Tuttavia, la misura dell'errore al quadrato ha i suoi limiti.

Ad esempio, se l'output desiderato è 1, ma l'output effettivo di un neurone è estremamente vicino allo zero, è disponibile un gradiente minimo per facilitare gli aggiornamenti del peso. Questo perché la pendenza dell'output del neurone è quasi orizzontale, con conseguenti aggiustamenti di peso lenti nonostante un errore significativo.

Inoltre, quando si assegnano probabilità a etichette di classe che si escludono a vicenda, è fondamentale che l'output riassuma fino a uno. Una risposta come l'assegnazione di tre quarti di probabilità sia alla Classe A che alla Classe B non ha senso. Pertanto, dobbiamo fornire alla rete la consapevolezza che queste alternative si escludono a vicenda.

Per affrontare questi problemi, abbiamo bisogno di una diversa funzione di costo in grado di gestire in modo appropriato le classi che si escludono a vicenda. La funzione softmax ci permette di raggiungere questo obiettivo. È una versione continua della funzione massima, assicurando che gli output del gruppo softmax rappresentino una distribuzione di probabilità.

Nel gruppo softmax, ogni unità riceve un input accumulato, denominato logit, dal livello sottostante. L'uscita di ciascuna unità, indicata con yi, dipende non solo dal proprio logit ma anche dai logit accumulati da altre unità nel gruppo softmax. Matematicamente, l'output dell'i-esimo neurone viene calcolato utilizzando l'equazione e^zi divisa per la somma della stessa quantità per tutti i neuroni nel gruppo softmax.

Questa equazione softmax garantisce che la somma di tutti gli yi sia uguale a uno, rappresentando una distribuzione di probabilità. Inoltre, i valori di yi sono compresi tra zero e uno, rafforzando la rappresentazione di alternative che si escludono a vicenda come distribuzione di probabilità.

La derivata della funzione softmax ha una forma semplice, simile all'unità logistica, che la rende comoda per i calcoli. La derivata dell'output rispetto all'input di un singolo neurone nel gruppo softmax è data da yi volte (1 - yi).

Determinare la funzione di costo appropriata quando si utilizza un gruppo softmax per gli output è fondamentale. Viene comunemente utilizzata la probabilità logaritmica negativa della risposta corretta, nota anche come funzione di costo dell'entropia incrociata. Questa funzione di costo mira a massimizzare la probabilità logaritmica di fornire la risposta corretta.

Per calcolare la funzione di costo dell'entropia incrociata, sommiamo su tutte le possibili risposte, assegnando un valore pari a zero alle risposte sbagliate e un valore pari a uno alla risposta corretta. Calcolando la probabilità logaritmica negativa, otteniamo il costo associato alla risposta corretta.

Un vantaggio chiave della funzione di costo dell'entropia incrociata è il suo ampio gradiente quando il valore target è 1 e l'output è vicino allo zero. Anche piccoli cambiamenti nell'output migliorano significativamente il valore della funzione di costo. Ad esempio, un valore di uno su un milione è notevolmente migliore di un valore di uno su un miliardo, anche se la differenza è minima.

Per illustrare ulteriormente questo punto, immagina di piazzare una scommessa basata sulla convinzione che la risposta sia una su un milione o una su un miliardo. Scommettere con una quota di uno su un milione e sbagliare comporterebbe la perdita di un milione di dollari. Al contrario, se la risposta fosse una su un miliardo, la stessa scommessa porterebbe a perdere un miliardo di dollari.

Questa proprietà della funzione di costo dell'entropia incrociata garantisce una derivata ripida quando la risposta è significativamente errata, il che bilancia la piattezza della variazione dell'output al variare dell'input. Quando moltiplichiamo questi fattori insieme, otteniamo la derivata della funzione di costo dell'entropia incrociata rispetto al logit che entra nell'unità di output i. Per questo calcolo viene utilizzata la regola della catena.

La derivata della funzione di costo rispetto all'output di un'unità, moltiplicata per la derivata dell'output rispetto al logit zi, produce l'output effettivo meno l'output target. La pendenza di questa differenza è uno o meno uno quando gli output e gli obiettivi sono significativamente diversi e la pendenza è vicina allo zero solo quando sono quasi identici, indicando che si sta producendo una risposta corretta.

La funzione di output softmax viene utilizzata per garantire che gli output di una rete neurale rappresentino una distribuzione di probabilità tra alternative che si escludono a vicenda. Utilizzando l'equazione softmax, gli output sono vincolati a sommare fino a uno, indicando probabilità per classi diverse.

Tuttavia, l'utilizzo della misura dell'errore al quadrato come funzione di costo per l'addestramento delle reti neurali presenta degli svantaggi, come i lenti aggiustamenti del peso quando l'output desiderato è lontano dall'output effettivo. Per risolvere questo problema, viene introdotta la funzione di costo dell'entropia incrociata. Calcola la probabilità logaritmica negativa della risposta corretta e produce un gradiente maggiore quando il valore target è 1 e l'output è vicino a zero. Questa proprietà consente un apprendimento più efficiente ed evita di assegnare uguali probabilità ad alternative che si escludono a vicenda.

La funzione softmax, insieme alla funzione di costo dell'entropia incrociata, fornisce una potente combinazione per addestrare le reti neurali a produrre output probabilistici. Regolando i pesi e le distorsioni attraverso la retropropagazione e la discesa del gradiente stocastico, la rete può imparare a fare previsioni accurate e rappresentare relazioni complesse tra i dati.

È importante notare che questi concetti e tecniche costituiscono la base dell'addestramento delle reti neurali e sono applicabili in vari domini, tra cui l'elaborazione del linguaggio naturale, la visione artificiale e il riconoscimento di modelli. La continua ricerca e i progressi in queste aree contribuiscono a migliorare le prestazioni e le capacità delle reti neurali nella risoluzione dei problemi del mondo reale.

Lecture 4.3 — The softmax output function [Neural Networks for Machine Learning]
Lecture 4.3 — The softmax output function [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 4.4 — Modelli linguistici neuroprobabilistici



Lezione 4.4 — Modelli linguistici neuroprobabilistici [Neural Networks for Machine Learning]

In questo video, esploriamo un'applicazione pratica dei vettori di caratteristiche che rappresentano le parole, in particolare nei sistemi di riconoscimento vocale. Avere una buona comprensione di ciò che qualcuno potrebbe dire dopo è fondamentale per riconoscere con precisione i suoni che emettono.

Il riconoscimento vocale deve affrontare sfide nell'identificare accuratamente i fonemi, specialmente nei discorsi rumorosi in cui l'input acustico è spesso ambiguo e più parole possono adattarsi ugualmente bene al segnale. Tuttavia, di solito non notiamo questa ambiguità perché ci affidiamo al significato dell'enunciato per ascoltare le parole corrette. Questo processo inconscio di riconoscimento del parlato evidenzia la necessità per i riconoscitori vocali di prevedere le probabili parole successive.

Fortunatamente, le parole possono essere previste in modo efficace senza comprendere appieno il contenuto parlato. Il metodo del trigramma è un approccio standard per prevedere le probabilità di diverse parole che possono seguire. Implica il conteggio delle frequenze delle triple di parole in un ampio corpus di testo e l'utilizzo di queste frequenze per stimare le probabilità relative della parola successiva date le due parole precedenti.

Il metodo del trigramma è stato un approccio all'avanguardia fino a poco tempo fa, in quanto fornisce probabilità basate su due parole precedenti. L'utilizzo di contesti più ampi comporterebbe un'esplosione di possibilità e per lo più zero conteggi. Nei casi in cui il contesto non è visibile, come "pizza di dinosauro", il modello ricorre a previsioni di singole parole. È importante non assegnare probabilità pari a zero solo perché un esempio non è mai stato incontrato prima.

Tuttavia, il modello del trigramma trascura informazioni preziose che possono aiutare a prevedere la parola successiva. Ad esempio, comprendere le somiglianze tra parole come "gatto" e "cane" o "schiacciato" e "appiattito" può migliorare l'accuratezza della previsione. Per superare questa limitazione, le parole devono essere trasformate in vettori di caratteristiche che catturino le loro caratteristiche semantiche e sintattiche. Utilizzando le caratteristiche delle parole precedenti, è possibile utilizzare un contesto più ampio (ad esempio, 10 parole precedenti) per la previsione.

Joshua Bengio ha aperto la strada a questo approccio utilizzando le reti neurali e il suo modello iniziale ricorda la rete degli alberi genealogici ma applicato alla modellazione del linguaggio con maggiore complessità. Inserendo l'indice di una parola e propagando l'attività attraverso strati nascosti, la rete può apprendere rappresentazioni distribuite di parole come vettori di caratteristiche. Questi vettori vengono quindi utilizzati per prevedere le probabilità di varie parole utilizzando un livello di output softmax.

Un ulteriore miglioramento è l'uso di connessioni skip layer che collegano direttamente le parole di input alle parole di output. Le singole parole di input contengono informazioni preziose sulle potenziali parole di output. Il modello di Bengio inizialmente ha funzionato leggermente peggio dei trigrammi, ma ha mostrato risultati promettenti se combinato con i trigrammi.

Dal lavoro di Bengio, i modelli linguistici che utilizzano vettori di caratteristiche per le parole sono notevolmente migliorati e hanno superato i modelli di trigrammi. Tuttavia, sorge una sfida quando si ha a che fare con un gran numero di parole di output, poiché il livello di output softmax può richiedere un numero considerevole di pesi (ad esempio, centinaia di migliaia). L'overfitting può verificarsi se l'ultimo strato nascosto è troppo grande, ma la riduzione delle sue dimensioni porta alla previsione accurata di un vasto numero di probabilità.

Nel prossimo video esploreremo approcci alternativi per gestire il gran numero di parole di output, considerando che sia le probabilità grandi che quelle piccole sono rilevanti per i sistemi di riconoscimento vocale.

Lecture 4.4 — Neuro-probabilistic language models [Neural Networks for Machine Learning]
Lecture 4.4 — Neuro-probabilistic language models [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 4.5 – Affrontare molti possibili risultati



Lezione 4.5 — Affrontare molti possibili risultati [Reti neurali per l'apprendimento automatico]

In questo video esploreremo diversi approcci per evitare la necessità di un numero eccessivo di unità di output in un softmax quando si ha a che fare con un ampio vocabolario. Invece di avere centinaia di migliaia di unità di output per ottenere le probabilità delle parole, possiamo usare architetture alternative.

Un approccio è un'architettura seriale, in cui inseriamo parole di contesto e una parola candidata. Attraversando la rete, generiamo un punteggio che indica l'idoneità della parola candidata in quel contesto. Questo approccio richiede l'esecuzione della rete più volte, ma la maggior parte dei calcoli deve essere eseguita solo una volta. Possiamo riutilizzare gli stessi input dal contesto per diverse parole candidate e l'unica parte che deve essere ricalcolata sono gli input specifici della parola candidata e l'output del punteggio finale.

Per imparare in questa architettura seriale, calcoliamo i punteggi per ogni parola candidata e applichiamo una funzione softmax per ottenere le probabilità delle parole. Confrontando le probabilità delle parole con le loro probabilità target (di solito una per la parola corretta e zero per le altre), possiamo derivare le derivate dell'area dell'entropia incrociata. Questi derivati guidano gli aggiustamenti del peso per aumentare il punteggio per la parola candidata corretta e diminuire i punteggi per i rivali di alto rango. Per ottimizzare l'efficienza, possiamo considerare un insieme più piccolo di parole candidate suggerite da un altro predittore invece di valutare tutti i possibili candidati.

Un altro metodo per evitare un softmax di grandi dimensioni è organizzare le parole in una struttura ad albero binario. Ciò comporta la disposizione di tutte le parole come foglie nell'albero e l'utilizzo del contesto delle parole precedenti per generare un vettore di previsione. Confrontando questo vettore con un vettore appreso per ciascun nodo dell'albero, possiamo determinare la probabilità di prendere il ramo destro o sinistro. Attraversando ricorsivamente l'albero, possiamo arrivare alla parola target. Durante l'apprendimento, dobbiamo solo considerare i nodi lungo il percorso corretto, riducendo notevolmente il carico computazionale.

Un approccio diverso per l'apprendimento dei vettori delle caratteristiche delle parole consiste nello sfruttare il contesto passato e futuro. Usando una finestra di parole, posizioniamo la parola corretta o una parola a caso al centro della finestra. Addestrando una rete neurale a produrre punteggi alti per la parola corretta e punteggi bassi per parole casuali, possiamo apprendere vettori di caratteristiche che catturano distinzioni semantiche. Questi vettori di caratteristiche sono quindi utili per varie attività di elaborazione del linguaggio naturale.

Per visualizzare i vettori delle caratteristiche apprese, possiamo visualizzarli in una mappa bidimensionale utilizzando tecniche come t-SNE. Questa visualizzazione aiuta a identificare parole e cluster simili, fornendo informazioni sulla comprensione del significato delle parole da parte della rete neurale. I vettori appresi possono rivelare relazioni e distinzioni semantiche, dimostrando il potere delle informazioni contestuali nel determinare i significati delle parole.

Ecco un altro esempio della rappresentazione cartografica bidimensionale dei vettori delle caratteristiche apprese. In questa sezione della mappa, possiamo osservare un gruppo di parole relative ai giochi. Parole come partite, giochi, gare, giocatori, squadre e club sono raggruppate insieme, indicando la loro somiglianza nel significato. Inoltre, identifica gli elementi associati ai giochi, inclusi premi, coppe, ciotole, medaglie e altri premi. La capacità della rete neurale di catturare queste relazioni semantiche le consente di dedurre che se una parola è adatta a un particolare contesto, è probabile che anche altre parole all'interno dello stesso cluster siano appropriate.

Passando ad un'altra parte della mappa, incontriamo un cluster dedicato ai luoghi. In cima troviamo vari stati degli Stati Uniti, seguiti dalle città, prevalentemente quelle situate nel Nord America. Inoltre, la mappa mostra altre città e paesi, dimostrando la comprensione delle relazioni geografiche da parte della rete neurale. Ad esempio, collega Cambridge con Toronto, Detroit e Ontario, tutti appartenenti al Canada anglofono, mentre raggruppa il Quebec con Berlino e Parigi, associandolo al Canada francofono. Allo stesso modo, suggerisce una somiglianza tra Iraq e Vietnam.

Esploriamo un altro esempio sulla mappa. Questa sezione si concentra sugli avverbi, mostrando parole come probabilmente, probabilmente, possibilmente e forse, che condividono significati simili. Allo stesso modo, identifica le somiglianze semantiche tra interamente, completamente, completamente e grandemente. Inoltre, riconosce altri modelli di somiglianza, come quale e quello, chi e cosa, e come, se e perché.

L'aspetto affascinante di questi vettori di caratteristiche apprese è che catturano sottili sfumature semantiche esclusivamente analizzando sequenze di parole da Wikipedia, senza alcuna guida esplicita. Queste informazioni contestuali svolgono un ruolo cruciale nella comprensione dei significati delle parole. In effetti, alcune teorie suggeriscono che sia uno dei meccanismi primari attraverso i quali acquisiamo la semantica delle parole.

In conclusione, questi diversi approcci alla gestione di grandi vocabolari e all'apprendimento delle rappresentazioni delle parole offrono alternative efficienti alla tradizionale architettura softmax. Sfruttando architetture seriali, strutture ad albero o informazioni contestuali, le reti neurali possono generare rappresentazioni di parole significative e simili. Queste rappresentazioni si dimostrano preziose in vari compiti di elaborazione del linguaggio naturale, mostrando la capacità della rete di catturare relazioni semantiche e distinzioni tra parole.

Lecture 4.5 — Dealing with many possible outputs [Neural Networks for Machine Learning]
Lecture 4.5 — Dealing with many possible outputs [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 5.1 — Perché il riconoscimento degli oggetti è difficile



Lezione 5.1 — Perché il riconoscimento degli oggetti è difficile [Reti neurali per l'apprendimento automatico]

Riconoscere gli oggetti nelle scene reali pone diverse sfide che spesso vengono trascurate a causa della nostra innata competenza in questo compito. La conversione delle intensità dei pixel in etichette di oggetti è un processo complesso che comporta varie difficoltà. Uno dei principali ostacoli è la segmentazione dell'oggetto rispetto a ciò che lo circonda, poiché mancano i segnali di movimento e stereo disponibili nel mondo reale. Questa assenza rende difficile determinare quali parti appartengono allo stesso oggetto. Inoltre, gli oggetti possono essere parzialmente nascosti da altri oggetti, complicando ulteriormente il processo di riconoscimento. È interessante notare che le nostre eccezionali capacità visive spesso mascherano questi problemi.

Un'altra sfida significativa nel riconoscimento degli oggetti deriva dall'influenza dell'illuminazione sulle intensità dei pixel. L'intensità di un pixel dipende non solo dall'oggetto stesso ma anche dalle condizioni di illuminazione. Ad esempio, una superficie nera sotto una luce intensa produce pixel più intensi rispetto a una superficie bianca in condizioni di scarsa illuminazione. Per riconoscere un oggetto, dobbiamo convertire queste intensità di pixel variabili in etichette di classe, ma queste variazioni possono verificarsi a causa di fattori non correlati alla natura o all'identità dell'oggetto.

Gli oggetti possono anche subire deformazioni, il che aumenta la complessità del riconoscimento. Anche per oggetti relativamente semplici come le cifre scritte a mano, esiste un'ampia gamma di forme associate allo stesso nome. Ad esempio, il numero "2" può apparire in corsivo con una cuspide o avere un anello più grande e una forma più arrotondata. Inoltre, la classe di un oggetto è spesso definita dalla sua funzione piuttosto che dal suo aspetto visivo. Considera le sedie, dove esistono innumerevoli varianti, dalle poltrone ai moderni design con struttura in acciaio e schienali in legno. Le caratteristiche visive da sole potrebbero non essere sufficienti per determinare la classe.

Le variazioni del punto di vista aggravano ulteriormente le difficoltà di riconoscimento degli oggetti. La capacità di riconoscere un oggetto tridimensionale da più prospettive crea cambiamenti di immagine che i metodi convenzionali di machine learning fanno fatica a gestire. Le informazioni su un oggetto possono spostarsi su diversi pixel quando l'oggetto si muove mentre il nostro sguardo rimane fisso. Questo trasferimento di informazioni tra le dimensioni di input, tipicamente corrispondenti ai pixel nelle attività visive, non si riscontra comunemente nell'apprendimento automatico. Affrontare questo problema, spesso indicato come "salto di dimensione", è fondamentale per migliorare l'accuratezza del riconoscimento. Un approccio sistematico alla risoluzione di questo problema è altamente auspicabile.

In sintesi, riconoscere gli oggetti nelle scene reali comporta numerose sfide. Superare queste difficoltà richiede di affrontare questioni relative alla segmentazione, alle variazioni di illuminazione, all'occlusione, alle deformazioni, ai cambiamenti di punto di vista e alla definizione semantica degli oggetti. Lo sviluppo di metodi robusti e sistematici che tengano conto di questi fattori migliorerà l'accuratezza e l'affidabilità dei sistemi di riconoscimento degli oggetti.

Lecture 5.1 — Why object recognition is difficult [Neural Networks for Machine Learning]
Lecture 5.1 — Why object recognition is difficult [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 5.2 — Raggiungere l'invarianza del punto di vista



Lezione 5.2 — Raggiungere l'invarianza del punto di vista [Reti neurali per l'apprendimento automatico]

In questo video, approfondirò il concetto di invarianza del punto di vista ed esplorerò vari approcci per affrontare questa sfida nel riconoscimento degli oggetti. Le variazioni del punto di vista rappresentano un ostacolo significativo perché ogni volta che osserviamo un oggetto, questo appare su pixel diversi, rendendo il riconoscimento dell'oggetto distinto dalla maggior parte delle attività di apprendimento automatico. Nonostante la nostra naturale attitudine per questo compito, dobbiamo ancora trovare soluzioni ampiamente accettate in ingegneria o psicologia.

Il primo approccio suggerisce l'utilizzo di caratteristiche invarianti ridondanti. Queste funzionalità dovrebbero essere in grado di resistere a trasformazioni come la traslazione, la rotazione e il ridimensionamento. Ad esempio, una coppia di linee approssimativamente parallele con un punto rosso tra di loro è stata proposta come caratteristica invariante utilizzata dai cuccioli di gabbiano reale per identificare dove beccare il cibo. Utilizzando un ampio insieme di caratteristiche invarianti, possiamo assemblarle in modo univoco in un oggetto o in un'immagine senza rappresentare esplicitamente le relazioni tra le caratteristiche.

Tuttavia, la sfida sorge quando si tratta di compiti di riconoscimento. L'estrazione di caratteristiche da più oggetti può portare a caratteristiche composte da parti di oggetti diversi, portando a informazioni fuorvianti per il riconoscimento. Pertanto, diventa fondamentale evitare di formare caratteristiche da parti di oggetti diversi.

Un altro approccio, definito "normalizzazione giudiziosa", prevede il posizionamento di una scatola attorno all'oggetto. Definendo un quadro di riferimento all'interno di questo riquadro, possiamo descrivere le caratteristiche dell'oggetto rispetto ad esso, ottenendo l'invarianza. Supponendo che l'oggetto sia una forma rigida, questo approccio elimina efficacemente l'impatto dei cambiamenti di punto di vista, mitigando il problema del salto dimensionale. La scatola non deve necessariamente essere rettangolare; può tenere conto di traslazione, rotazione, scala, taglio e allungamento. Tuttavia, la selezione della casella appropriata pone problemi a causa di potenziali errori di segmentazione, occlusione e orientamenti insoliti. Determinare la scatola corretta si basa sulla nostra conoscenza della forma dell'oggetto, creando un problema dell'uovo e della gallina: dobbiamo riconoscere la forma per ottenere la scatola giusta, ma abbiamo bisogno della scatola corretta per riconoscere la forma.

Un approccio di normalizzazione della forza bruta prevede l'utilizzo di immagini verticali ben segmentate durante l'addestramento per definire con giudizio scatole attorno agli oggetti. Durante i test, quando si ha a che fare con immagini disordinate, vengono esplorate tutte le possibili caselle in varie posizioni e scale. Questo approccio è comunemente utilizzato nella visione artificiale per attività come il rilevamento di volti o numeri civici in immagini non segmentate. Tuttavia, è più efficiente quando il riconoscitore è in grado di gestire alcune variazioni di posizione e scala, consentendo l'uso di una griglia grossolana per provare caselle diverse.

L'invarianza del punto di vista è una sfida significativa nel riconoscimento degli oggetti. Approcci come l'utilizzo di caratteristiche invarianti, la normalizzazione giudiziosa con riquadri di delimitazione e la normalizzazione della forza bruta aiutano a mitigare gli effetti delle variazioni del punto di vista. Tuttavia, la selezione delle caratteristiche appropriate, la determinazione della scatola corretta e la gestione di posizioni e scale variabili rimangono sforzi di ricerca in corso nel campo della visione artificiale.

Lecture 5.2 — Achieving viewpoint invariance [Neural Networks for Machine Learning]
Lecture 5.2 — Achieving viewpoint invariance [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 5.3 — Reti convoluzionali per il riconoscimento di cifre



Lezione 5.3 — Reti convoluzionali per il riconoscimento di cifre [Reti neurali per l'apprendimento automatico]

In questo video, discutiamo delle reti neurali convoluzionali (CNN) e della loro applicazione nel riconoscimento delle cifre scritte a mano. Le CNN furono un grande successo negli anni '80, in particolare le profonde reti convoluzionali di Yan LeCun, che eccellevano nel riconoscere la scrittura a mano e furono implementate nella pratica. Queste reti erano tra le poche reti neurali profonde di quell'epoca che potevano essere addestrate sui computer disponibili e funzionare eccezionalmente bene.

Le CNN sono costruite sul concetto di funzionalità replicate. Poiché gli oggetti possono apparire in posizioni diverse all'interno di un'immagine, è probabile che un rilevatore di caratteristiche utile in una posizione sia utile altrove. Per sfruttare questa idea, vengono create più copie dello stesso rilevatore di caratteristiche in diverse posizioni nell'immagine. Questi rilevatori di caratteristiche replicate condividono i pesi, riducendo significativamente il numero di parametri che devono essere appresi. Ad esempio, tre rilevatori replicati con 27 pixel richiedono solo nove pesi diversi.

Nelle CNN vengono impiegate più mappe di caratteristiche, ciascuna costituita da caratteristiche replicate. Queste caratteristiche replicate sono costrette a essere identiche in varie posizioni, mentre mappe diverse imparano a rilevare caratteristiche diverse. Questo approccio consente a diversi tipi di caratteristiche di rappresentare ogni patch di immagine, migliorando le capacità di riconoscimento. Le funzionalità replicate si allineano bene con la backpropagation, poiché è facile addestrarle utilizzando questo algoritmo. La backpropagation può essere modificata per incorporare vincoli lineari tra i pesi, assicurando che i rilevatori di funzionalità replicati vengano appresi in modo efficace.

C'è spesso confusione riguardo ai risultati dei rilevatori di caratteristiche replicate. Sebbene alcuni affermino di ottenere l'invarianza della traduzione, questo non è del tutto esatto. Le caratteristiche replicate raggiungono l'equivalenza, non l'invarianza, nelle attività dei neuroni. Ad esempio, quando un'immagine viene tradotta, anche i neuroni attivati si spostano di conseguenza. Tuttavia, la conoscenza acquisita dalle funzionalità replicate è invariante. Se è noto che una caratteristica viene rilevata in una posizione, può essere rilevata in un'altra. Per introdurre una certa invarianza traslazionale, gli output dei rilevatori di caratteristiche replicati possono essere raggruppati, calcolando la media o prendendo il massimo dei rilevatori vicini. Tuttavia, informazioni spaziali precise possono andare perse attraverso questo processo di raggruppamento, con ripercussioni sulle attività che si basano su relazioni spaziali accurate.

Jan Lecun ei suoi collaboratori hanno dimostrato la potenza delle CNN nel riconoscimento delle cifre scritte a mano, ottenendo risultati impressionanti con la loro architettura LeNet-5. LeNet-5 comprendeva più livelli nascosti e mappe delle caratteristiche, oltre al raggruppamento tra i livelli. Poteva gestire caratteri sovrapposti e non richiedeva la segmentazione prima dell'input. La metodologia di formazione ha utilizzato un approccio di sistema completo, generando codici postali come output dai pixel di input. La formazione è stata condotta utilizzando un metodo simile al margine massimo, anche prima della sua introduzione formale. LeNet-5 si è rivelato molto prezioso nella lettura di assegni in tutto il Nord America.

L'inserimento di conoscenze pregresse nell'apprendimento automatico, in particolare nelle reti neurali, può essere effettuato attraverso la progettazione della rete, la connettività locale, i vincoli di peso o attività neurali appropriate. Questo approccio orienta la rete verso un particolare approccio alla risoluzione dei problemi. Un altro metodo consiste nel generare dati di addestramento sintetici basati su conoscenze pregresse, che forniscono alla rete più esempi da cui imparare. Man mano che i computer diventano più veloci, quest'ultimo approccio diventa sempre più fattibile. Consente all'ottimizzazione di scoprire modi efficaci di utilizzare reti multistrato, ottenendo potenzialmente soluzioni superiori senza una completa comprensione dei meccanismi sottostanti.

Utilizzando dati sintetici, sono stati fatti diversi progressi nel riconoscimento delle cifre scritte a mano. Combinando trucchi come la generazione di dati sintetici, l'addestramento di grandi reti su unità di elaborazione grafica (GPU) e la creazione di modelli di consenso, sono stati ottenuti miglioramenti significativi. Ad esempio, un gruppo guidato da Jurgen Schmidhuber in Svizzera ha ridotto il tasso di errore a circa 25 errori, avvicinandosi probabilmente al tasso di errore umano. La valutazione delle prestazioni di diversi modelli richiede di considerare quali errori commettono piuttosto che affidarsi esclusivamente a metriche numeriche. I test statistici come il test McNemar forniscono una maggiore sensibilità analizzando errori specifici, consentendo una migliore valutazione della superiorità del modello.

Pertanto, quando si confrontano i modelli in base ai loro tassi di errore, è importante considerare gli errori specifici che commettono e condurre test statistici come il test di McNemar per determinare se le differenze sono statisticamente significative. Osservare semplicemente i tassi di errore complessivi potrebbe non fornire informazioni sufficienti per esprimere un giudizio sicuro.

Il lavoro svolto dal gruppo di Jurgen Schmidhuber in Svizzera ha mostrato l'efficacia dell'iniezione di conoscenza attraverso dati sintetici. Hanno dedicato uno sforzo significativo alla generazione di dati sintetici istruttivi trasformando casi di formazione reali per creare ulteriori esempi di formazione. Addestrando una grande rete con molte unità per layer e molti layer su un'unità di elaborazione grafica (GPU), sono stati in grado di sfruttare la potenza di calcolo ed evitare l'overfitting.

Il loro approccio combinava tre tecniche chiave: generazione di dati sintetici, addestramento di una grande rete su una GPU e utilizzo di un metodo di consenso con più modelli per determinare la previsione finale. Grazie a questo approccio, hanno ottenuto risultati impressionanti, riducendo il tasso di errore a circa 25 errori, che è paragonabile al tasso di errore umano.

Quando si confrontano modelli con diversi tassi di errore, sorge una domanda interessante: come determiniamo se un modello con 30 errori è significativamente migliore di un modello con 40 errori? Sorprendentemente, dipende dagli errori specifici commessi da ciascun modello. La semplice osservazione dei numeri non è sufficiente. Il test McNemar, un test statistico che si concentra sugli errori specifici, fornisce una maggiore sensibilità nel confrontare i modelli.

Ad esempio, considerando una tabella 2x2, possiamo esaminare i casi in cui un modello ha ragione mentre l'altro ha torto. Analizzando i rapporti di questi casi, possiamo determinare il significato delle differenze tra i modelli. In alcuni casi, un modello può avere un tasso di errore inferiore ma avere prestazioni peggiori nei casi specifici in cui l'altro modello ha successo, rendendo il confronto meno significativo.

Pertanto, quando si valutano e si confrontano i modelli, è fondamentale considerare sia i tassi di errore che gli errori specifici commessi. I test statistici come il test McNemar possono fornire informazioni più accurate sulle differenze di prestazioni tra i modelli. Questo ci aiuta a prendere decisioni informate sulla selezione e il miglioramento del modello.

Oltre a considerare i tassi di errore e gli errori specifici, ci sono altri fattori da considerare quando si valutano e si confrontano i modelli.

  1. Qualità e quantità dei dati: la qualità e la quantità dei dati di addestramento possono avere un impatto significativo sulle prestazioni del modello. I modelli addestrati su set di dati ampi, diversificati e rappresentativi tendono a generalizzare meglio. È importante garantire che i dati utilizzati per l'addestramento e la valutazione riflettano accuratamente gli scenari del mondo reale che il modello incontrerà.

  2. Risorse computazionali: le risorse computazionali necessarie per addestrare e distribuire un modello sono considerazioni essenziali. Alcuni modelli potrebbero richiedere un'ampia potenza di calcolo, come GPU ad alte prestazioni o hardware specializzato, che possono influire sulla loro praticità e scalabilità.

  3. Interpretabilità: a seconda dell'applicazione, l'interpretabilità delle previsioni del modello può essere cruciale. Alcuni modelli, come le reti neurali profonde, sono spesso considerati scatole nere, il che rende difficile comprendere il ragionamento alla base delle loro decisioni. Al contrario, altri modelli, come alberi decisionali o modelli lineari, offrono maggiore interpretabilità. La scelta del modello dovrebbe essere in linea con i requisiti del problema e delle parti interessate.

  4. Robustezza e generalizzazione: le prestazioni di un modello dovrebbero essere valutate non solo sui dati di addestramento ma anche su dati invisibili per valutarne la capacità di generalizzazione. Un modello robusto dovrebbe funzionare bene su diversi campioni di dati ed essere resistente a rumore, valori anomali e attacchi avversari.

  5. Scalabilità ed efficienza: a seconda dei requisiti dell'applicazione, la scalabilità e l'efficienza del modello sono considerazioni importanti. I modelli in grado di elaborare in modo efficiente grandi quantità di dati o fare previsioni in tempo reale possono essere preferiti in determinati scenari.

  6. Considerazioni etiche: è essenziale considerare le implicazioni etiche durante la selezione e l'implementazione dei modelli. Bias nei dati o previsioni del modello, equità, privacy e problemi di sicurezza dovrebbero essere presi in considerazione per garantire un uso responsabile ed equo dei sistemi di IA.

  7. Feedback degli utenti ed esperienza nel dominio: la raccolta del feedback degli utenti finali e degli esperti del dominio può fornire preziose informazioni sulle prestazioni e l'idoneità di un modello. Il loro contributo può aiutare a identificare aree specifiche di miglioramento o scoprire limiti che potrebbero non essere rilevati dalle metriche di valutazione automatizzate.

Considerando questi fattori oltre ai tassi di errore e agli errori specifici, possiamo prendere decisioni più complete e informate durante la valutazione e il confronto dei modelli.

Lecture 5.3 — Convolutional nets for digit recognition [Neural Networks for Machine Learning]
Lecture 5.3 — Convolutional nets for digit recognition [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 5.4 — Reti convoluzionali per il riconoscimento di oggetti



Lezione 5.4 — Reti convoluzionali per il riconoscimento di oggetti [Neural Networks for Machine Learning]

La questione se le reti sviluppate per riconoscere le cifre scritte a mano potessero essere ingrandite per riconoscere oggetti in immagini a colori ad alta risoluzione è sempre stata oggetto di speculazione. È stato considerato un compito impegnativo a causa di vari fattori come la gestione di scene disordinate, segmentazione, punto di vista 3D, oggetti multipli e variazioni di illuminazione. In passato, i ricercatori si sono concentrati sul miglioramento della capacità delle reti di riconoscere le cifre scritte a mano, il che ha portato alcuni a dubitare della generalizzabilità delle loro scoperte a immagini a colori reali.

Per rispondere a questa domanda, si è tenuto un recente concorso chiamato ImageNet, in cui i sistemi di visione artificiale sono stati testati su un sottoinsieme di 1,2 milioni di immagini a colori ad alta risoluzione. Il compito era etichettare correttamente le immagini con mille classi diverse. I sistemi potevano fare cinque previsioni e venivano considerate corrette se una delle previsioni corrispondeva all'etichetta assegnata da una persona. Inoltre, c'era un'attività di localizzazione in cui i sistemi dovevano posizionare una scatola attorno all'oggetto riconosciuto.

Alla competizione hanno partecipato i principali gruppi di visione artificiale di varie istituzioni, impiegando complessi sistemi a più fasi che combinavano le prime fasi regolate manualmente con algoritmi di apprendimento nella fase superiore. Tuttavia, il compito si è rivelato molto impegnativo, con percentuali di errore comprese tra il 26% e il 27% per i sistemi migliori. Al contrario, la rete neurale profonda di Alex Krizhevsky ha raggiunto un tasso di errore significativamente inferiore del 16%.

La rete di Alex Krizhevsky, basata su reti neurali convoluzionali profonde, utilizzava sette livelli nascosti e unità lineari rettificate come funzioni di attivazione. La rete ha utilizzato la normalizzazione competitiva all'interno di uno strato per gestire le variazioni di intensità. Sono state utilizzate diverse tecniche per migliorare la generalizzazione, tra cui l'aumento dei dati con trasformazioni, come il downsampling e le riflessioni, e l'uso della regolarizzazione del dropout nei livelli superiori. La rete è stata addestrata su hardware potente, in particolare processori grafici Nvidia GTX 580.

I risultati della competizione hanno mostrato che la rete di Alex Krizhevsky ha superato di gran lunga gli altri sistemi di visione artificiale. Il suo successo ha dimostrato il potenziale delle reti neurali profonde per il riconoscimento di oggetti in immagini a colori reali. Queste reti possono sfruttare le conoscenze precedenti e gestire set di dati e calcoli su larga scala. L'utilizzo di hardware efficiente e la possibilità di distribuire le reti su più core migliorano ulteriormente le loro capacità. Di conseguenza, si prevede che le reti neurali profonde continueranno ad avanzare e diventeranno l'approccio standard per il riconoscimento degli oggetti nelle immagini statiche.

Allo stesso modo, le reti neurali profonde hanno mostrato prestazioni impressionanti in vari altri domini. Ad esempio, hanno avuto successo nelle attività di elaborazione del linguaggio naturale come la traduzione linguistica, l'analisi dei sentimenti e la risposta alle domande. In questi compiti, le reti imparano a comprendere la semantica e il contesto del testo, consentendo loro di generare risposte accurate e significative.

Inoltre, le reti neurali profonde sono state applicate anche al riconoscimento vocale, dove hanno superato i metodi tradizionali. Apprendendo da grandi quantità di dati vocali etichettati, queste reti possono riconoscere e trascrivere efficacemente le parole pronunciate con elevata precisione.

Nel campo della sanità, le reti neurali profonde hanno dimostrato notevoli capacità nell'analisi delle immagini mediche. Possono aiutare a diagnosticare malattie da immagini mediche come raggi X, risonanza magnetica e scansioni TC. Apprendendo da una vasta raccolta di immagini mediche etichettate, queste reti possono rilevare anomalie, tumori e altre condizioni mediche con un livello di accuratezza paragonabile a quello degli esperti umani.

Il successo delle reti neurali profonde può essere attribuito alla loro capacità di apprendere automaticamente le rappresentazioni gerarchiche dei dati. Estraendo progressivamente caratteristiche a più livelli di astrazione, queste reti possono catturare schemi e relazioni complessi nei dati. Questo processo di apprendimento delle funzionalità, combinato con la disponibilità di grandi set di dati e potenti risorse computazionali, ha aperto la strada a progressi significativi in vari domini.

In conclusione, le reti neurali profonde si sono dimostrate altamente efficaci in un'ampia gamma di attività, tra cui il riconoscimento di oggetti, l'elaborazione del linguaggio naturale, il riconoscimento vocale e l'analisi di immagini mediche. La loro capacità di apprendere da grandi set di dati ed estrarre automaticamente rappresentazioni significative ha rivoluzionato molti campi. Man mano che le risorse computazionali continuano a migliorare, possiamo aspettarci risultati ancora più impressionanti e ulteriori progressi nelle capacità delle reti neurali profonde.

Lecture 5.4 — Convolutional nets for object recognition [Neural Networks for Machine Learning]
Lecture 5.4 — Convolutional nets for object recognition [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 6.1 — Panoramica della discesa del gradiente mini batch



Lezione 6.1 — Panoramica della discesa del gradiente mini batch [Reti neurali per l'apprendimento automatico]

In questo video discuteremo dell'apprendimento della discesa del gradiente stocastico per le reti neurali, concentrandoci sulla versione mini-batch, ampiamente utilizzata nelle reti neurali di grandi dimensioni. La superficie di errore di un neurone lineare forma una ciotola quadratica, dove gli assi orizzontali rappresentano i pesi e l'asse verticale rappresenta l'errore. Per le reti non lineari multistrato, la superficie di errore è più complessa ma approssimata localmente da una frazione di una ciotola quadratica.

Quando si utilizza l'apprendimento batch completo, la discesa lungo la direzione del gradiente più ripida potrebbe non portare alla destinazione desiderata. La direzione della discesa più ripida spesso corre quasi perpendicolare alla direzione desiderata, causando problemi di convergenza. Questo problema persiste nelle reti multistrato non lineari, poiché le superfici di errore tendono ad essere molto curve in alcune direzioni e meno curve in altre.

Per risolvere questo problema, viene impiegata la discesa del gradiente stocastico (SGD). Invece di calcolare il gradiente sull'intero set di dati, SGD calcola il gradiente su sottoinsiemi o mini-batch di dati. Questo approccio offre numerosi vantaggi, come un calcolo ridotto per gli aggiornamenti del peso e la possibilità di parallelizzare i calcoli del gradiente per più casi di addestramento.

L'uso di mini-batch aiuta a evitare inutili perdite di peso. È importante disporre di mini-batch rappresentativi dell'intero set di dati ed evitare quelli insoliti, come avere tutti gli esempi da una singola classe. Sebbene siano disponibili algoritmi a gradiente completo, l'apprendimento mini-batch è generalmente preferito per set di addestramento ampi e ridondanti a causa della sua efficienza computazionale.

L'algoritmo di base per l'apprendimento della discesa del gradiente mini-batch implica l'ipotesi di un tasso di apprendimento iniziale e il monitoraggio delle prestazioni della rete. Se l'errore peggiora o oscilla, il tasso di apprendimento si riduce. Se l'errore cade troppo lentamente, il tasso di apprendimento può essere aumentato. Automatizzare l'adeguamento del tasso di apprendimento sulla base di queste osservazioni è vantaggioso. Verso la fine dell'apprendimento, è spesso utile diminuire il tasso di apprendimento per appianare le fluttuazioni dei pesi causate dai gradienti mini-batch. I set di convalida vengono utilizzati per valutare quando diminuire il tasso di apprendimento e determinare quando l'errore smette di diminuire in modo coerente.

Regolando attentamente il tasso di apprendimento e adattandolo durante tutto il processo di addestramento, la discesa del gradiente in mini-batch fornisce un approccio efficace per addestrare reti neurali di grandi dimensioni su set di dati ridondanti.

Inoltre, vale la pena notare che esistono due tipi principali di algoritmi di apprendimento per le reti neurali: algoritmi full gradient e algoritmi mini-batch. Gli algoritmi a gradiente completo calcolano il gradiente utilizzando tutti i casi di addestramento, consentendo varie tecniche di ottimizzazione per accelerare l'apprendimento. Tuttavia, questi metodi sviluppati per funzioni non lineari lisce possono richiedere modifiche per funzionare in modo efficace con reti neurali multistrato.

D'altra parte, l'apprendimento in mini-batch è vantaggioso per set di addestramento altamente ridondanti e di grandi dimensioni. Sebbene i mini-batch possano dover essere relativamente grandi, offrono efficienza di calcolo. L'uso di mini-batch consente il calcolo parallelo dei gradienti per più casi di addestramento contemporaneamente, sfruttando le capacità dei processori moderni, come le unità di elaborazione grafica (GPU).

Durante tutto il processo di formazione, è importante trovare un equilibrio con il tasso di apprendimento. Gli aggiustamenti del tasso di apprendimento dovrebbero essere effettuati in base alle prestazioni della rete e al comportamento osservato dell'errore. Verso la fine dell'apprendimento, la riduzione del tasso di apprendimento può aiutare a raggiungere una serie finale di pesi che rappresenta un buon compromesso, attenuando le fluttuazioni causate dai gradienti mini-batch.

I set di convalida svolgono un ruolo cruciale nel monitoraggio dei progressi della rete. Misurando l'errore su un set di convalida separato, è possibile valutare se l'errore smette costantemente di diminuire e determinare il tempo appropriato per regolare il tasso di apprendimento. Questi esempi di convalida non vengono utilizzati per la formazione o il test finale.

L'algoritmo di apprendimento della discesa del gradiente mini-batch fornisce un approccio pratico ed efficiente per l'addestramento di reti neurali di grandi dimensioni su set di dati ridondanti. L'adeguamento accurato del tasso di apprendimento, il monitoraggio delle prestazioni della rete mediante set di convalida e l'uso di mini-batch rappresentativi contribuiscono a risultati di formazione di successo.

Lecture 6.1 — Overview of mini batch gradient descent [Neural Networks for Machine Learning]
Lecture 6.1 — Overview of mini batch gradient descent [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 6.2 — Un sacco di trucchi per la discesa del gradiente in mini batch



Lezione 6.2 — Un sacco di trucchi per la discesa del gradiente in mini batch [Reti neurali per l'apprendimento automatico]

In questo video, discuteremo diversi problemi che sorgono quando si utilizza la discesa del gradiente stocastico con mini-batch. Esistono numerosi trucchi che possono migliorare significativamente le prestazioni, spesso definiti "l'arte nera" delle reti neurali. Tratterò alcuni dei trucchi chiave in questo video.

Cominciamo con il primo problema: l'inizializzazione del peso in una rete neurale. Se due unità nascoste hanno gli stessi pesi e pregiudizi, riceveranno sempre lo stesso gradiente e non si differenzieranno mai l'una dall'altra. Per consentire loro di apprendere diversi rilevatori di funzionalità, dobbiamo inizializzarli con pesi diversi. Questo viene tipicamente fatto usando piccoli pesi casuali per rompere la simmetria. È importante notare che la dimensione dei pesi iniziali non dovrebbe essere la stessa per tutte le unità. Le unità nascoste con fan-in più grandi (connessioni in ingresso) tendono a saturarsi con pesi maggiori, quindi in questi casi sono preferiti pesi più piccoli. D'altra parte, le unità nascoste con fan-in più piccoli beneficiano di pesi maggiori. La dimensione dei pesi iniziali dovrebbe essere proporzionale alla radice quadrata del fan-in.

Un altro fattore importante è lo spostamento degli input. L'aggiunta di un valore costante a ciascun componente di input può avere un impatto significativo sulla velocità di apprendimento. Lo spostamento degli ingressi è particolarmente efficace quando si utilizza la discesa più ripida. Si consiglia di spostare ogni componente di input in modo che, in media tra i dati di addestramento, abbia un valore medio pari a zero.

Successivamente, consideriamo la superficie dell'errore e come si relaziona ai pesi e ai casi di allenamento. In alcuni casi, quando i pesi soddisfano diversi casi di allenamento, la superficie dell'errore può allungarsi, rendendo difficile l'apprendimento. Tuttavia, sottraendo un valore costante da ciascun componente di input, possiamo trasformare la superficie dell'errore in una forma circolare, che facilita l'apprendimento.

Un altro fattore da considerare è la funzione di attivazione delle unità nascoste. Le tangenti iperboliche, che vanno da -1 a 1, sono spesso preferite perché portano ad attività unitarie nascoste con un valore medio vicino allo zero. Ciò può facilitare un apprendimento più rapido nei livelli successivi. Tuttavia, le funzioni di attivazione logistica presentano vantaggi in quanto forniscono un output pari a zero per piccoli input negativi, consentendo alla rete di ignorare le fluttuazioni di tali input. Le tangenti iperboliche richiedono input più grandi per ignorare tali fluttuazioni.

Anche la scalabilità degli input è fondamentale per un apprendimento efficace. Trasformando i componenti di input in modo che abbiano una varianza unitaria nell'intero set di addestramento, con un valore tipico di uno o meno uno, possiamo migliorare la superficie dell'errore. Il ridimensionamento degli input garantisce che i cambiamenti nei pesi abbiano effetti simili su tutti i componenti di input, portando a un processo di apprendimento più equilibrato.

Per accelerare l'apprendimento in mini-batch, ci sono quattro metodi principali da considerare:

  1. Momentum: invece di modificare direttamente i pesi in base al gradiente, il momentum utilizza il gradiente per accelerare la velocità dei pesi. Questo approccio consente ai pesi di conservare le informazioni dai gradienti precedenti.

  2. Tassi di apprendimento adattivo: utilizzare un tasso di apprendimento adattivo separato per ciascun parametro e regolarlo in base a misurazioni empiriche può migliorare l'apprendimento. Se il gradiente continua a cambiare segno, il tasso di apprendimento si riduce. Se il gradiente rimane costante, il tasso di apprendimento aumenta.

  3. RMSprop: questo metodo divide il tasso di apprendimento per una media corrente delle magnitudo del gradiente recente. Gestisce efficacemente un'ampia gamma di gradienti ridimensionandoli in modo appropriato.

  4. Apprendimento batch completo: questo approccio prevede l'utilizzo dell'intero set di formazione per l'apprendimento e l'utilizzo di tecniche di ottimizzazione avanzate che considerano le informazioni sulla curvatura. Sebbene possa essere efficace, potrebbe richiedere un ulteriore adattamento per lavorare con mini-batch.

Queste sono solo alcune delle tecniche che possono migliorare significativamente le prestazioni della discesa del gradiente stocastico con mini-batch.

In sintesi, abbiamo discusso diverse questioni e tecniche importanti relative alla discesa del gradiente stocastico con mini-batch nelle reti neurali. Queste tecniche fungono da "arte nera" delle reti neurali e possono migliorare notevolmente le loro prestazioni. Ricapitoliamo i punti principali:

  1. Inizializzazione del peso: per consentire alle unità nascoste di apprendere diversi rilevatori di caratteristiche, è fondamentale inizializzare i loro pesi in modo diverso. Usando piccoli pesi casuali che rompono la simmetria, possiamo garantire che ogni unità inizi distinta l'una dall'altra. La dimensione dei pesi iniziali dovrebbe essere proporzionale alla radice quadrata del fan-in, il che aiuta a raggiungere un buon punto di partenza.

  2. Spostamento degli input: lo spostamento degli input aggiungendo una costante a ciascun componente può avere un impatto significativo sulla velocità di apprendimento. È vantaggioso spostare ciascun componente in modo che, in media, l'input abbia un valore pari a zero. Ciò può essere ottenuto sottraendo la media dei valori di input tra i dati di addestramento.

  3. Ridimensionamento degli input: il ridimensionamento dei valori di input è un'altra tecnica utile nella discesa del gradiente stocastico. Trasformare gli input in modo tale che ogni componente abbia una varianza unitaria sull'intero set di addestramento semplifica il processo di apprendimento. Il ridimensionamento degli input aiuta a creare una superficie di errore circolare, che rende la discesa del gradiente più efficiente.

  4. Decorrelazione dei componenti di input: la decorrelazione dei componenti dei vettori di input migliora l'apprendimento rimuovendo le correlazioni tra le caratteristiche. L'analisi delle componenti principali è un metodo prezioso per raggiungere questo obiettivo. Rimuovendo i componenti con autovalori piccoli e scalando i componenti rimanenti, possiamo ottenere una superficie di errore circolare, facilitando la discesa del gradiente.

  5. Problemi comuni: alcuni problemi comuni riscontrati nell'addestramento della rete neurale includono elevati tassi di apprendimento iniziale che portano al blocco delle unità nascoste, apprendimento lento quando si inizia con piccoli pesi e riduzione prematura del tasso di apprendimento. È importante trovare un equilibrio nella regolazione del tasso di apprendimento per garantire un apprendimento ottimale.

  6. Accelerazione dell'apprendimento in mini-batch: esistono quattro metodi principali per accelerare l'apprendimento in mini-batch progettati esplicitamente per un apprendimento più rapido: momentum, tassi di apprendimento adattivi, RMSprop e apprendimento in batch completo con informazioni sulla curvatura. Queste tecniche sfruttano vari meccanismi, come lo slancio, gli adattamenti adattativi e le grandezze del gradiente, per accelerare il processo di apprendimento.

Mentre queste tecniche migliorano significativamente le prestazioni della discesa del gradiente stocastico con mini-batch nelle reti neurali, è essenziale considerare il problema specifico a portata di mano e sperimentare approcci diversi per ottenere i migliori risultati. Il campo dell'ottimizzazione offre ulteriori metodi avanzati che vale la pena esplorare per un apprendimento ancora più efficiente nelle reti neurali.

Ciò conclude i punti principali trattati in questo video riguardanti le sfide e le tecniche relative alla discesa del gradiente stocastico con mini-batch nelle reti neurali.

Lecture 6.2 — A bag of tricks for mini batch gradient descent [Neural Networks for Machine Learning]
Lecture 6.2 — A bag of tricks for mini batch gradient descent [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...
Motivazione: