Apprendimento automatico e Reti Neurali - pagina 33

 

CS 198-126: Lezione 3 - Introduzione al Deep Learning, Parte 2



CS 198-126: Lezione 3 - Introduzione al Deep Learning, Parte 2

In questa sezione della lezione viene spiegato il concetto di backpropagation, che è un modo più rapido per ottenere tutte le derivate parziali richieste per l'algoritmo di discesa del gradiente senza eseguire operazioni ridondanti. Il docente discute anche su come migliorare la discesa del gradiente vanilla per l'ottimizzazione del deep learning e introduce momentum, RMSprop e Adam come metodi di ottimizzazione. Vengono discussi anche l'importanza di tenere traccia della cronologia di addestramento di un modello, l'uso della normalizzazione batch e l'insieme come tecnica per migliorare le prestazioni del modello, nonché le tecniche comunemente utilizzate nell'apprendimento profondo per ridurre l'overfitting come l'abbandono e il salto delle connessioni. Infine, il docente tocca brevemente la facilità d'uso di PyTorch e apre la parola alle domande.

  • 00:00:00 In questa sezione della conferenza, il relatore fa alcuni rapidi annunci sulla scadenza imminente per l'assegnazione del codice e il primo quiz. Il primo compito è un'opportunità per gli studenti di apprendere gli strumenti necessari per il resto del corso e il quiz serve come verifica della comprensione. Il relatore delinea quindi gli argomenti che saranno trattati durante la lezione, tra cui la retropropagazione e i moderni strumenti di deep learning, e assicura agli studenti che se non comprendono i dettagli matematici della retropropagazione, va bene purché comprendano l'idea di alto livello . La seconda metà della lezione è importante e copre gli strumenti che fanno funzionare bene il moderno deep learning.

  • 00:05:00 In questa sezione della lezione viene discusso il concetto di creazione di un grafico computazionale per le funzioni e l'utilizzo della regola della catena per calcolare le derivate parziali. Il grafico computazionale consente un calcolo efficiente delle derivate rispetto ai singoli nodi. Questo concetto viene quindi applicato alla backpropagation in un esempio di rete neurale giocattolo in cui la regola della catena viene utilizzata per calcolare le derivate parziali della perdita rispetto a ciascun parametro di peso e bias. Moltiplicando tutte le derivate parziali lungo il percorso da ciascun parametro al nodo di perdita, è possibile evitare calcoli ridondanti.

  • 00:10:00 In questa sezione viene spiegato il concetto di backpropagation, che è un modo più rapido per ottenere tutte le derivate parziali necessarie per l'algoritmo di discesa del gradiente senza eseguire operazioni ridondanti. Man mano che la profondità della rete aumenta, molti calcoli diventano ripetuti e ridondanti, rendendoli inadatti all'addestramento di reti profonde. La backpropagation funziona memorizzando nella cache i valori durante il passaggio in avanti e riutilizzandoli durante il passaggio all'indietro durante il calcolo delle derivate parziali. Tuttavia, poiché le derivate parziali ora coinvolgono matrici e matrici, la memorizzazione nella cache diventa più critica perché consente di risparmiare operazioni di moltiplicazione, che in genere sono più costose. Il video spiega che possiamo utilizzare strumenti come pyTorch per memorizzare automaticamente nella cache i valori richiesti.

  • 00:15:00 In questa sezione, il docente discute su come migliorare la discesa del gradiente vanilla per l'ottimizzazione del deep learning. Un problema con la discesa del gradiente vanilla è che fatica nei minimi locali o nei punti piatti in cui il gradiente è zero, impedendo all'algoritmo di trovare soluzioni migliori. Per risolvere questo problema, il docente introduce il concetto di slancio, ispirato a una palla che rotola giù da una collina. Prendendo la media ponderata dei gradienti passati e aggiungendola al gradiente attuale, lo slancio può aiutare a superare piccoli minimi locali e punti piatti. Sebbene tecnicamente non sia una vera discesa del gradiente, lo slancio può consentire all'algoritmo di superare questi ostacoli e, si spera, trovare soluzioni migliori. Il docente discute anche su come ridimensionare la media ponderata dei gradienti passati per non ridurre troppo il gradiente attuale.

  • 00:20:00 In questa sezione viene discusso il concetto di quantità di moto nella discesa del gradiente. La conferenza spiega che i beta vengono utilizzati per controllare le dimensioni del passo in modo tale che le dimensioni del passo non diventino troppo grandi e incoerenti. La conferenza spiega lo slancio come un modo per mantenere le stesse dimensioni del gradino quando si rotola in discesa, ma anche per essere utilizzato per continuare a muoversi nella direzione storicamente indicata dal gradiente. La lezione introduce quindi il metodo di ottimizzazione dell'elica RMS, che memorizza una media pesata dei componenti al quadrato dei gradienti precedenti.

  • 00:25:00 In questa sezione, l'istruttore spiega il concetto di RMSprop, che è una forma di discesa del gradiente, e come funziona rispetto ai metodi tradizionali. Spiega che RMSprop divide i gradienti per la radice quadrata delle medie mobili quadrate dei gradienti, cosa che dimostra utilizzando esempi di gradienti piccoli e grandi. In questo modo, l'algoritmo è in grado di regolare in modo adattivo il tasso di apprendimento, noto come tasso di apprendimento adattivo. Alla fine conclude che Adam è la migliore forma di discesa del gradiente in quanto presenta i vantaggi sia di RMSprop che dei metodi tradizionali.

  • 00:30:00 In questa sezione, il docente presenta Adam, una combinazione di RMSProp e momentum, come metodo di ottimizzazione preferito per la discesa del gradiente nei modelli di deep learning. Adam consente i vantaggi di essere in grado di evitare i minimi locali con momentum tenendo conto dei problemi con i punti piatti che richiedono un potenziamento attraverso di essi. Non cambia la direzione del gradiente ma solo il suo ridimensionamento. La conferenza suggerisce il checkpoint del modello come un modo per combattere qualsiasi comportamento irregolare che potrebbe sorgere con Adam o RMSProp dopo che hanno raggiunto un minimo locale. Possono essere utilizzati anche metodi di ottimizzazione di secondo ordine, ma richiedono più potenza di calcolo e sono meno comuni.

  • 00:35:00 In questa sezione, l'istruttore spiega l'importanza di tenere traccia della cronologia di addestramento di un modello e del suo rendimento su nuovi dati che non ha mai visto prima per determinare efficacemente quale checkpoint è il migliore. Viene anche discussa una tecnica di normalizzazione chiamata normalizzazione batch, che comporta la sottrazione della media e la divisione per la deviazione standard per ogni singola attivazione su una rete neurale e quindi la possibilità per la rete di ridimensionare quei valori come meglio crede moltiplicando ogni peso per un valore gamma e aggiungendo il pregiudizio. Questa tecnica aiuta a normalizzare i dati e crea superfici perse dall'aspetto regolare che sono molto più facili da inviare con la discesa del gradiente, rendendo la vita molto più semplice.

  • 00:40:00 In questa sezione, apprendiamo la normalizzazione batch, che è un metodo utilizzato per normalizzare le attivazioni dei neuroni di una rete neurale calcolando la media e la deviazione standard degli output da un certo livello. Questa normalizzazione fa sì che il comportamento predefinito della rete neurale abbia attivazioni normalizzate, rendendole ben educate. Sebbene questo metodo non aggiunga espressività al modello, consente gradienti migliori e un intervallo di valori più normalizzato come input in tutti i livelli della rete. Inoltre, apprendiamo l'ensemble come tecnica utilizzata per migliorare le prestazioni del modello addestrando più modelli e calcolando la media delle loro previsioni.

  • 00:45:00 In questa sezione, la conferenza discute due tecniche comunemente utilizzate nel deep learning per aiutare a ridurre l'overfitting: dropout e skip connection. Il dropout comporta la rimozione casuale di un certo numero di neuroni prima dell'allenamento per costringere ciascun neurone a imparare a utilizzare tutte le funzionalità che lo hanno preceduto, costringendolo ad apprendere lo stesso output degli altri neuroni. Al contrario, le connessioni saltate consentono l'apprendimento di una funzione di identità che aiuta a propagare le informazioni senza aggiungere rumore o confusione; comporta l'apprendimento di zeri per tutti i pesi, che banalmente consente di passare buone informazioni all'ultimo strato per classificarle correttamente. Entrambe le tecniche, insieme ad altre discusse in questa conferenza, aiutano ad aumentare le prestazioni diminuendo l'overfitting e consentendo reti arbitrariamente profonde.

  • 00:50:00 In questa sezione, il docente spiega come saltare le connessioni può essere uno strumento utile durante la costruzione di reti neurali. Queste connessioni possono essere aggiunte per aumentare le prestazioni, migliorando la tua rete. Il docente non ha avuto il tempo di discutere a fondo di PyTorch, ma è spiegato nei compiti. Spiegano che PyTorch può essere davvero facile da usare se sai già come usare numpy. Possono creare funzioni che accettano un valore e lo restituiscono, rendendo possibile il calcolo del valore del gradiente su un determinato input. Il relatore conclude aprendo la parola alle domande.
 

CS 198-126: Lezione 4 - Introduzione al Pretraining e Augmentations



CS 198-126: Lezione 4 - Introduzione al Pretraining e Augmentations

In questa lezione, il relatore spiega l'evoluzione dell'estrazione di funzionalità nell'apprendimento automatico, i vantaggi del deep learning e come utilizzare il transfer learning per migliorare l'accuratezza e la velocità dei modelli. Discutono anche del concetto di congelamento e messa a punto dei livelli nelle reti neurali e dell'importanza degli incorporamenti nel ridurre la dimensionalità delle variabili categoriali. La lezione introduce l'apprendimento auto-supervisionato e le sue diverse attività, tra cui il puzzle, la rotazione e le attività di previsione delle parole mascherate, che possono essere utilizzate per preaddestrare i modelli e trasferire le rappresentazioni apprese alle attività a valle. Infine, viene discusso il rinnovato interesse per l'apprendimento auto-supervisionato nella visione artificiale e la lezione incoraggia gli studenti a completare i compiti sul taccuino Crush alto.

  • 00:05:00 In questa sezione della conferenza, l'autore discute l'apprendimento della rappresentazione e l'apprendimento superficiale. Con l'apprendimento superficiale, la pipeline di machine learning inizia con un input X, le funzionalità vengono estratte da esso utilizzando un estrattore di funzionalità e quindi le funzionalità estratte vengono passate a un algoritmo di machine learning per ottenere un output Y. Il facilitatore spiega che l'estrazione delle funzionalità dipende sui dati e può essere
    semplice per dati tabulari, ma complesso per dati come testo, audio o immagini. Tuttavia, per le immagini, sono disponibili estrattori di funzionalità specializzati nella visione artificiale classica.

  • 00:10:00 In questa sezione, il docente spiega il concetto di estrazione di funzionalità e come si è evoluto nell'apprendimento automatico. Nell'apprendimento automatico classico, per creare modelli viene utilizzato un estrattore di caratteristiche programmato a mano come Hog, che cattura le informazioni sui bordi in un'immagine. Tuttavia, questo processo è impegnativo poiché gli estrattori di funzionalità variano per attività diverse. Il deep learning fornisce un processo end-to-end apprendendo sia l'estrazione delle funzionalità che la previsione dell'output. Il docente spiega che questo processo consente l'apprendimento di rappresentazioni astratte dei dati di input, che vengono passati attraverso strati di estrattori di caratteristiche apprese in una rete neurale, risultando in rappresentazioni gerarchiche. La conferenza fornisce un esempio di come le reti neurali profonde apprendono rappresentazioni di immagini di automobili.

  • 00:15:00 In questa sezione, il relatore spiega come la profondità nelle reti neurali aiuta a perfezionare le rappresentazioni. I primi livelli della rete rilevano dettagli di basso livello come i bordi, mentre i livelli successivi si concentrano su caratteristiche più concrete come porte o finestre in un'immagine. Gli strati finali stanno cercando di determinare se l'immagine di input è effettivamente ciò che il modello ha imparato a riconoscere, creando un modello mentale astratto. I relatori discutono quindi del trasferimento dell'apprendimento come un modo per sfruttare i modelli pre-addestrati ed evitare di dover addestrare i modelli da zero, che può essere costoso in termini di tempo, elaborazione e dati.

  • 00:20:00 In questa sezione, il relatore discute il concetto di stratificazione nelle reti neurali e come il pre-training e il trasferimento dell'apprendimento possono essere utilizzati per migliorare l'accuratezza e la velocità dei modelli. Il relatore spiega come i livelli precedenti catturino caratteristiche generali come forme e motivi, mentre i livelli successivi catturino caratteristiche più astratte come oggetti e umani. Viene discusso anche il concetto di congelamento, in cui determinati livelli vengono conservati e utilizzati nei modelli successivi, come un modo per personalizzare i modelli per attività specifiche. La tecnica di congelamento può accelerare l'addestramento del modello e migliorare la precisione, ma è necessario prestare attenzione per garantire che gli strati siano congelati al livello appropriato.

  • 00:25:00 In questa sezione, l'istruttore discute l'apprendimento del trasferimento nelle reti neurali, in particolare la tecnica di messa a punto in cui il modello pre-addestrato viene addestrato ulteriormente sui livelli di output e sui livelli non congelati. Sottolineano l'importanza di considerare la dimensione e la somiglianza del nuovo set di dati con il set di dati originale quando si decide se bloccare o mettere a punto il modello pre-addestrato. Inoltre, spiegano l'importanza degli incorporamenti nelle reti neurali e come possono ridurre la dimensionalità delle variabili categoriali, rendendole più facili da rappresentare in uno spazio di trasformazione. L'uso degli incorporamenti è illustrato attraverso un esempio che coinvolge la mappatura dei generi di libri in uno spazio vettoriale di dimensioni inferiori.

  • 00:30:00 In questa sezione della conferenza, il professore parla di dati ad alta dimensione e delle difficoltà che sorgono quando si cerca di rappresentarli. Il professore introduce il concetto di spazio latente di dimensione inferiore, che comporta la codifica di tutte le informazioni importanti che rappresentano i dati di dimensione elevata in uno spazio di dimensione inferiore. L'obiettivo è acquisire queste informazioni attraverso qualcosa chiamato spazio latente di funzionalità e, in molti casi, può essere ottenuto tramite incorporamenti. Il professore fornisce un esempio di come una struttura unidimensionale può essere rappresentata utilizzando solo una variabile invece di tre variabili in uno spazio 3D in modo che i dati non siano sparsi in modo sparso in uno spazio ad alta dimensione. Infine, il professore spiega come apprendere gli incorporamenti addestrando un modello per classificare le immagini nel set di dati MNIST utilizzando la funzione di perdita softmax e prendere l'output di alcuni livelli nel modello come rappresentazione dell'immagine.

  • 00:35:00 In questa sezione, il relatore discute i vantaggi delle reti pre-addestrate e del trasferimento dell'apprendimento, che possono far risparmiare tempo e potenza di calcolo ottenendo risultati migliori. Le reti pre-addestrate possono essere addestrate su set di dati più grandi, il che può portare a rappresentazioni migliori. Il trasferimento dell'apprendimento consente l'applicazione della conoscenza appresa da una rete pre-addestrata a un'altra attività, rendendola particolarmente utile nell'elaborazione del linguaggio naturale. Viene quindi introdotta la pre-formazione autosupervisionata, che consente di apprendere senza supervisione dalle etichette, imparando dai dati grezzi.

  • 00:40:00 In questa sezione, il docente discute l'apprendimento non supervisionato, che è un tipo di apprendimento in cui non vengono fornite etichette, ma il modello apprende comunque schemi e relazioni all'interno del set di dati. Esempi di apprendimento non supervisionato includono l'analisi delle componenti principali (PCA) e il clustering. Il docente parla quindi dell'apprendimento auto-supervisionato, che comporta la fornitura di supervisione dai dati stessi, piuttosto che da etichette esterne. La tecnica prevede la previsione di parti nascoste o proprietà dei dati dalle parti osservate. L'apprendimento auto-supervisionato è vantaggioso in situazioni in cui i dati etichettati sono scarsi o costosi da raccogliere.

  • 00:45:00 In questa sezione della conferenza, il relatore discute l'apprendimento auto-supervisionato e le diverse attività coinvolte come l'attività pretesto e l'attività a valle. Queste attività possono essere utilizzate in vari domini come visione artificiale, PNL e RL. Il relatore fornisce quindi esempi di compiti di apprendimento auto-supervisionati come il compito del puzzle, in cui un'immagine è divisa in nove patch, mescolata e al modello viene chiesto di prevedere l'ordine originale. Un'altra attività è l'attività di rotazione, in cui un'immagine viene ruotata di un certo angolo e al modello viene chiesto di prevedere l'angolo di rotazione. Queste attività possono essere utilizzate per preaddestrare i modelli e trasferire le rappresentazioni apprese ad attività a valle come la classificazione delle immagini e il rilevamento degli oggetti.

  • 00:50:00 In questa sezione della lezione viene introdotto il concetto di modelli di pre-formazione che utilizzano l'apprendimento auto-supervisionato (SSL). Un esempio di SSL nella visione artificiale è l'addestramento di un modello per prevedere l'angolo di rotazione di un'immagine e concentrarsi sull'orientamento, la posizione, la posa e il tipo di oggetto anziché sui dettagli di basso livello. Questa idea non è limitata al CV poiché SSL può essere applicato anche alla PNL e all'audio, come prevedere una o più parole da frasi. Un famoso modello in PNL chiamato BERT utilizza un modello Transformer per prevedere le parole mascherate da due frasi contemporaneamente e apprende un'incorporamento a livello di parola ea livello di frase. BERT è stato un enorme successo in PNL.

  • 00:55:00 In questa sezione della conferenza, il relatore discute il rinnovato interesse per l'apprendimento auto-supervisionato (SSL) nella visione artificiale (CV) dopo il successo di BERT nell'elaborazione del linguaggio naturale (NLP). Si dice che l'attuale stato dell'arte in CV sia simile a BERT. La conferenza fornisce una panoramica dell'apprendimento della rappresentazione, dell'apprendimento del trasferimento e dell'SSL e introduce diversi concetti e metodologie. Sebbene questa lezione non abbia compiti a casa, ci sono compiti a casa per l'intero cluster sul taccuino Crush alto che è dovuto martedì prossimo e una futura lezione su Advanced SSL per CV avrà un compito a casa. È possibile accedere al mazzo di diapositive sul sito Web per la revisione.
 

CS 198-126: Lezione 5 - Introduzione alla Computer Vision



CS 198-126: Lezione 5 - Introduzione alla Computer Vision

Questa conferenza sulla visione artificiale copre vari argomenti, tra cui la storia della visione artificiale e il suo sviluppo nel corso degli anni. L'istruttore spiega anche il deep learning e come migliora i classici metodi di visione artificiale. La conferenza approfondisce il concetto di convoluzioni e il modo in cui vengono utilizzate come estrattori di caratteristiche nella visione artificiale, portando alla creazione di reti neurali convoluzionali (CNN). Inoltre, la conferenza discute il ruolo dei campi ricettivi e introduce i livelli di raggruppamento come metodo per aumentare il campo ricettivo delle CNN. Nel complesso, la conferenza fornisce una panoramica della visione artificiale come campo e delle tecniche utilizzate per estrarre informazioni dalle immagini. Nella seconda parte della lezione vengono discusse varie tecniche per preservare la dimensione di un'immagine durante le convoluzioni, incluso il padding e lo stesso padding. Viene trattato anche il concetto di falcata negli strati convoluzionali, dimostrando come può imitare l'effetto di uno strato di raggruppamento. Viene spiegata l'anatomia di una CNN e i suoi iperparametri, tra cui la dimensione del kernel, il passo, l'imbottitura e gli strati di raggruppamento, con enfasi su come uno strato convoluzionale agisce come un estrattore di caratteristiche che passa blocchi di caratteristiche a bassa dimensione a un livello completamente connesso rete per la classificazione. Le lezioni trattano anche l'architettura della rete LeNet per la classificazione delle cifre scritte a mano e l'importanza di normalizzare i dati delle immagini prima di farli passare attraverso una rete neurale. Infine, l'aumento dei dati viene discusso come tecnica per la creazione di ulteriori dati di addestramento e viene sottolineata l'importanza del checkpoint del modello durante l'addestramento.

  • 00:00:00 In questa sezione, l'istruttore introduce la visione artificiale come un campo dell'IA che si occupa dell'estrazione di informazioni da un'immagine a livello semantico. Descrivono la classificazione, il rilevamento e la segmentazione come attività che un modello di machine learning può eseguire. Per consentire a una macchina di comprendere un'immagine ed eseguire queste attività, deve avere una comprensione di livello superiore dei contenuti dell'immagine, quindi i modelli sono progettati per estrarre caratteristiche come i bordi per classificare le immagini. L'istruttore spiega che il campo della visione artificiale ha le sue radici nella scienza cognitiva e nella psicologia, con sviluppi in estrattori di caratteristiche come il maiale provenienti da un esperimento eseguito sui gatti nel 1959.

  • 00:05:00 In questa sezione della lezione, l'istruttore discute di come il deep learning abbia sostituito i classici metodi di visione artificiale, in cui gli estrattori di funzionalità erano programmati manualmente. Il deep learning consente ai modelli di apprendere non solo le mappature dalle funzionalità agli output, ma anche gli stessi estrattori di funzionalità, e questa svolta è arrivata nel 2012 con la rete neurale di Alex Krajevski. L'istruttore parla della sfida del riconoscimento visivo di ImageNet e di come AlexNet abbia ridotto drasticamente il tasso di errore, diventando un punto di svolta per il deep learning. La conferenza prosegue poi discutendo come le immagini sono rappresentate digitalmente come matrici e l'uso dei valori di luminosità per rappresentare le immagini in scala di grigi.

  • 00:10:00 In questa sezione della lezione, l'istruttore discute il concetto di dimensioni e canali di colore nelle immagini. Ogni pixel colorato può essere scomposto in tre diversi valori, il che significa che un'immagine RGB può essere rappresentata da tre matrici per ogni componente. Queste matrici possono quindi essere impilate l'una sull'altra per formare una matrice 3D chiamata tensore. L'istruttore osserva che questo è un concetto importante per comprendere le reti neurali convoluzionali (CNN) perché le reti neurali regolari o i percettroni multistrato non sono utili per l'elaborazione di immagini di grandi dimensioni a causa della necessità di convertire il tensore 3D in un vettore, risultando in un enorme numero di elementi.

  • 00:15:00 In questa sezione, il relatore discute il numero di parametri per uno strato completamente connesso nella visione artificiale. Lo strato accetta un input di 120.000 dimensioni e restituisce un vettore a 10 dimensioni, il che significa che la matrice dei pesi deve avere dimensioni di 10 per 120.000, risultando in 1,2 milioni di pesi e 10 parametri dal vettore di polarizzazione. Questo numero di parametri renderebbe la rete troppo grande e difficile da addestrare, in particolare se si desidera un output di dimensione superiore. Inoltre, trattare ogni pixel come una caratteristica separata non è ortodosso nella classificazione delle immagini, poiché gli esseri umani tendono a scomporre le immagini in parti diverse e utilizzare queste informazioni per costruire un modello mentale. L'oratore suggerisce di guardare le regioni locali dell'immagine anziché i singoli pixel per dare più senso ai dati.

  • 00:20:00 In questa sezione, il docente discute l'importanza di guardare i pixel vicini in un'immagine per raccogliere informazioni e come ciò rappresenti una sfida per le reti neurali, che in genere trattano ogni pixel separatamente. Introduce il concetto di regioni locali, che è rilevante per la visione artificiale e riguarda la struttura di un'immagine. La conferenza parla anche della necessità di estrarre rappresentazioni gerarchiche da un input e di come queste rappresentazioni dipendano l'una dall'altra, consentendo al modello di apprendere concetti astratti come l'aspetto di una faccia. Infine, la conferenza spiega il concetto di equivalenza traslazionale, in cui le rappresentazioni di un'immagine dovrebbero essere tradotte insieme ai suoi pixel per mantenere la coerenza.

  • 00:25:00 In questa sezione, il concetto di invarianza traslazionale e l'elaborazione della regione locale sono discussi nella visione artificiale. L'architettura di rete tradizionale non può soddisfare questi requisiti, portando i ricercatori a sviluppare invece reti neurali convoluzionali (CNN). L'operazione di convoluzione coinvolta nelle CNN viene spiegata utilizzando un filtro di peso che può scorrere su un'immagine e calcolare i prodotti punto per creare nuovi output. Viene inoltre introdotta la tecnica della condivisione del peso, in cui ogni patch viene fatta passare attraverso uno strato con gli stessi pesi e pregiudizi per produrre la stessa rappresentazione, rendendo le CNN in grado di soddisfare i criteri stabiliti per la visione artificiale.

  • 00:30:00 In questa sezione della lezione, il relatore spiega il processo delle convoluzioni, che prevede di prendere un prodotto elemento-saggio di un filtro su una patch di input e sommare i risultati. Questo processo consente agli algoritmi di visione artificiale di concentrarsi su singole patch dell'immagine di input anziché sull'intera immagine e utilizzare lo stesso filtro per ogni patch, condividendo i pesi. Progettando strategicamente i filtri, gli algoritmi possono estrarre diversi tipi di informazioni, come il rilevamento dei bordi. L'altoparlante fornisce un esempio di filtro progettato per rilevare i bordi verticali evidenziando le attivazioni alte lungo il centro dell'uscita contorta, con le attivazioni basse sui bordi.

  • 00:35:00 In questa sezione della lezione, l'istruttore spiega il concetto di convoluzioni nella visione artificiale e come vengono utilizzate come estrattori di caratteristiche. Le reti neurali convoluzionali (CNN) utilizzano filtri in grado di estrarre diverse caratteristiche da un'immagine e questi filtri possono essere appresi attraverso il processo di deep learning. Utilizzando più filtri, le CNN possono estrarre diversi tipi di funzionalità da un'immagine di input e utilizzare le informazioni su tutte. L'istruttore discute anche come generalizzare il processo di convoluzione a un'immagine di input con più canali e l'output di questo processo è chiamato mappa di attivazione, che rappresenta l'attivazione di diverse funzionalità.

  • 00:40:00 In questa sezione, il relatore discute il concetto di rappresentazione delle immagini in un formato RGB e come la mappa di attivazione può avere una struttura 3D. Il processo prevede l'estrazione di diverse caratteristiche e la loro convoluzione per ottenere un output 3D. Questa operazione di convoluzione è generale e può essere applicata a qualsiasi input 3D, che consente di impilare strati convoluzionali uno sopra l'altro, portando a reti neurali profonde. Inoltre, il relatore entra nei dettagli di implementazione riguardanti il concetto di campo ricettivo, che non è limitato alle sole reti neurali convoluzionali.

  • 00:45:00 In questa sezione viene discusso il concetto di campi recettivi nelle mappe di attivazione. Il campo ricettivo si riferisce alla regione dell'input che influenza ogni elemento di una mappa di attivazione. Questa sezione spiega come funzionano i campi ricettivi e in che modo l'aumento delle dimensioni del campo ricettivo può influire sulle prestazioni della rete. Si noti inoltre che i campi recettivi possono essere influenzati da diversi filtri convoluzionali e che avere un campo recettivo eccessivamente grande o piccolo può portare alla mancanza di informazioni importanti nell'input.

  • 00:50:00 campo recettivo, in questa sezione della lezione, il professore spiega come la dimensione del campo recettivo influisce sulla capacità di una rete neurale convoluzionale (CNN) di classificare un'immagine. Avere un piccolo campo ricettivo può portare la rete a non essere in grado di elaborare informazioni sufficienti per l'attività di classificazione delle immagini, mentre un ampio campo ricettivo può portare a un overfitting. La conferenza tocca anche l'importanza di introdurre non linearità attraverso l'uso di funzioni di attivazione in una CNN. Il professore spiega che mentre due diverse convoluzioni possono avere lo stesso campo ricettivo, i loro output non saranno gli stessi a causa dell'introduzione di non linearità attraverso le funzioni di attivazione.

  • 00:55:00 In questa sezione, il docente introduce i livelli di pooling come metodo per aumentare il campo ricettivo delle reti neurali convoluzionali senza aggiungere troppi livelli che potrebbero rendere il modello troppo grande. I livelli di raggruppamento implicano l'osservazione di regioni quadrate di input e l'applicazione di operazioni massime o medie. Ad esempio, un raggruppamento massimo due per due consente al modello di scegliere un solo valore da ciascun blocco di quattro pixel, riducendo così le dimensioni dell'input di due. Il docente spiega anche come il max pooling preservi informazioni cruciali da un'area locale, rendendolo comune nel ridurre le dimensioni spaziali dell'attivazione.

  • 01:00:00 In questa sezione, il relatore discute diverse tecniche per preservare l'altezza e la larghezza di un'immagine durante le convoluzioni, incluso il processo di riempimento e lo stesso riempimento. Lo stesso riempimento è quando si aumenta artificialmente la dimensione dell'input circondandolo con zeri o altre costanti per mantenere le dimensioni spaziali della mappa di attivazione. Questa è una preferenza nella comunità del deep learning, ma non ci sono prove empiriche che porti a prestazioni migliori rispetto al padding regolare. Inoltre, il relatore discute il concetto di falcata nelle convoluzioni e come può avere lo stesso effetto di uno strato di raggruppamento.

  • 01:05:00 In questa sezione, il docente discute l'uso di stride in strati convoluzionali che possono fungere da approssimazione a uno strato di raggruppamento nella visione artificiale. Spiega che l'uso di un passo più grande di uno è simile alla combinazione di strati di convoluzione e raggruppamento, ma non fornisce alcun vantaggio particolare nel farlo. Presenta anche una formula per determinare le dimensioni dell'attivazione dell'output, che dipendono da fattori quali le dimensioni dell'input originale, la dimensione del filtro, la dimensione del padding e i passi. Il docente spiega quindi come è possibile eseguire la retropropagazione dei gradienti attraverso strati convoluzionali, sottolineando che PyTorch semplifica la definizione di strati convoluzionali utilizzando più parametri.

  • 01:10:00 In questa sezione, il docente discute gli iperparametri degli strati convoluzionali e come costituiscono l'anatomia di una CNN. Questi iperparametri includono la dimensione del kernel, il passo, il riempimento e i livelli di raggruppamento. Il docente spiega che uno strato convoluzionale può essere visto come un estrattore di caratteristiche che converte l'input ad alta dimensione in blocchi di caratteristiche a bassa dimensione che possono essere passati in una rete completamente connessa per un'attività di classificazione. L'output dello strato convoluzionale alla fine è un blocco di caratteristiche a bassa dimensione, che può essere passato all'MLP all'interno del riquadro rosso, che è il classificatore. Infine, il docente spiega che esistono diversi tipi di livelli di pooling, ma la norma nella comunità del Deep Learning è utilizzare il max-pooling anziché il pooling medio.

  • 01:15:00 In questa sezione, il video spiega la struttura di una rete neurale convoluzionale (CNN) utilizzando un esempio reale. La rete, chiamata LeNet, è stata sviluppata da Jan Lacun per classificare le cifre scritte a mano. Il video spiega che la rete LeNet prende un input e lo trasforma in mappe caratteristiche, estrae quelle mappe in dimensioni più piccole, applica un'altra convoluzione e raggruppamento finché non ottiene una rappresentazione più piccola dell'input, prima di passarlo attraverso livelli completamente connessi per ottenere un output che rappresenta una delle dieci cifre possibili. Il video prosegue spiegando le scelte di progettazione per le architetture CNN, come stacking convolution, ReLU e livelli di pooling, e l'uso di livelli di normalizzazione batch per rendere l'addestramento più stabile. Infine, il video discute alcuni dei set di dati comunemente usati nella visione artificiale, come il set di dati di classificazione delle cifre scritte a mano MNIST e il set di dati CIFAR-10.

  • 01:20:00 In questa sezione della lezione, l'istruttore discute diversi set di dati di visione artificiale popolari, tra cui MNIST, CIFAR-10 e ImageNet. Il set di dati ImageNet, in particolare, è un set di dati di un milione di immagini che è stato ampiamente utilizzato come punto di riferimento per la valutazione degli algoritmi di visione artificiale. L'istruttore sottolinea inoltre l'importanza di normalizzare i dati delle immagini prima di passarli in una rete neurale e la sfida della raccolta e dell'etichettatura dei dati, che richiede un'attenta considerazione per garantire che i dati provengano da una distribuzione simile. Inoltre, più dati possono aiutare a prevenire l'overfitting, ma la raccolta di set di dati di grandi dimensioni può essere costosa e richiedere molto tempo.

  • 01:25:00 In questa sezione, la conferenza copre l'argomento dell'aumento dei dati in cui è possibile creare artificialmente più dati da una singola immagine apportando lievi modifiche alla luminosità, al contrasto, al colore, ritagliando, capovolgendo o ruotando l'immagine e assegnando loro la stessa etichetta per creare nuovi set di dati di addestramento. Questo metodo è un modo molto economico e semplice per creare nuovi dati da set di dati preesistenti. Inoltre, la conferenza sottolinea anche l'importanza del checkpoint del modello durante l'addestramento delle reti neurali di convoluzione poiché il tempo di addestramento richiede in genere da ore a giorni o addirittura settimane e la perdita di progressi a causa di un'interruzione improvvisa come un arresto anomalo della macchina o un arresto accidentale può essere costosa. È essenziale archiviare istantanee della velocità del modello in diversi punti del processo di addestramento per continuare dall'ultima istantanea se l'addestramento viene interrotto.
 

CS 198-126: Lezione 6 - Architetture avanzate di Computer Vision



CS 198-126: Lezione 6 - Architetture avanzate di Computer Vision

Questa conferenza sulle architetture avanzate di visione artificiale si concentra sulle reti neurali convoluzionali (CNN) e sulle loro varie tecniche. Il docente spiega l'architettura di AlexNet e VGG prima di approfondire tecniche avanzate come i residui per mantenere i valori residui all'indietro per una maggiore precisione e architetture più semplici. Vengono discussi l'uso di colli di bottiglia e convoluzioni uno a uno, nonché l'importanza di poter apprendere l'identità nelle architetture di visione artificiale. La conferenza copre anche le questioni relative ai gradienti in via di estinzione nelle reti neurali e come può essere alleviato con la normalizzazione batch e le reti residue. Tecniche come il pooling medio globale e la convoluzione separabile in profondità vengono spiegate in modo approfondito, seguite da una discussione sull'architettura della rete mobile e sui suoi vantaggi.

Inoltre, il docente esamina le architetture avanzate di visione artificiale e si concentra sull'ottimizzazione dei modelli di rete neurale convoluzionale utilizzando convoluzioni locali a gradini e convoluzioni una per una. Sottolinea l'importanza di comprendere queste ottimizzazioni ei problemi che possono sorgere con determinate ottimizzazioni nella costruzione di reti future in modo efficiente. La conferenza si conclude con una discussione sul compromesso tra accuratezza, prestazioni e dimensione del modello, evidenziato dal confronto del modello di rete efficiente con altre reti. Gli studenti vengono informati di un quiz imminente e di un compito a casa in scadenza il venerdì successivo.

  • 00:05:00 In questa sezione, il relatore inizia ricapitolando la lezione precedente prima di approfondire le architetture CNN più avanzate. Si scusano per la rozza introduzione nell'ultima lezione e apportano alcune modifiche dell'ultimo minuto prima di iniziare. C'è un breve scambio su un microfono, ma poi l'oratore salta nella conferenza.

  • 00:10:00 In questa sezione, il relatore passa in rassegna l'architettura di una rete neurale convoluzionale (CNN) e come si differenzia da una rete neurale densa standard. Il relatore chiarisce che lo strato convoluzionale in una CNN è simile a uno strato in una densa rete neurale, con parametri appresi come filtri e termini di bias. L'oratore spiega come un filtro genera una mappa di output per ogni posizione nell'input e più filtri generano diversi canali di output. L'oratore spiega anche come utilizzare uno strato di pooling per ridurre le dimensioni del volume di uscita. Nel complesso, l'oratore sottolinea che i meccanismi di una CNN sono simili a una densa rete neurale, con le convoluzioni che sostituiscono la moltiplicazione delle matrici.

  • 00:15:00 In questa sezione, il relatore spiega l'uso del max pooling nelle reti neurali convoluzionali per ridurre le dimensioni del volume delle caratteristiche e accelerare le convoluzioni. Questa tecnica comporta l'assunzione del valore massimo in ogni quadratino del volume della caratteristica e l'utilizzo di tale valore come output. Il relatore tocca anche il concetto di segmentazione, che comporta l'etichettatura di ogni pixel in un'immagine con una classificazione specifica, e osserva che per questo compito, la dimensione dell'output sarà la stessa della dimensione dell'input. La sezione si conclude con una breve introduzione alle architetture CNN avanzate, con un focus su ResNet come il più significativo da portare via dalla conferenza.

  • 00:20:00 In questa sezione, il docente discute varie architetture di visione artificiale, con particolare attenzione alle reti neurali convoluzionali (CNN). La conferenza inizia discutendo la motivazione alla base delle CNN, che comporta l'impilamento di strati convoluzionali e il raggruppamento di strati per sintetizzare le informazioni dalle funzionalità di basso livello e farsi strada fino alle funzionalità superiori. La conferenza prosegue poi discutendo l'architettura di AlexNet, un'impresa rivoluzionaria che ha raggiunto un tasso di errore di circa il 17% su ImageNet nel 2012. Tuttavia, il docente osserva che queste architetture non sono più all'avanguardia, poiché ci sono stati progressi nelle architetture dei trasformatori che saranno discussi nelle lezioni successive.

  • 00:25:00 In questa sezione, il relatore discute l'architettura di AlexNet e VGG, due reti neurali di visione artificiale ampiamente utilizzate. AlexNet coinvolge cinque strati convoluzionali, con l'output finale costituito da un vettore unidimensionale appiattito passato attraverso tre strati densi e una funzione softmax per produrre una classe prevista. D'altra parte, VGG ha 23 strati convoluzionali e tre strati densi. Inoltre, il relatore evidenzia l'uso di convoluzioni una per una come forma di imbottitura e aggiunta e riduzione della dimensionalità.

  • 00:30:00 In questa sezione, il docente discute le architetture avanzate di visione artificiale, concentrandosi sulle reti neurali convoluzionali (CNN). La conferenza sottolinea l'uso di convoluzioni una per una per mantenere la dimensione dell'input, nonché la combinazione di convoluzioni in profondità e in senso puntuale per aumentare l'efficienza computazionale. La lezione sottolinea anche l'importanza di apprendere le funzionalità di basso livello nelle prime fasi del classificatore e descrive i problemi con i livelli di impilamento alla cieca. Per affrontare questi problemi, la conferenza spiega l'uso dei residui per mantenere i valori residui all'indietro, portando a una maggiore precisione e ad architetture più semplici.

  • 00:35:00 In questa sezione, la conferenza discute il concetto di residui nelle reti neurali convoluzionali profonde. Sebbene l'aggiunta di più livelli non dovrebbe diminuire la precisione perché la trasformazione dell'identità può essere appresa, in pratica, l'aggiunta di più livelli influisce sulle identità precedenti dalla post-trasformazione, con il risultato di gradienti che svaniscono, gradienti che esplodono e gradienti che si frantumano. I residui risolvono questo problema mantenendo le informazioni delle fasi precedenti nel calcolo futuro, rendendo più facile l'apprendimento della trasformazione dell'identità. La conferenza discute anche dei colli di bottiglia nell'elaborazione dei residui, dove l'aggiunta di residui aumenterà il tempo di convergenza, ma non necessariamente i risultati. Una soluzione a questo è regolare la dimensione e la frequenza del collo di bottiglia.

  • 00:40:00 In questa sezione della conferenza, il relatore discute l'importanza di essere in grado di apprendere l'identità nelle architetture di visione artificiale. Spiegano che se i pesi e le distorsioni di una rete sono tutti pari a zero, la rete produrrà esattamente la stessa cosa che riceve, rendendo più facile per la rete riconoscere quando ha abbastanza informazioni per fare una buona classificazione e smettere di imparare. caratteristiche più complicate. Il relatore tocca anche la questione della scelta del numero di livelli in una rete, con due che sono una scelta comune nell'architettura ResNet.

  • 00:45:00 In questa sezione della conferenza, il relatore discute il problema dei gradienti in via di estinzione nelle reti neurali e come può influenzare gli aggiornamenti del peso. Il problema del gradiente di fuga si verifica quando le derivate parziali dei singoli passaggi diventano troppo piccole o troppo grandi in una catena di moltiplicazione, il che può causare problemi con l'aggiornamento coerente dei pesi. La presentazione parla anche di come la normalizzazione dei lotti e le reti residue aiutino ad alleviare il problema del gradiente in via di estinzione. La conferenza passa quindi alla discussione del raggruppamento medio globale, che viene utilizzato per sostituire i livelli completamente connessi nelle reti neurali convoluzionali (CNN) e generare mappe delle caratteristiche per ciascuna categoria nelle attività di classificazione.

  • 00:50:00 In questa sezione della conferenza, il relatore discute di come l'uso di strati densi nelle reti neurali si traduca spesso in un overfitting e in una riduzione delle prestazioni. Per evitare ciò, suggeriscono di utilizzare il pooling medio globale (GAP), che genera mappe delle caratteristiche, ne calcola la media e le inserisce in una funzione softmax senza regolare alcun parametro. Il relatore introduce anche il concetto di convoluzioni separabili in base alla profondità, che utilizzano mappe di caratteristiche di dimensioni inferiori su ciascun canale separatamente prima di combinarle in modo intelligente per ridurre il calcolo e conservare i dati da ciascun canale. Questa tecnica è particolarmente importante per il ridimensionamento dei calcoli su un'ampia gamma di filtri nelle reti neurali profonde.

  • 00:55:00 In questa sezione della conferenza, il relatore discute l'architettura della rete mobile, che utilizza la profondità e la convoluzione puntuale per ridurre il numero di calcoli necessari per un'immagine. Applicando uno strato uno per uno per tre a ciascun canale dell'immagine e quindi concatenando i risultati e applicandovi una convoluzione puntuale più piccola, si ottiene l'output, riducendo significativamente il numero di calcoli. L'architettura della rete mobile ha meno parametri e converge più velocemente pur corrispondendo alla precisione di Inception of D3. Il relatore prosegue anche discutendo di spremere ed eccitare le reti, in cui è possibile comprimere ed espandere le mappe delle caratteristiche utilizzando strati densi e ridimensionamento, che è meno intensivo dal punto di vista computazionale.

  • 01:00:00 In questa sezione, il docente discute su come utilizzare le convoluzioni locali a gradini e le convoluzioni una per una per ottimizzare un modello di rete neurale convoluzionale (CNN). Cita anche come la comprensione delle ottimizzazioni e dei problemi affrontati da determinate ottimizzazioni possa aiutare a costruire reti future in modo più efficiente. La conferenza si conclude con un confronto tra l'accuratezza, le prestazioni e le dimensioni del modello del modello di rete efficiente rispetto ad altre reti, evidenziando che esiste sempre un compromesso tra queste metriche.
 

CS 198-126: Lezione 7 - Rilevamento di oggetti



CS 198-126: Lezione 7 - Rilevamento di oggetti

La conferenza discute il rilevamento degli oggetti, in particolare l'aggiunta della localizzazione a una semplice CNN di classificazione, il metodo IOU per il rilevamento degli oggetti, il sistema R-CNN e l'ottimizzazione degli algoritmi di rilevamento degli oggetti per ridurre al minimo i tempi di elaborazione con YOLO. Il video spiega YOLO tagliando un'immagine e discute le sfide con il rilevamento di oggetti YOLO, incluso l'uso di scatole di ancoraggio per eliminare l'ambiguità. Infine, viene esplorata l'architettura YOLO, che è una rete neurale completamente convoluzionale per il rilevamento di oggetti, e l'archiviazione di un gran numero di classi per la classificazione viene presentata come una domanda di ricerca in corso. L'oratore consiglia di leggere "The Yellow Paper" sconsigliando l'RCNN a causa della sua illeggibilità.

  • 00:00:00 In questa sezione, il docente discute il processo di aggiunta della localizzazione a una semplice classificazione CNN per il rilevamento dei punti di riferimento. Aggiungendo un output X e Y alla rete, la rete emette la posizione esatta di una caratteristica specifica in un'immagine, come il naso dell'animale. Il docente spiega quindi come espandere questa rete aggiungendo più output per creare un riquadro di delimitazione per il gatto nel suo insieme. Il docente esplora anche diverse idee per l'espansione della rete per creare un riquadro di delimitazione e il processo per addestrare la rete su questo compito espanso.

  • 00:05:00 In questa sezione, il docente discute il metodo IOU (intersezione su Unione) per il rilevamento di oggetti. Questo approccio mira a massimizzare la sovrapposizione tra il riquadro di delimitazione previsto e il riquadro di delimitazione reale calcolando l'area di intersezione e dividendola per l'area dell'Unione. Il docente spiega che più questo valore è vicino a 1, migliore è il rilevamento. Inoltre, il docente tocca le sfide del rilevamento di più oggetti nella stessa immagine, menzionando la soluzione di base dell'utilizzo di una ricerca esaustiva o di finestre scorrevoli. Tuttavia, questo approccio presenta problemi significativi, tra cui l'inefficienza e la richiesta di troppa potenza di elaborazione.

  • 00:10:00 In questa sezione, il relatore discute la soluzione proposta al problema delle proporzioni basse nel rilevamento degli oggetti, che è il sistema chiamato R-CNN. La sua idea di base è indovinare i probabili riquadri di delimitazione ed eseguire la classificazione su quelli utilizzando classici algoritmi di apprendimento non automatico per segmentare un'immagine e proporre una serie di riquadri di delimitazione per gli oggetti. Questo approccio funziona perché è probabile che i bordi di un'immagine siano i limiti di un riquadro di delimitazione. L'algoritmo utilizza anche la soppressione non massima per rimuovere la ridondanza causata dalla potenziale classificazione dello stesso oggetto più volte. Tuttavia, questo sistema è ancora lento perché la maggior parte delle immagini ha migliaia di diverse regioni di segmentazione, a seconda di come viene definito l'algoritmo classico.

  • 00:15:00 In questa sezione, il docente spiega come ottimizzare gli algoritmi di rilevamento degli oggetti per ridurre al minimo i tempi di elaborazione. Un modo consiste nel creare una mappa delle caratteristiche che estrae le informazioni chiave dall'immagine e quindi eseguire la classificazione solo sulla sezione della mappa delle caratteristiche necessaria per ogni rilevamento di oggetto, eliminando la necessità di eseguire nuovamente l'intera rete neurale convoluzionale ogni volta. Il docente introduce quindi YOLO, un algoritmo di rilevamento di oggetti che utilizza una singola rete neurale convoluzionale per emettere la posizione e i riquadri di delimitazione di più oggetti in un'immagine. L'architettura di YOLO è costituita da livelli convoluzionali e un livello di classificazione, che consentono tempi di elaborazione più rapidi e rilevamento di più oggetti contemporaneamente.

  • 00:20:00 In questa sezione, il video spiega come funziona YOLO (You Only Look Once) tagliando un'immagine in una griglia, con ogni griglia che rappresenta un vettore di classificazione o un riquadro di delimitazione. Ciò significa teoricamente che il numero di oggetti che possono essere classificati è uguale al numero di griglie nell'immagine. YOLO usa anche la larghezza e l'altezza XY, con la coordinata XY che è il punto medio del riquadro di delimitazione e la larghezza e l'altezza sono le dimensioni del riquadro. Il video passa quindi a spiegare la soppressione non massima, un processo che elimina le sovrapposizioni e sceglie il riquadro di delimitazione migliore con la massima affidabilità per ogni grafico di classificazione.

  • 00:25:00 In questa sezione, apprendiamo le sfide con il rilevamento di oggetti YOLO, incluso il problema di più oggetti centrati nella stessa cella e come produrre più classificazioni e riquadri di delimitazione in una cella. La soluzione a questo è utilizzare i riquadri di ancoraggio, in cui i riquadri di delimitazione generici vengono definiti prima della classificazione e il set di dati viene classificato in base alla somiglianza con questi riquadri di ancoraggio. Ciò consente un modo deterministico per determinare quale oggetto deve essere classificato in quale vettore ed elimina l'ambiguità dei riquadri di delimitazione duplicati.

  • 00:30:00 In questa sezione viene discussa l'architettura YOLO, che è una rete neurale completamente convoluzionale per il rilevamento di oggetti. La rete YOLO esegue un passaggio sull'immagine ed è semplice nel design, eliminando componenti classici come le finestre scorrevoli. Utilizzando scatole di ancoraggio e altre tecniche, YOLO è in grado di eguagliare la precisione di RCNN migliorando drasticamente la sua velocità. Inoltre, viene esplorato il concetto di scatole di ancoraggio, che sono forme geometriche che corrispondono agli oggetti in un'immagine. È difficile rilevare oggetti con scatole di ancoraggio che hanno la stessa forma e dimensione e si sovrappongono. Tuttavia, ci sono algoritmi che possono trovare scatole di ancoraggio matematicamente ottimali per separare questi oggetti. Infine, la discussione affronta l'archiviazione di un gran numero di classi per la classificazione, che è ancora una questione di classificazione attualmente esplorata dai ricercatori.

  • 00:35:00 In questa sezione, il relatore raccomanda un documento tecnico chiamato "The Yellow Paper" per coloro che sono interessati a leggere sul rilevamento di oggetti. D'altra parte, l'oratore sconsiglia di leggere RCNN a causa della sua illeggibilità. Il relatore invita il pubblico a porre eventuali domande prima di concludere la conferenza.
 

CS 198-126: Lezione 8 - Segmentazione semantica



CS 198-126: Lezione 8 - Segmentazione semantica

La conferenza discute la segmentazione delle immagini, inclusa la segmentazione semantica e la segmentazione delle istanze. L'obiettivo principale della segmentazione è rilevare tutti gli oggetti in un'immagine e separarli. Il docente spiega come una rete neurale convoluzionale (CNN) può essere utilizzata per la segmentazione semantica e come il downsampling può aiutare con immagini a piena risoluzione computazionalmente costose. Vengono anche discussi diversi approcci per trasformare un piccolo volume in una dimensione di immagine. La conferenza introduce l'U-Net, un modello per la segmentazione semantica che combina i miglioramenti precedenti con le connessioni skip e spiega come può essere esteso alla segmentazione delle istanze utilizzando l'approccio Mask R-CNN. Viene dimostrato un modello di segmentazione semantica pre-addestrato e il relatore parla della pre-formazione e dei prossimi incarichi del corso.

  • 00:00:00 In questa sezione, la lezione copre la segmentazione delle immagini, in particolare la segmentazione semantica e la segmentazione delle istanze. La segmentazione semantica comporta la ricerca dei pixel specifici in cui è presente un oggetto nell'immagine, mentre la segmentazione dell'istanza identifica dove si trova ogni istanza di ciascuna classe nell'immagine. L'obiettivo finale della segmentazione è rilevare tutti gli oggetti in un'immagine e separarli. Questa tecnica è utile perché gli esseri umani percepiscono gli oggetti attraverso una combinazione di singoli componenti ed è essenziale essere in grado di identificare e classificare questi componenti in modo più specifico. La segmentazione offre applicazioni utili, come il rilevamento di oggetti e l'identificazione delle relazioni tra oggetti.

  • 00:05:00 In questa sezione, il docente discute il concetto di segmentazione e come affrontarlo. L'idea è di creare segmenti connessi raggruppando in base a una sorta di criterio di somiglianza. L'approccio classico a questo era definire una funzione per raggruppare i pixel insieme in base alla loro somiglianza in qualche metrica, come l'intensità. Tuttavia, il docente menziona i nuovi approcci di deep learning, come le finestre scorrevoli, che possono imparare a eseguire la segmentazione invece di utilizzare un algoritmo fisso.

  • 00:10:00 In questa sezione, il relatore spiega come una rete neurale convoluzionale (CNN) può essere utilizzata per la segmentazione semantica. Invece di eseguire più volte l'approccio della finestra scorrevole della CNN, è possibile utilizzare un'operazione convoluzionale. Ciò consente di ottenere gli effetti desiderati senza l'inefficienza del ricalcolo delle funzionalità condivise. Il livello convoluzionale può essere eseguito come filtro sull'immagine e il livello di output verrà mappato uno a uno con l'immagine originale, indipendentemente dalle dimensioni. Il padding può essere utilizzato anche per gestire i casi in cui la dimensione dell'input è inferiore alla dimensione del filtro.

  • 00:15:00 In questa sezione, il docente discute la questione del downsampling di immagini di grandi dimensioni per rendere più fattibile la segmentazione semantica, poiché l'elaborazione di immagini a piena risoluzione può essere computazionalmente costosa. La soluzione è sottocampionare gradualmente l'immagine con ogni livello di convoluzione e rimuovere le informazioni ridondanti, creando un volume più piccolo con cui lavorare. Questa immagine sottocampionata viene quindi sovracampionata alla fine per creare una mappa di segmentazione dell'immagine originale, con ogni pixel segmentato in una classe particolare in base all'output di classificazione massimo. La conferenza discute anche brevemente i diversi approcci al riempimento e al trattamento dei bordi delle immagini.

  • 00:20:00 In questa sezione, l'istruttore discute diversi approcci per trasformare un piccolo volume, come una mappa di segmentazione, in un'immagine delle dimensioni dell'immagine di input originale. L'approccio classico prevede il ridimensionamento dell'immagine e l'utilizzo di funzioni di interpolazione come il vicino più vicino o l'interpolazione lineare per riempire lo spazio extra. Tuttavia, questo approccio può portare a una certa perdita di dettaglio. L'istruttore suggerisce un approccio appreso che utilizza la deconvoluzione, che prevede il passaggio del livello di input sul livello di output e la rimozione dei pixel dall'immagine di input originale uno per uno. L'istruttore fornisce una breve rassegna delle convoluzioni e spiega come funziona la deconvoluzione capovolgendo le posizioni dei livelli di input e output.

  • 00:25:00 In questa sezione, il docente disegna un esempio di una semplice immagine di input e spiega un metodo di scomposizione che prevede l'osservazione di ogni pixel dell'immagine di input e l'utilizzo di un filtro per proiettarlo sull'immagine di output. Il docente rileva una limitazione di questo metodo in quanto può sovrascrivere valori che sono già stati scritti. Per risolvere questo problema, il docente introduce un approccio incrementale che coinvolge le convoluzioni convoluzionali per eseguire il downsampling dell'immagine di input in una rappresentazione a bassa risoluzione e quindi utilizzare le convoluzioni D per riportarla alla sua dimensione originale. Il docente osserva che questo metodo è vantaggioso perché viene appreso il campionamento in alto piuttosto che solo un algoritmo classico, che consente una maggiore adattabilità e raffinatezza delle forme.

  • 00:30:00 In questa sezione impariamo a conoscere l'U-Net, un modello per la segmentazione semantica che combina i miglioramenti precedenti con le connessioni skip. Le connessioni Skip consentono di estrarre informazioni da diversi livelli del percorso di downsampling durante l'upsampling. Esistono anche diverse varianti dell'U-Net, come i modelli della famiglia deep flat e modelli basati su Transformer come il Sendformer. L'U-Net può anche essere ampliato per risolvere il problema della segmentazione delle istanze utilizzando l'approccio Mask R-CNN, che prevede la posizione degli oggetti all'interno del valore identificato.

  • 00:35:00 In questa sezione, il docente discute la segmentazione dell'istanza completa utilizzando Mask R-CNN, utile per le auto a guida autonoma che rilevano i contorni di oggetti come automobili, pedoni o zaini. Il docente spiega come il potenziale riquadro di delimitazione viene ridotto in un'immagine di dimensioni fisse e classificato. Le etichette per gli oggetti vengono raccolte attraverso una varietà di metodi, come farlo fare agli umani o impiegare metodi di assistenza. La matrice viene appresa allo stesso modo di un filtro e, quando si disattiva un'immagine, il docente spiega che si tratta di una proiezione in cui il filtro viene moltiplicato per ogni valore di pixel corrispondente e quindi iterato sull'immagine, che in realtà non inverte una convoluzione .

  • 00:40:00 In questa sezione, il docente e uno studente dimostrano un modello di segmentazione semantica pre-addestrato che è stato addestrato su Cloud GPU. Il modello viene eseguito su un'immagine dal Giappone e i risultati mostrano che il modello può rilevare più oggetti con diverse precisioni. Lo studente menziona inoltre che al modello può essere applicata una soglia di punteggio per filtrare le informazioni con punteggi di precisione bassi. Nel complesso, la demo funge da esempio di come la segmentazione semantica può essere applicata alle immagini del mondo reale.

  • 00:45:00 In questa sezione, il relatore parla del pre-addestramento e di come il modello può essere pre-addestrato su AWS e altri servizi scaricati. Menzionano anche un incarico residente obbligatorio e un'unità facoltativa consigliata che prevede la segmentazione. Le date di scadenza e i collegamenti sono sul sito Web del corso e incoraggiano gli studenti a presentarsi in orario di ricevimento per qualsiasi domanda. Nel complesso, questa sezione ha fornito alcune informazioni logistiche sul corso e sui prossimi incarichi.
 

CS 198-126: Lezione 9 - Codificatori automatici, VAE, modellazione generativa



CS 198-126: Lezione 9 - Codificatori automatici, VAE, modellazione generativa

In questa lezione viene introdotto il concetto di modellazione generativa, che prevede l'utilizzo dell'apprendimento automatico per creare nuove immagini basate su un set di dati. Vengono spiegati gli autoencoder, un tipo di rete neurale utilizzata per l'apprendimento delle caratteristiche, concentrandosi sulla loro struttura e su come possono apprendere le caratteristiche dei dati di input attraverso la compressione e la ricostruzione. La lezione copre anche gli autocodificatori variazionali e i loro vantaggi, nonché l'uso di spazi latenti strutturati negli autocodificatori per l'interpolazione tra le immagini. Viene discussa l'importanza della quantizzazione vettoriale per lavorare con dati discreti e viene spiegata la funzione di perdita per un codificatore automatico variazionale, che include una perdita di ricostruzione e una perdita di impegno per impedire l'hardcoding dei dati di input. La conferenza si conclude con un riepilogo degli argomenti trattati.

  • 00:00:00 In questa sezione, la lezione introduce l'argomento della modellazione generativa, che prevede l'utilizzo dell'apprendimento automatico per generare nuove immagini basate su un set di dati. Tuttavia, può essere un problema difficile per le macchine capire cosa distingue gli oggetti diversi, come i gatti, gli uni dagli altri. La conferenza introduce il concetto di codificatori automatici e come possono essere utilizzati per comprimere e decomprimere le immagini, come si vede nell'esempio della compressione JPEG. La lezione tocca anche l'argomento degli autocodificatori variazionali, che sarà discusso nella prossima lezione.

  • 00:05:00 In questa sezione, il docente discute la compressione delle immagini e come si basa sulla comprensione dei dati a un certo livello. La compressione può risparmiare spazio e ridurre il numero di bit necessari per inviare un'immagine su una rete. L'algoritmo JPEG funziona eliminando alcune delle informazioni a frequenza più elevata e le relazioni pixel a pixel che non sono cruciali per la percezione umana. Il docente suggerisce quindi che per tipi specifici di immagini, come le immagini di gatti, potrebbero essere sviluppati schemi di compressione più avanzati con una conoscenza più approfondita di come l'immagine è strutturata al di là delle semplici correlazioni di pixel. Nel complesso, gli algoritmi di compressione evidenziano l'importanza di comprendere i dati nell'apprendimento automatico.

  • 00:10:00 In questa sezione, il docente discute il concetto di autocodificatori, un tipo di rete neurale utilizzata per l'apprendimento delle funzionalità che utilizza una struttura codificatore-decodificatore per comprimere i dati di input e successivamente ricostruirli. Lo confronta con tecniche precedenti come eigenfaces che utilizzavano PCA per l'estrazione delle caratteristiche e mostra la struttura di una rete di autoencoder. La parte del codificatore riduce i dati di input in uno strato di collo di bottiglia, mentre la parte del decodificatore li ricostruisce riportandoli alla loro forma originale. L'obiettivo è ridurre al minimo la differenza tra i dati originali e quelli ricostruiti. Il docente solleva la questione del perché una rete che produce lo stesso output dell'input sarebbe utile e spiega che la chiave sta nelle caratteristiche apprese dei dati che possono essere utilizzate per altre attività.

  • 00:15:00 In questa sezione della lezione, l'istruttore spiega il concetto di livello di collo di bottiglia negli autoencoder e come costringe la rete a comprimere i dati di input, apprendendo quindi alcune caratteristiche dei dati. Discute anche i limiti di questa struttura di rete e le proprietà desiderabili del codice, come le sue piccole dimensioni e la somiglianza dei codici per immagini simili. L'istruttore introduce il concetto di autocodificatori variazionali che si basa sugli autocodificatori ma fornisce proprietà magiche che consentono risultati sensibili quando vengono applicate diverse operazioni ai vettori latenti. Discute quindi il quadro generativo per la generazione di immagini e testo che implica il campionamento del vettore latente contenente le informazioni dell'immagine o del testo da generare.

  • 00:20:00 In questa sezione della conferenza, il relatore discute l'uso di vettori latenti come un modo per rappresentare tratti o "geni" in un set di dati di volti. Il vettore latente agisce come una sorta di distribuzione di probabilità su possibili insiemi di geni per un individuo, e la struttura facciale è una funzione dei geni in quell'insieme. Il codificatore prende un'immagine in ingresso e produce un vettore latente, e il decodificatore prende quel vettore latente e produce una stima dell'immagine originale. Per imporre una struttura allo spazio latente, vengono utilizzate codifiche probabilistiche.

  • 00:25:00 In questa sezione della conferenza, il relatore spiega l'uso delle distribuzioni di probabilità nella mappatura degli input in una regione di possibili output per forzare i vettori vicini nello spazio latente a decodificare in immagini simili. Questo concetto è importante negli autocodificatori variazionali (VAE), che utilizzano una distribuzione gaussiana per emettere i parametri di un cerchio nello spazio latente da cui viene campionato un codice. La perdita VAE include un termine di ricostruzione e un termine che costringe l'output del codificatore ad apparire come una normale distribuzione, impedendogli di apprendere solo un punto per l'output e incoraggiando invece grandi insiemi che devono essere codificati nello stesso punto. L'oratore nota gli obiettivi contrastanti in questa perdita, in cui l'autoencoder preferirebbe mappare ogni input su un singolo punto, ma il termine aggiuntivo costringe i punti a essere vicini al centro del piano e ad avere una certa varianza, risultando in dischi invece di singoli punti.

  • 00:30:00 In questa sezione della conferenza, il relatore discute i vantaggi dell'utilizzo di spazi latenti strutturati negli autoencoder. Applicando la struttura nello spazio latente, gli autoencoder possono interpolare efficacemente tra le immagini, come mostrato in una popolare demo online in cui gli utenti possono far scorrere un cursore tra due volti di celebrità e vedere il cursore interpolare tra i due volti in modo sensato. Il relatore spiega che ciò è reso possibile utilizzando un autoencoder variazionale, che costringe i vettori latenti a vivere insieme nello stesso spazio e decodificare punti vicini da vettori vicini. Il relatore osserva che mentre i dettagli di addestramento degli autocodificatori variazionali possono essere complicati a causa del campionamento coinvolto, l'approccio è arbitrario e può essere modificato per adattarsi a varie applicazioni.

  • 00:35:00 In questa sezione della conferenza, il relatore discute di come l'uso di token discreti sia necessario per alcuni campi, come l'elaborazione del linguaggio naturale (NLP), poiché è difficile definire cosa significhi alterare una parola con un certo percentuale. Di conseguenza, discute l'uso della quantizzazione vettoriale come hack per estendere gli autocodificatori variazionali (VAE) in modo che funzionino con token discreti. Nella quantizzazione vettoriale, viene utilizzato un libro di codici di token validi per arrotondare qualsiasi vettore di output dal VAE al token più vicino, consentendo una migliore rappresentazione dei dati discreti. Tuttavia, la selezione del libro dei codici rimane una sfida.

  • 00:40:00 In questa sezione, il relatore discute la funzione di perdita per un Variational Autoencoder (VAE), che viene utilizzato per apprendere le posizioni delle parole in codice che corrispondono a diversi cluster all'interno di una distribuzione di dati. La funzione di perdita include una perdita di ricostruzione, che assicura che l'uscita dal decodificatore sia simile all'ingresso, e una perdita di impegno, che assicura che i vettori emessi dal codificatore siano vicini alle parole in codice che rappresentano i centri di questi cluster. Per impedire alla rete di codificare i dati di input, il codificatore produce più parole di codice per ciascun input, il che si traduce in un insieme più ampio di parole di codice e consente alla rete di generare una maggiore varietà di output.

  • 00:45:00 In questa sezione del video, il presentatore discute un metodo per generare nuove immagini con VQ-VAE campionando un po' di C da una distribuzione normale e facendolo passare attraverso il decodificatore, che si traduce in una nuova immagine che non è stata visto prima. Inoltre, il presentatore spiega che il campionamento uniforme degli elementi del codebook potrebbe non essere efficace perché alcune parole in codice sono più comuni da utilizzare rispetto ad altre nella vera distribuzione dei dati. Pertanto, l'apprendimento del precedente rispetto alle parole in codice può essere utile per generare nuovi dati. Infine, il relatore fornisce un riepilogo della lezione, iniziando con gli autocodificatori, passando agli autocodificatori variazionali e terminando con gli autocodificatori variazionali quantizzati vettoriali.
 

CS 198-126: Lezione 10 - GAN



CS 198-126: Lezione 10 - GAN

La conferenza sui GAN introduce il concetto di due reti, il discriminatore e il generatore, che competono l'una contro l'altra in una configurazione simile alla teoria dei giochi. L'input del generatore è un rumore casuale, a cui assegna un significato per generare immagini dall'aspetto reale, e il compito del discriminatore è giudicare se l'immagine è reale o falsa. I GAN utilizzano una funzione di perdita che corrisponde alla perdita di entropia incrociata negativa, con il generatore che vuole minimizzarla e il discriminatore che vuole massimizzarla. La funzione valore rappresenta quanto bene sta facendo il generatore e deve essere massimizzata dal discriminatore classificando correttamente dati falsi e reali. La conferenza copre anche problemi con l'addestramento dei GAN e la perdita non saturante che consente al generatore di avere più agenzia per cambiare.

  • 00:00:00 In questa sezione, il docente fornisce una revisione delle variabili e dei codici latenti utilizzati per comprimere e mappare le immagini in rappresentazioni più compresse. Viene inoltre introdotta l'idea di utilizzare codificatori automatici per generare nuove immagini da un vettore latente. Il docente rileva la sfida di giudicare ciò che rende un'immagine buona e realistica, ed è qui che entrano in gioco i GAN (Generative Adversarial Networks). Con due reti, una che genera dati e l'altra che cerca di determinare se sono reali o falsi, le reti competono l'una contro l'altra in una configurazione simile alla teoria dei giochi. Il discriminatore vince quando classifica correttamente le immagini e il generatore vince quando inganna il discriminatore.

  • 00:05:00 In questa sezione, l'istruttore spiega il concetto di alto livello alla base dei GAN, che coinvolge due reti - il discriminatore e il generatore - in competizione l'una contro l'altra. A differenza degli autoencoder, dove il collo di bottiglia è nel mezzo, i GAN hanno qualcosa nel mezzo tra il generatore e il discriminatore che è molto più dimensionale. L'input al generatore è una sorta di vettore di rumore casuale campionato da una gaussiana multivariata. Il generatore viene quindi alimentato con la variabile del rumore latente e decide come assegnarle un significato casuale in modo che possa generare un'intera serie di input o un'intera serie di immagini dall'aspetto reale. Le reti del discriminatore e del generatore vengono addestrate congiuntamente tramite la discesa del gradiente, alternandosi tra le due, con l'obiettivo di ingannare l'altra rete.

  • 00:10:00 In questa sezione, il docente spiega come funzionano i GAN avendo una rete a cui vengono forniti dati reali e falsi per addestrare un generatore a capire i modelli che fanno sembrare le immagini reali. Il discriminatore è colui che giudica se l'immagine è reale o falsa e, man mano che apprende, inizia a notare schemi e aggiorna il suo giudizio. La speranza è che il generatore impari a migliorarsi creando qualcosa con più forma o oggetti che abbiano un senso nel contesto della scena. La funzione di perdita per i GAN consiste solo in una perdita di classificazione dal discriminatore e il punteggio del generatore è l'opposto di esso. Per addestrare il generatore, il discriminatore deve essere bravo nel giudicare un'immagine per fornire un feedback al generatore.

  • 00:15:00 In questa sezione, il docente spiega l'importanza di un discriminatore in grado di classificare accuratamente le immagini per migliorare il generatore. Potrebbe essere necessario aggiornare il discriminatore più del generatore, in modo che possa discernere una differenza significativa tra le immagini reali e quelle generate. Il docente scompone quindi la funzione di perdita, che corrisponde alla perdita di entropia incrociata negativa, con il generatore che vuole minimizzarla e il discriminatore che vuole massimizzarla. Il generatore vince quando i suoi dati sembrano reali e il discriminatore vince quando distingue correttamente le immagini reali da quelle false. Le due reti si trovano in uno scenario di teoria dei giochi in cui competono l'una contro l'altra per progredire e migliorare.

  • 00:20:00 In questa sezione del video, i relatori spiegano il concetto di funzione di valore nei GAN, che è l'opposto della funzione di perdita utilizzata nei tradizionali modelli di machine learning. La funzione valore rappresenta quanto bene sta facendo il generatore e deve essere massimizzata dal discriminatore classificando correttamente dati falsi e reali. I pesi del generatore vengono congelati durante la prima fase in modo che il discriminatore possa essere addestrato su batch di dati reali e falsi. Durante la seconda fase, il discriminatore viene congelato e i pesi del generatore vengono aggiornati per generare immagini false leggermente migliori. Questo processo viene ripetuto finché il generatore non produce immagini realistiche che nemmeno il discriminatore può classificare come false.

  • 00:25:00 In questa sezione, il relatore discute i GAN condizionali, che forniscono una soluzione per la generazione di immagini con un maggiore controllo sulle classi generate. L'attuale configurazione GAN richiede di alimentare ripetutamente il generatore in modo casuale finché non viene generato l'oggetto o l'immagine desiderati, ma per set di dati con più classi, questo approccio non è l'ideale. Aggiungendo un vettore one-hot al vettore del rumore casuale, questo consente al generatore di avere un maggiore controllo sulla classe che viene generata. Il vettore one-hot corrisponde alla classe desiderata e il generatore è addestrato a generare un'immagine con quella classe specifica.

  • 00:30:00 In questa sezione della conferenza, il relatore discute l'idea di incentivare il generatore a utilizzare una caratteristica specifica nel modello GAN condizionale. L'oratore spiega che non è sufficiente dire al generatore di generare un'immagine specifica, poiché il generatore non ha alcun incentivo a utilizzare le informazioni fornite. La soluzione è fornire anche al discriminatore la stessa etichetta, creando una strategia per identificare se un'immagine generata corrisponde o meno alla sua etichetta. Ciò costringe il generatore a prestare attenzione all'etichetta poiché vuole evitare il rilevamento da parte del discriminatore, con conseguente output che corrisponde all'etichetta data. Viene anche discussa l'architettura sia del generatore che del discriminatore.

  • 00:35:00 In questo scenario, i pesi del generatore alla fine diventerebbero zero. Inoltre, il generatore potrebbe scivolare e rimanere intrappolato nella modalità collasso, in cui emette solo una piccola serie di esempi che ingannano bene il discriminatore. Questo problema sorge a causa del fatto che il discriminatore apprende confini decisionali super nitidi e il generatore è incentivato a produrre ripetutamente quegli esempi falsi. Infine, ci sono anche problemi di procedura di addestramento con i GAN, poiché la loro configurazione vaniglia non converge e la loro funzione di perdita diventa piatta.

  • 00:40:00 In questa sezione, il docente discute alcuni problemi comuni con i GAN, che possono renderli difficili da addestrare. Un problema è che ci sarà sempre un compromesso tra il generatore e il discriminatore, con il discriminatore che cerca di adattarsi eccessivamente a caratteristiche specifiche nelle immagini reali e non esiste un modo chiaro per sapere quando il GAN ha terminato l'addestramento. Il docente esamina quindi una perdita non saturante, che è una semplice riformulazione dell'obiettivo del generatore, e affronta il problema che il generatore ottiene solo una piccola derivata parziale quando il discriminatore riconosce le immagini generate come false. La perdita non saturante massimizza un termine alternativo e consente al generatore di avere più agenzia per cambiare.

  • 00:45:00 In questa sezione, il docente spiega il trucco matematico alla base della perdita di entropia incrociata utilizzata nei GAN. Invece di cercare ciecamente di minimizzare la perdita di entropia incrociata negativa, l'obiettivo del generatore è massimizzare la probabilità di essere classificato come uno, usando una sorta di perdita di entropia incrociata di classe binaria. Questa perdita non saturante fornisce gradienti del generatore maggiori, permettendoci di allenarci più velocemente quando il discriminatore sta solo spegnendo il generatore. Tuttavia, il docente osserva che si tratta di materiale avanzato, senza quiz o compiti a casa, ma sono disponibili a parlare di più sulle tecniche di formazione GAN avanzate.
 

CS 198-126: Lezione 11 - GAN avanzati



CS 198-126: Lezione 11 - GAN avanzati

Questa lezione sui GAN avanzati copre varie tecniche per migliorare la stabilità e la qualità dei modelli GAN, tra cui l'upsampling bilineare, la convoluzione trasposta, i GAN condizionali, StyleGAN e CycleGAN. La conferenza discute anche l'uso del rumore casuale controllato, la normalizzazione dell'istanza adattiva e l'elaborazione di video nei GAN. Per ottenere una migliore stabilità e risultati, il docente consiglia di utilizzare lotti di dimensioni maggiori e di troncare l'intervallo di rumore casuale durante il test, avvertendo nel contempo di non nerfare eccessivamente il discriminatore. Inoltre, si suggerisce di iniziare con un'ampia distribuzione di diverse dimensioni di spazio latente per generare una varietà di immagini. Infine, la conferenza tocca il Big Gan, che aiuta a generare GAN su scala molto ampia.

  • 00:00:00 In questa sezione, il relatore introduce l'argomento dei GAN nel contesto della visione artificiale e discute la costruzione di un'architettura GAN per la visione artificiale. L'oratore si concentra sul discriminatore, che è una classificazione CNN, e sul generatore, che è più impegnativo a causa della necessità di eseguire l'upsampling dell'immagine vettoriale latente. Il relatore discute anche le tecniche di downsampling e up-sampling, incluso l'upsampling del vicino più vicino, che è un approccio ingenuo che duplica ogni singola cella sulla mappa delle caratteristiche esistente, risultando in un'immagine sfocata.

  • 00:05:00 In questa sezione, il docente discute i modi per eseguire l'upsampling delle mappe delle caratteristiche per i generatori nei GAN. Per prima cosa descrive l'upsampling bilineare, in cui vengono create nuove mappe di caratteristiche prendendo una mappa di caratteristiche più grande e vuota e riempiendola con la media di tutti i suoi vicini più vicini. Quindi introduce la convoluzione trasposta, che riempie la mappa delle caratteristiche con così tanto riempimento che quando la finestra di convoluzione viene fatta scorrere su di essa, la mappa delle caratteristiche di output finisce per essere più grande dell'input. Il docente osserva che questi sono i modi più comuni per eseguire l'upsampling delle mappe delle caratteristiche e di solito sono sufficienti per ingrandire i generatori.

  • 00:10:00 In questa sezione della conferenza, il relatore discute i GAN condizionali e come gestirli nel generatore. Gli input al generatore ora includono un vettore latente e uno condizionale che gli dice cosa generare. L'oratore suggerisce di concatenare i vettori insieme o di elaborarli separatamente prima di concatenarli. Toccano anche brevemente il passaggio di più cose a un discriminatore. La conferenza passa quindi a StyleGAN, una nuova architettura per il generatore che include talento artistico e pre-elaborazione dei vettori latenti prima delle operazioni di convoluzione.

  • 00:15:00 In questa sezione, l'oratore discute la necessità di alimentare il latente per dare a tutte le diverse convoluzioni l'accesso allo stile codificato in esso per produrre trame migliori. La trama è un rumore casuale e sarebbe molto più semplice fornire al modello fonti di casualità. Questa sezione introduce l'architettura utilizzata, che suddivide il generatore in due diversi componenti. Il primo è quello desiderato, il cui vettore latente alimenta il generatore. L'introduzione del componente desiderato serve a pre-elaborare il latente per risolvere il problema degli spazi latenti inutilizzabili, che rende difficile la generazione di determinate immagini. I pre-processi implicano il passaggio del latente attraverso strati densi finché non abbiamo un nuovo latente modificato chiamato W.

  • 00:20:00 In questa sezione, il video discute il concetto di normalizzazione dell'istanza adattiva (AdaIN) e come introduce lo stile nella rete. AdaIN sostituisce la norma batch e utilizza un vettore di stile per dettare quanto ridimensionare e rebias, consentendo risultati più significativi. Il vettore di stile viene passato attraverso un livello completamente connesso, che viene utilizzato per ridimensionare e modificare la polarizzazione di tutte le attivazioni. L'obiettivo finale è aumentare l'accesso alla casualità generando un gran numero di mappe di caratteristiche che sono rumore puramente casuale.

  • 00:25:00 In questa sezione, il docente discute l'aggiunta di rumore casuale controllato a ciascuna mappa caratteristica, consentendo alla rete di aumentare o diminuire la quantità di rumore in base ai valori B appresi. Questo rumore casuale controllato aiuta a generare trame e imperfezioni migliori, consentendo la generazione di singoli peli e rughe. Il rumore controllato viene aggiunto dopo ogni convoluzione e consente alla rete di controllare l'entità del rumore. La conferenza discute anche le nuove innovazioni nello stile GAN, incluso il vettore latente integrato in ogni livello e l'uso della normalizzazione dell'istanza adattiva per introdurre lentamente lo stile.

  • 00:30:00 In questa sezione, il docente discute le due tecniche GAN avanzate: StyleGAN e CycleGAN. StyleGAN genera volti casuali con notevoli miglioramenti nella trama attraverso il rumore casuale, mentre CycleGAN trasferisce le immagini da un set di dati a un altro. Un termine di perdita è dedicato al realismo delle immagini convertite e l'altro misura se l'immagine può essere ripristinata al suo stato originale. CycleGAN può scattare foto realistiche e trasformarle in dipinti di Monet, trasformare le zebre in cavalli e alterare le stagioni di un'immagine. Sebbene non vi sia coerenza tra i fotogrammi nel video, la tecnica può comunque produrre risultati decenti.

  • 00:35:00 In questa sezione, il relatore spiega che i video possono essere utilizzati per addestrare un discriminatore per identificare video veri e falsi, ma richiede un calcolo significativo rispetto all'elaborazione delle immagini. Il video dovrebbe essere elaborato fotogramma per fotogramma, ma alcuni fotogrammi possono essere saltati per rendere il processo più efficiente. Il discriminatore può essere utilizzato per garantire la coerenza nei video generati da un fotogramma all'altro. Inoltre, il relatore consiglia di fare attenzione quando si utilizzano i modelli GAN in alcune dimostrazioni, come la conversione di una scimmia in un cavallo, poiché potrebbe non funzionare sempre in modo efficiente e il risultato potrebbe non essere quello previsto. Infine, il relatore discute di come GAN si espande quando vengono lanciate dimensioni di batch più grandi e più dati su modelli più grandi e spiega alcuni compromessi tra stabilità, affidabilità, varietà e qualità.

  • 00:40:00 In questa sezione, il docente discute alcuni trucchi per ottenere una migliore stabilità e risultati con i GAN. Una chiave per una migliore stabilità è l'utilizzo di batch di dimensioni maggiori, che è particolarmente utile per attività complesse come i GAN. Un altro suggerimento è quello di troncare l'intervallo di rumore casuale durante i test per evitare risultati che sono al di fuori dell'esperienza del modello. Tuttavia, questo comporta il compromesso di limitare la varietà di immagini generate. Il docente sottolinea inoltre che accettare una certa instabilità durante l'allenamento è necessario per ottenere buoni risultati e mette in guardia dal nerfare eccessivamente il discriminatore.

  • 00:45:00 In questa sezione, l'oratore mette in guardia contro l'utilizzo di una distribuzione ristretta per lo spazio latente poiché il generatore potrebbe generare ripetutamente immagini simili, rendendo più difficile la generazione di una varietà di immagini. Il relatore suggerisce di iniziare con un'ampia distribuzione di diverse dimensioni per dare al modello un'ottima idea iniziale di come generare immagini. Inoltre, condividono il fatto che la funzione discriminatore può essere utile in molti modi diversi oltre a generare una singola immagine in modo casuale. Infine, introducono il Big Gan, che aiuta a generare GAN su larga scala.
 

CS 198-126: Lezione 12 - Modelli di diffusione



CS 198-126: Lezione 12 - Modelli di diffusione

In questa conferenza sui modelli di diffusione, il relatore discute l'intuizione alla base dei modelli di diffusione: prevedere il rumore aggiunto a un'immagine e rimuoverlo per ottenere l'immagine originale. La conferenza copre il processo di formazione, l'architettura migliorata ed esempi di modelli di diffusione nella generazione di immagini e video. Inoltre, la conferenza approfondisce i modelli di diffusione latente, che comprimono il modello in uno spazio latente per eseguire la diffusione sulla parte semantica dell'immagine. Il relatore fornisce anche una panoramica di modelli correlati come Dolly Q, il modello Imagine di Google e Make a Video di Facebook e la loro capacità di generare modelli 3D utilizzando il testo.

  • 00:00:00 In questa sezione del video, il relatore introduce i modelli di diffusione, una nuova classe di modelli generativi. Spiegano che l'obiettivo dei modelli generativi è apprendere la distribuzione sottostante di un determinato set di dati in modo che nuovi dati possano essere generati dalla stessa distribuzione. Il relatore menziona anche due metodi principali per l'apprendimento delle distribuzioni: massimizzare la verosimiglianza o minimizzare la metrica della divergenza. La conferenza si immergerà nella matematica dietro i modelli di diffusione e il relatore osserva che questa lezione sarà matematicamente più coinvolta rispetto alle precedenti.

  • 00:05:00 In questa sezione della conferenza sui modelli di diffusione, il relatore discute l'uso sia di Variational Autoencoder (VAE) che di Generative Adversarial Network (GAN) nella modellazione di distribuzioni che imitano la distribuzione dei dati. L'oratore spiega che entrambi i modelli funzionano prelevando un campione da un rumore casuale e convertendolo in qualcosa che sembra provenire dalla distribuzione dei dati. Tuttavia, i modelli di diffusione eseguono più piccoli passaggi invece di un grande passaggio durante questo processo, il che crea una catena di Markov più facile da analizzare. Il modello di diffusione ha un processo in avanti in cui il rumore viene aggiunto a un'immagine e successivamente viene aggiunto altro rumore per creare una versione rumorosa dell'immagine. Esiste anche un processo inverso in cui l'immagine viene eliminata dal rumore per tornare all'immagine originale.

  • 00:10:00 In questa sezione del video, il docente spiega il concetto di elaborazione inversa nei modelli di diffusione, in cui una nuova immagine può essere generata invertendo la sequenza dei passi rumorosi. La sfida sta nel trovare la distribuzione inversa, che è difficile da calcolare utilizzando la distribuzione esatta, e quindi viene effettuata un'approssimazione tramite la funzione Q e la funzione P. La funzione P è rappresentata da una rete neurale, che cerca di apprendere la media e la varianza della distribuzione inversa, che si assume essere gaussiana. Il video copre anche il processo di addestramento per un modello di diffusione, che richiede di minimizzare o massimizzare una funzione di perdita.

  • 00:15:00 In questa sezione della lezione, il relatore discute l'applicazione del limite inferiore variazionale di variazione ai modelli di diffusione, che si traduce in una funzione di perdita che assomiglia a una somma di funzioni di perdita più piccole. Spiegano che i termini da L di 0 a L di T-1 contribuiscono alla perdita e che si concentreranno sull'analisi di L di T, che è definito da 1 a T-1. Il relatore prosegue spiegando come la divergenza KL tra Q di X di T-1 e la distribuzione che la rete neurale cerca di prevedere si traduca in un termine che misura la perdita L2 tra la media appresa e la media dalla distribuzione condizionale. Gli autori degli articoli di diffusione suggeriscono di parametrizzare mu di theta, il mu appreso, in una forma simile a Q di X di T-1 per semplificare l'espressione e rendere possibile prevedere un singolo termine invece di prevedere tutto all'interno del riquadro rosso.

  • 00:20:00 In questa sezione, il docente spiega l'intuizione principale alla base dei modelli di diffusione, ovvero prevedere il rumore che è stato aggiunto a un'immagine e quindi eliminarlo per recuperare l'immagine originale. L'obiettivo è ridurre al minimo il rumore tra il rumore originale e il rumore previsto e il processo di addestramento prevede l'aggiunta di rumore alle immagini nel set di dati, il loro passaggio attraverso il modello, la previsione del rumore e la riduzione al minimo della distanza tra il rumore previsto e quello effettivo. Il modello può quindi essere utilizzato per sintetizzare nuove immagini partendo da rumore casuale e rimuovendolo utilizzando il rumore previsto. Il docente osserva inoltre che X di T, essendo la variabile diffusa, non deve essere un'immagine.

  • 00:25:00 In questa sezione, il relatore discute i modelli di diffusione e la loro capacità di prevedere il rumore di un'immagine con le stesse dimensioni dell'ingresso/uscita. Un modello che ha le stesse dimensioni è la stessa unità utilizzata nella lezione sulla segmentazione. Tuttavia, gli autori dell'articolo hanno aggiunto al modello molti trucchi CV moderni, inclusi blocchi resnet, moduli di attenzione, norme di presa e attivazioni swish. Sono stati in grado di dimostrare che funzionava molto bene e in un documento successivo sono stati utilizzati più passaggi temporali per migliorarne ulteriormente la qualità. Il relatore fornisce anche un'immagine e un link alla slide contenente l'architettura del modello.

  • 00:30:00 In questa sezione viene spiegato che i ricercatori hanno trovato un modo per migliorare i risultati dell'utilizzo di modelli di diffusione per la generazione di immagini modificando i parametri beta che controllano l'aggiunta di rumore nel processo in avanti. Invece di utilizzare un programma lineare, hanno suggerito di utilizzare una funzione coseno più lenta e di aumentare in seguito per convertire lentamente le immagini in rumore, aiutando il modello ad apprendere meglio il processo inverso. Inoltre, imparando la matrice di covarianza attraverso una rete neurale, è possibile migliorare la probabilità logaritmica e ottenere probabilità migliori, che possono essere viste come una misura della diversità.

  • 00:35:00 In questa sezione della conferenza, il relatore discute alcuni miglioramenti architettonici che possono essere apportati al modello di unità, comunemente utilizzato in diversi documenti. Questi miglioramenti includono l'aumento delle dimensioni del modello, l'utilizzo di moduli di attenzione e la normalizzazione adattiva. Il relatore introduce anche l'idea della guida classificata, che prevede l'addestramento di un classificatore per prevedere le etichette di classe da immagini sia originali che rumorose e l'utilizzo del gradiente risultante per migliorare il modello di diffusione. Infine, il relatore menziona l'uso di metriche, come FID e precisione e richiamo, per misurare la qualità dei modelli generativi.

  • 00:40:00 In questa sezione, il relatore discute di come il modello di diffusione abbia superato i modelli GAN nella modellazione delle immagini grazie alla sua capacità di catturare una migliore fedeltà e diversità della distribuzione dei dati. Mostrano immagini dei fenicotteri in cui le immagini GAN sembrano molto simili, mentre le immagini di diffusione mostrano una maggiore diversità nel loro output, indicando migliori capacità di modellazione delle immagini. Il relatore menziona anche che i ricercatori hanno escogitato modi migliori per guidare il modello di diffusione attraverso un processo chiamato guida senza classificatori, in cui viene addestrato un modello di diffusione condizionale per evitare di scambiare la diversità con una maggiore qualità, che è inerente quando si condiziona il modello su alcuni etichetta di classe.

  • 00:45:00 In questa sezione, il docente discute il concetto di modelli di diffusione latente, che sono un'altra classe di modelli di diffusione utilizzati per l'addestramento su immagini ad alta dimensione, poiché in tali casi non è possibile addestrare un modello di diffusione di grandi dimensioni. Il docente spiega che i ricercatori hanno scoperto che vengono utilizzati più bit per catturare i dettagli a livello di pixel e meno per catturare alcuni dei dettagli semantici di un'immagine che non è utile. Per generare immagini in modo accurato, è invece necessario eseguire un modello generativo sulla parte semantica dell'immagine. Il docente fornisce una panoramica di come ciò può essere ottenuto, il che implica l'apprendimento dello spazio latente e la compressione del modello in uno spazio latente per eseguire la diffusione su di esso. Ciò consente di convertire un'immagine in un'immagine latente e di nuovo nell'immagine utilizzando un modello di codificatore e decodificatore.

  • 00:50:00 In questa sezione, il relatore discute diversi modelli relativi alla diffusione, tra cui Dolly Q, generazione di immagini tramite il modello Imagine di Google e generazione di video tramite Make a Video di Facebook. Inoltre, Google ha esteso il modello Imagine per generare anche video. Il relatore menziona anche la capacità di generare modelli 3D utilizzando il testo, nonché l'applicazione della visione a RL, che raggiunge risultati all'avanguardia in RL offline, secondo un documento pubblicato all'inizio di quest'anno. Il relatore fornisce collegamenti a documenti e risorse per ulteriori apprendimenti.