Apprendimento automatico e Reti Neurali - pagina 32

 

Lezione 2: Deep Learning pratico per programmatori 2022



Lezione 2: Deep Learning pratico per programmatori 2022

Questa serie di video di YouTube fornisce un'introduzione al deep learning per i programmatori. Copre argomenti come la preparazione dei dati, la creazione di modelli e la distribuzione di un modello di machine learning.

In questo video, l'hacker Jeremy Howard insegna alle persone come creare le proprie app Web utilizzando il deep learning. Spiega come impostare un progetto in Git, come utilizzare lo spazio del viso che abbraccia per caricare un modello su cui allenarsi, l'elaborazione del linguaggio naturale e come riconoscere il testo.

  • 00:00:00 Questa lezione riguarda il deep learning pratico per i programmatori nel 2022. Vengono insegnate nuove tecniche all'avanguardia che aiuteranno gli studenti a ricordare meglio il materiale. Il corso va con il libro e sono disponibili quiz per aiutare gli studenti a testare i loro progressi.

  • 00:05:00 Questo video copre le basi del deep learning per la codifica, incluso come trovare i dati, pulirli e mettere in produzione un modello. Il prossimo video della serie mostrerà come farlo.

  • 00:10:00 In questo video, Wes spiega come addestrare un modello in deep learning utilizzando il sito Web ddg. Mostra come cercare oggetti e come ridimensionare le immagini.

  • 00:15:00 In questo video viene introdotta una tecnica per il deep learning: RandomResizedCrop. Viene utilizzato per migliorare la precisione del riconoscimento delle immagini. Viene anche discussa l'aumento dei dati e viene mostrato che se si desidera addestrare un modello di deep learning per più di cinque o dieci epoche, è necessario utilizzare RandomResizedCrop e "aug_transforms".

  • 00:20:00 Questo video di YouTube mostra come utilizzare un oggetto di interpretazione del classificatore per determinare dove una perdita è elevata in un set di dati. Queste informazioni possono quindi essere utilizzate per ripulire i dati prima che vengano utilizzati per addestrare un modello.

  • 00:25:00 Il video introduce la pulizia dei dati e il deep learning pratico per i programmatori 2022. Copre la preparazione dei dati con strumenti come la pulizia dei dati con accelerazione GPU e HuggingFace Spaces, seguita dall'utilizzo di Gradio per i modelli di machine learning in produzione.

  • 00:30:00 Questo video illustra come utilizzare Git per gestire il codice e come utilizzare un terminale per lavorare sul codice. Il video spiega anche come utilizzare VS Code per modificare il codice.

  • 00:35:00 Questo tutorial spiega come creare un modello di deep learning utilizzando alcuni metodi diversi, tra cui un esempio Kaggle e un esempio Colab. Una volta creato il modello, può essere scaricato e copiato nella stessa directory del codice.

  • 00:40:00 In questa lezione, l'autore mostra come utilizzare uno studente esperto per prevedere se un'immagine è un cane o un gatto. Lo studente è congelato nel tempo e può essere caricato e scaricato facilmente.

  • 00:45:00 Questo video spiega come creare un'interfaccia Gradio per convertire le immagini in classificazioni e come creare uno script Python per farlo.

  • 00:50:00 In questa lezione, l'istruttore dimostra come creare un semplice modello PyTorch e caricarlo su Gradio. Fornisce inoltre istruzioni su come utilizzare fastsetup per installare i notebook PyTorch e Jupyter su un computer.

  • 00:55:00 Questo video fornisce le istruzioni per installare Python e alcune delle librerie necessarie per il deep learning, tra cui Pytorch e Numpy. L'autore consiglia di utilizzare una distribuzione python basata su conda, come mambaforge, invece del sistema python. Infine, l'autore consiglia di installare nbdev per utilizzare Jupyter Notebook.

  • 01:00:00 In questa lezione, l'istruttore dimostra come utilizzare Gradio, una piattaforma gratuita per l'addestramento di modelli di deep learning, per creare un sito Web che prevede i nomi di cani e gatti. Sebbene streamlit sia più flessibile di Gradio, entrambe le piattaforme sono gratuite e facili da usare.

  • 01:05:00 Questo video spiega come creare modelli di deep learning utilizzando Javascript. Il tutorial include una versione multi-file e una versione HTML dello stesso modello.

  • 01:10:00 Questo video spiega come creare un'app di deep learning di base utilizzando solo Javascript e un browser. Una volta creata l'app, puoi utilizzare FastPages per creare un sito Web che assomigli all'app.

  • 01:15:00 In questo video, l'hacker Jeremy Howard insegna alle persone come creare le proprie app Web utilizzando il deep learning. Prima discute come impostare un semplice progetto in Git, quindi mostra come utilizzare lo spazio del viso che si abbraccia per caricare un modello su cui allenarsi. Successivamente, discute l'elaborazione del linguaggio naturale, spiegando come funzionano i modelli sotto il cofano. Infine, dimostra come il deep learning può essere utilizzato per riconoscere il testo.
 

Lezione 3: Deep Learning pratico per programmatori 2022



Lezione 3: Deep Learning pratico per programmatori 2022

Questo video fornisce un'introduzione al deep learning pratico per i programmatori. Copre le basi della moltiplicazione di matrici e dei gradienti e dimostra come utilizzare un modello di deep learning per prevedere la probabilità di razze di cani e gatti. Questo video fornisce una breve introduzione al deep learning per i programmatori, inclusa una discussione su come la moltiplicazione di matrici può richiedere molto tempo per ottenere un'idea intuitiva. La prossima lezione si concentrerà sull'elaborazione del linguaggio naturale, che consiste nel prendere dati di testo e fare previsioni basate sulla sua prosa.

  • 00:00:00 Questa lezione tratta le moltiplicazioni di matrici e i gradienti ed è pensata per gli studenti più inclini alla matematica. Il corso include anche una "Lezione zero" sulla configurazione di una macchina Linux da zero.

  • 00:05:00 Il video di questa settimana presenta cinque studenti che hanno creato diversi progetti legati al deep learning. Uno studente ha creato un rilevatore Marvel, un altro ha creato un gioco in cui il computer perde sempre, un altro ha creato un'applicazione per prevedere le temperature medie, un altro ha creato un classificatore di movimenti artistici e infine uno studente ha creato un rilevatore di redazione.

  • 00:10:00 Questo video illustra il deep learning pratico per i programmatori, incluso l'uso di diverse piattaforme e librerie di deep learning. Descrive come addestrare un modello e distribuirlo in un ambiente di produzione.

  • 00:15:00 In questa lezione, lo studente spiega come funziona il deep learning e come utilizzare diversi modelli di deep learning. Mostra anche come utilizzare un modello di deep learning per prevedere la probabilità di razze di cani e gatti.

  • 00:20:00 In questo video viene mostrato un modello di deep learning. Il modello è costituito da livelli, ciascuno dei quali contiene codice e parametri. Il modello è flessibile e può essere addestrato per riconoscere modelli nei dati.

  • 00:25:00 In questa lezione, l'istruttore mostra come creare una funzione per adattare un set di dati utilizzando l'applicazione parziale di una funzione. Quindi dimostra come tracciare la funzione e come regolare i coefficienti della funzione per adattarla meglio ai dati.

  • 00:30:00 Questo video spiega come migliorare la capacità di un computer di prevedere i valori utilizzando una funzione di perdita. L'autore dimostra come farlo spostando i cursori su un modello grafico basato sui cursori e controllando la funzione di perdita per vedere se migliora o peggiora. Pytorch può calcolare automaticamente il gradiente per te, rendendo il processo facile e veloce.

  • 00:35:00 In questo video, il programmatore Pytorch spiega come utilizzare la funzione gradiente per regolare i coefficienti di un'equazione quadratica. La funzione gradiente restituisce il negativo della pendenza della curva a cui è applicata.

  • 00:40:00 Questo video spiega come creare un modello di deep learning utilizzando Pytorch. Il modello è ottimizzato utilizzando la discesa del gradiente ei coefficienti finali sono determinati dalla funzione matematica rectified_linear().

  • 00:45:00 In questo video, Jeremy spiega come utilizzare la discesa del gradiente per ottimizzare i parametri nei modelli di deep learning. Questa è la stessa tecnica utilizzata per addestrare i modelli nella vita reale.

  • 00:50:00 Questo video di YouTube illustra il deep learning pratico per i programmatori e come eseguire l'addestramento dei modelli per la precisione e la velocità. Consiglia di iniziare con un modello accurato e ben sintonizzato e di aggiungere gradualmente più dati per vedere se la precisione migliora.

  • 00:55:00 In questo video, l'autore spiega come calcolare il gradiente di una funzione utilizzando le derivate. L'autore raccomanda di moltiplicare il gradiente per un piccolo numero, chiamato tasso di apprendimento, per evitare di saltare troppo lungo il gradiente e divergere.

  • 01:00:00 In questa lezione, l'istruttore mostra come eseguire la moltiplicazione di matrici per eseguire calcoli di deep learning su dati reali. Fornisce un sito Web che fornisce un modo semplice per farlo.

  • 01:05:00 Il relatore spiega come utilizzare il deep learning per prevedere se i passeggeri del vero Titanic sono sopravvissuti o meno. Prima rimuovono le colonne che non sono rilevanti per la previsione, quindi moltiplicano ciascuna riga per un coefficiente corrispondente alla variabile dipendente. Successivamente, creano una colonna chiamata "si sono imbarcati a Southampton?" e un'altra colonna chiamata "si sono imbarcati a Cherbourg?" e convertirli in variabili categoriali binarie. Infine, prendono la media di tutti i coefficienti e la usano per predire la variabile dipendente.

  • 01:10:00 Questa lezione spiega come applicare il deep learning ai problemi di programmazione utilizzando una regressione lineare. Innanzitutto, i dati vengono normalizzati e trasformati in log per renderli distribuiti in modo più uniforme. Successivamente, i coefficienti vengono calcolati utilizzando una funzione SumProduct in Excel. Infine, la discesa del gradiente viene utilizzata per ottimizzare la funzione di perdita.

  • 01:15:00 In questo video, un modello di deep learning viene creato da zero utilizzando Microsoft Excel. Il modello funziona meglio di una regressione quando prevede i tassi di sopravvivenza, ma è più lento e più doloroso da eseguire. la moltiplicazione di matrici viene utilizzata per accelerare il processo.

  • 01:20:00 Questo video fornisce una breve introduzione al deep learning per i programmatori, inclusa una discussione su come la moltiplicazione di matrici può richiedere molto tempo per avere un'idea intuitiva. La prossima lezione si concentrerà sull'elaborazione del linguaggio naturale, che consiste nel prendere dati di testo e fare previsioni basate sulla sua prosa.

  • 01:25:00 Questo video fornisce una guida dettagliata su come utilizzare il deep learning per la classificazione in lingue diverse dall'inglese.

  • 01:30:00 In questo video, il relatore discute l'importanza dei set di convalida e delle metriche nel deep learning.
 

Lezione 4: Deep Learning pratico per programmatori 2022



Lezione 4: Deep Learning pratico per programmatori 2022

Questo video spiega come costruire un modello di deep learning per il concorso Coders 2022. L'autore illustra come creare un set di convalida, come utilizzare i dati della concorrenza per testare le prestazioni del modello e come evitare l'overfitting nelle impostazioni del mondo reale. In questo video, Jeremy spiega come utilizzare il coefficiente di correlazione di Pearson per misurare la relazione tra due variabili e come utilizzare Pytorch per addestrare un modello che si comporta come uno studente fast.ai. Discute anche un problema con le previsioni generate dalle tecniche di PNL e come può essere risolto utilizzando una funzione sigmoidea.

  • 00:00:00 Questo video spiega come mettere a punto un modello di elaborazione del linguaggio naturale pre-addestrato utilizzando una libreria diversa da fast.ai.

  • 00:05:00 Questo video illustra l'algoritmo di Practical Deep Learning for Coders 2022, ULMFiT. ULMFiT era un algoritmo di apprendimento automatico presentato per la prima volta in un corso fast.ai. ULMFiT è stato successivamente trasformato in un documento accademico dall'autore. Dopo l'addestramento sulle recensioni dei film di Wikipedia e IMDB, l'algoritmo è stato in grado di prevedere il sentimento di una recensione con una precisione del 70%.

  • 00:10:00 In questa lezione, Jeremy ha spiegato le basi dell'approccio del modello di linguaggio mascherato di Transformers all'apprendimento automatico. Ha notato che questo approccio è più popolare dell'approccio ULMFiT e che ci sono cinque livelli nel modello del trasformatore. John ha posto una domanda su come passare da un modello che prevede la parola successiva a un modello che può essere utilizzato per la classificazione. Jeremy ha detto che avresti bisogno di rilevatori di bordi e rilevatori di gradiente nei primi livelli e che l'ultimo livello avrebbe attivazioni per ogni categoria che stai prevedendo. Ha detto che puoi addestrare questo modello aggiungendo gradualmente una nuova matrice casuale alla fine.

  • 00:15:00 La competizione Kaggle "US Patent Phrase to Phrase Matching Competition" richiede un modello in grado di determinare automaticamente quali coppie anchor e target parlano della stessa cosa. In questo video, il presentatore suggerisce di trasformare i dati in un problema di classificazione per utilizzare le tecniche di PNL.

  • 00:20:00 Questo video spiega come utilizzare il deep learning per la classificazione in modo pratico, lavorando con un set di dati che è già archiviato in un formato CSV (comma-separated value). Il video spiega anche come utilizzare i panda per leggere i dati.

  • 00:25:00 Questo video illustra l'uso di quattro librerie per il deep learning: numpy, matplotlib, pandas e pytorch. L'autore consiglia di leggere "Python for Data Analysis" di Wes McKinney se non si ha familiarità con queste librerie. Il primo passaggio nell'addestramento di una rete neurale è la tokenizzazione dei dati e il secondo passaggio è l'addestramento della rete.

  • 00:30:00 In questo video, il presentatore spiega come tokenizzare un testo in token e numerizzare i token per creare un "set di dati" di Hugging Face. Il relatore consiglia di utilizzare un modello pre-addestrato per la tokenizzazione e descrive alcuni dei diversi modelli disponibili.

  • 00:35:00 In questo video, il presentatore spiega come utilizzare un tokenizer per tokenizzare una frase e come trasformare i token in numeri. Il set di dati sarà lo stesso del set di dati originale, ma il set di dati tokenizzato sarà diverso a causa del tokenizer.

  • 00:40:00 Il video illustra come trasformare stringhe di testo in numeri per consentire il deep learning e spiega che non è necessario seguire un formato prestabilito, purché le informazioni siano fornite. Se un campo è particolarmente lungo, può essere utile utilizzare un approccio trasformatore.

  • 00:45:00 In questo video, l'autore spiega l'importanza di disporre di set di addestramento, convalida e test separati per l'apprendimento automatico. Mostrano come tracciare una regressione polinomiale e illustrano la differenza tra underfit e overfit.

  • 00:50:00 Il video spiega come creare un buon set di convalida per un modello di deep learning e come utilizzare i dati della concorrenza per testare le prestazioni del modello. Discute anche su come evitare l'overfitting nelle impostazioni del mondo reale.

  • 00:55:00 In questo video impariamo il deep learning e come costruire modelli per le competizioni Coders 2022. Apprendiamo che un set di convalida è un insieme di immagini che non vengono utilizzate per addestrare il modello e che un set di test è un altro set di convalida utilizzato per misurare l'accuratezza. Apprendiamo anche che ci sono due set di test: quello mostrato nella classifica durante la competizione e un secondo set di test che non viene mostrato fino al termine della competizione.

  • 01:00:00 Il "coefficiente di correlazione di Pearson" è una misura ampiamente utilizzata di quanto siano simili due variabili. Se le tue previsioni sono molto simili ai valori reali, il "coefficiente di correlazione di Pearson" sarà alto.

  • 01:05:00 Questo video di 1 minuto spiega come utilizzare il coefficiente di correlazione di Pearson per misurare la relazione tra due variabili. Il coefficiente di correlazione è una misura di quanto strettamente due variabili sono correlate e può essere utilizzato per valutare la forza di una relazione tra due variabili. Il coefficiente di correlazione può essere visualizzato utilizzando un grafico a dispersione e può essere utile per valutare il set di dati per il quale viene utilizzato.

  • 01:10:00 In questo video, il relatore spiega come addestrare correttamente un modello di deep learning. Coprono argomenti come correlazione, valori anomali e come suddividere correttamente i dati. Quindi mostrano come addestrare il modello con uno "studente" in fast.ai e come utilizzare "dimensioni batch" ed "epoche" per controllare quante righe vengono elaborate contemporaneamente.

  • 01:15:00 I trasformatori Hugging Face forniscono una varietà di velocità di apprendimento per compiti diversi e forniscono un modello appropriato per classificare le sequenze da un modello pre-addestrato. Può anche identificare valori anomali nei dati.

  • 01:20:00 In questa lezione, l'istruttore spiega come utilizzare Pytorch per addestrare un modello che si comporta come uno studente fast.ai. Osserva che, sebbene i valori anomali non debbano mai essere eliminati, possono essere esaminati e, se necessario, corretti.

  • 01:25:00 Il deep learning è una potente tecnologia che viene utilizzata in molteplici aree applicative. È relativamente adatto ai principianti e l'area dell'elaborazione del linguaggio naturale (PNL) è dove si trovano le maggiori opportunità. Un possibile utilizzo per il deep learning NLP è creare una prosa adatta al contesto per i social media, che potrebbe avere implicazioni per il modo in cui le persone vedono il mondo.

  • 01:30:00 In questo video, John spiega come le tecniche di PNL, come l'apprendimento automatico, possono essere utilizzate per generare un testo distorto a favore di un particolare punto di vista. Il video discute anche un problema con le previsioni generate dalle tecniche di PNL e come può essere risolto utilizzando una funzione sigmoidea.
 

Lezione 5: Deep Learning pratico per programmatori 2022



Lezione 5: Deep Learning pratico per programmatori 2022

Questo video fornisce un'esercitazione su come creare e addestrare un modello lineare utilizzando il deep learning. Il video inizia discutendo le operazioni sul posto, che modificano i valori delle variabili all'interno di una data funzione. Successivamente, il video mostra come calcolare la perdita per un modello lineare utilizzando la discesa del gradiente all'indietro. Infine, il video fornisce una funzione che inizializza e aggiorna i coefficienti all'interno di un modello lineare. Il video si conclude dimostrando come eseguire la funzione e stampare la perdita. Questo video spiega come calcolare la migliore suddivisione binaria per una determinata colonna in un set di dati. Ciò è particolarmente utile per le competizioni di machine learning, in quanto fornisce un modello di base per il confronto.

  • 00:00:00 Questa lezione tratta da zero il modello lineare e la rete neurale utilizzando Jupyter Notebook. L'obiettivo è comprendere la logica alla base del codice e ottenere l'output previsto.

  • 00:05:00 Il video discute il deep learning pratico per i programmatori, coprendo argomenti come come installare Kaggle e utilizzare la sua variabile di ambiente, come leggere i file CSV con i panda e come imputare i valori mancanti. Copre anche concetti di base in panda come la modalità e come utilizzare metodi e riduzioni per popolare i dataframe.

  • 00:10:00 In questa lezione, Jeremy illustra come imputare i valori mancanti in un set di dati utilizzando il metodo fillna() nei panda. Spiega che nella maggior parte dei casi questo modo "stupido" sarà abbastanza buono e che è importante conoscere le basi del nostro set di dati in modo che i metodi comuni non vengano spiegati più volte. Javier chiede i pro ei contro dell'eliminazione dei campi che non vengono utilizzati nel modello.

  • 00:15:00 In questa lezione, l'istruttore introduce il concetto di "variabili fittizie" e come possono essere utilizzate per rappresentare dati categorici in modo più sensato. Mostra anche come descrivere tutte le variabili numeriche e non numeriche nei dati.

  • 00:20:00 In questo video, l'istruttore mostra come trasformare una colonna in un dataframe in un tensore e come utilizzare questi tensori per addestrare un modello lineare e una rete neurale. Mostra anche come usare Pytorch invece del semplice Python quando si eseguono moltiplicazioni matriciali e per elementi.

  • 00:25:00 In questo video, l'istruttore spiega come eseguire un prodotto matrice-vettore in Python. Fornisce un esempio di moltiplicazione di una matrice per un vettore e spiega che il risultato è interessante perché i matematici possono eseguire la stessa operazione utilizzando l'algebra matriciale. Spiega anche che l'avvio di una sequenza pseudo-casuale è importante per produrre risultati riproducibili.

  • 00:30:00 In questo video, l'autore spiega come funziona la trasmissione e perché è utile. La trasmissione è una tecnica che consente di moltiplicare più valori insieme, tenendo conto della dimensione di ciascun valore. Ciò consente l'esecuzione di codice più conciso e veloce sulla GPU.

  • 00:35:00 Questo video spiega come ottimizzare i modelli di deep learning calcolando la perdita di discesa del gradiente. L'autore dimostra come farlo creando una funzione per calcolare la perdita e quindi importando la funzione in una sessione Pytorch.

  • 00:40:00 Questo video di YouTube fornisce un tutorial su come costruire e addestrare un modello lineare utilizzando il deep learning. Il video inizia discutendo le operazioni sul posto, che modificano i valori delle variabili all'interno di una data funzione. Successivamente, il video mostra come calcolare la perdita per un modello lineare utilizzando la discesa del gradiente all'indietro. Infine, il video fornisce una funzione che inizializza e aggiorna i coefficienti all'interno di un modello lineare. Il video si conclude dimostrando come eseguire la funzione e stampare la perdita.

  • 00:45:00 Questo video di 1 minuto spiega come creare una funzione di accuratezza per un modello di deep learning che prevede chi è sopravvissuto al Titanic. La funzione si basa sulla funzione sigmoidea, che è una funzione matematica che asintota a uno quando i numeri diventano troppo grandi o troppo piccoli.

  • 00:50:00 In questo video, John spiega come ottimizzare una rete neurale utilizzando una funzione sigmoidea. Spiega anche come gestire le variabili dipendenti dal blocco di categoria usando fast.ai.

  • 00:55:00 In questo video, l'autore spiega come costruire un modello da zero in Python usando Pytorch e come inviare il modello a Kaggle. L'autore afferma che l'operatore "matrice-moltiplicazione" significa matrice-moltiplicazione, ma che Python non viene fornito con un'implementazione dell'operatore.

  • 01:00:00 In questo video, il presentatore spiega come creare una rete neurale utilizzando Pytorch. Il primo passo è creare una matrice con le somme dei coefficienti della prima colonna. Questa matrice viene quindi moltiplicata per il vettore dei dati di addestramento. Il secondo passo è creare una seconda matrice con le attivazioni nascoste. Questa matrice viene quindi moltiplicata per i coefficienti della prima colonna. Il passaggio finale è centralizzare i vettori e addestrare la rete neurale.

  • 01:05:00 In questo video, Jeremy spiega come addestrare una rete neurale utilizzando il deep learning. Spiega che, per addestrare la rete, deve prima calcolare i gradienti e inizializzare i coefficienti. Successivamente esegue update_coeffs(), che sottrae i coefficienti dai gradienti. Infine, addestra la rete e confronta i risultati con un modello lineare.

  • 01:10:00 Questo video spiega come inizializzare i modelli di deep learning, come aggiornare i coefficienti e come scorrere tutti i livelli. Discute anche perché il deep learning potrebbe non essere altrettanto efficace su piccoli set di dati e come ottenere buoni risultati con i modelli di deep learning.

  • 01:15:00 In questa lezione, l'autore insegna come utilizzare un framework di deep learning e mostra come sia molto più semplice che farlo da zero. L'autore fornisce anche un tutorial sull'ingegneria delle funzionalità con Panda.

  • 01:20:00 In questo video, il trainer dimostra come utilizzare la libreria fastai per consigliare un tasso di apprendimento per un modello di deep learning. Mostra come eseguire più epoche e confronta le previsioni del modello con le previsioni di altri due modelli. Infine, dimostra come utilizzare la funzione di insieme per creare un insieme di cinque previsioni di cui viene calcolata la media sulle righe.

  • 01:25:00 In questo video, John spiega come funzionano le foreste casuali e perché sono un popolare algoritmo di apprendimento automatico. Mostra anche come utilizzare una comoda scorciatoia per importare tutti i moduli necessari.

  • 01:30:00 In questo video, Pandas spiega come funziona il deep learning e come applicarlo ai problemi di programmazione. Viene introdotto l'algoritmo della foresta casuale e viene dimostrato che questa tecnica può essere utilizzata per migliorare l'accuratezza delle previsioni effettuate utilizzando una variabile categoriale.

  • 01:35:00 Questo riepilogo di 1 paragrafo spiega come assegnare un punteggio a una divisione binaria utilizzando un metodo semplice per sommare i punteggi della deviazione standard dei due gruppi di dati. Il miglior punto di divisione viene trovato calcolando l'indice più piccolo nell'elenco dei punti di divisione con il punteggio più basso.

  • 01:40:00 In questa lezione, l'istruttore spiega come calcolare la migliore suddivisione binaria per una determinata colonna in un set di dati. Ciò è particolarmente utile per le competizioni di machine learning, in quanto fornisce un modello di base per il confronto.
 

Lezione 6: Deep Learning pratico per programmatori 2022



Lezione 6: Deep Learning pratico per programmatori 2022

Questo video di YouTube fornisce una guida su come iniziare con il deep learning per i programmatori. L'obiettivo principale è il deep learning pratico per i programmatori, con suggerimenti su come organizzare una competizione, ottenere un set di convalida e iterare rapidamente. Il video illustra anche l'importanza dell'importanza delle funzionalità e dei grafici di dipendenza parziale e come crearli utilizzando un modello di machine learning.

Questo video offre una panoramica su come utilizzare il deep learning per migliorare l'accuratezza dei progetti di codifica. Spiega che i set di dati possono spesso avere un'ampia varietà di dimensioni di input e proporzioni, il che rende difficile creare rappresentazioni accurate con rettangoli. Suggerisce invece di utilizzare rappresentazioni quadrate, che si sono dimostrate efficaci nella maggior parte dei casi.

  • 00:00:00 In questa lezione, gli autori mostrano come creare un albero decisionale per prevedere quali maschi sopravvivranno al Titanic.

  • 00:05:00 Il video illustra come creare un classificatore dell'albero decisionale con al massimo quattro nodi foglia. L'albero può essere generato automaticamente e viene fornito il codice per calcolare il coefficiente di Gini. L'errore assoluto medio dell'albero decisionale è calcolato in 0,407.

  • 00:10:00 Questo video spiega come costruire un albero decisionale per prevedere le classificazioni delle tariffe dei passeggeri utilizzando i dati di una competizione Kaggle. Gli alberi decisionali sono efficienti e non richiedono pre-elaborazione, il che li rende una buona opzione per i dati tabulari.

  • 00:15:00 La tecnica del "bagging" di Leo Breiman viene utilizzata per creare un gran numero di modelli imparziali che sono migliori di qualsiasi singolo modello. Questo viene fatto selezionando casualmente un sottoinsieme di dati ogni volta che viene costruito un albero decisionale e utilizzando quei dati per addestrare il modello.

  • 00:20:00 In questa lezione abbiamo imparato a creare una foresta casuale, un algoritmo di apprendimento automatico semplice da implementare e che funziona bene su piccoli set di dati. Abbiamo anche mostrato come utilizzare i grafici di importanza delle funzionalità per aiutarci a determinare quali funzionalità sono più importanti nei dati di addestramento.

  • 00:25:00 In questo video, John illustra le basi del deep learning, compreso il funzionamento delle foreste casuali e il motivo per cui l'aumento del numero di alberi porta sempre a un tasso di errore migliore. Jeremy prosegue poi spiegando come le foreste casuali possono essere utilizzate per prevedere i risultati per set di dati di grandi dimensioni senza la necessità di un set di convalida.

  • 00:30:00 Il video spiega come calcolare l'errore Out-of-Bag o errore OOB, che è una misura dell'accuratezza delle previsioni effettuate sui dati non utilizzati nell'addestramento di un modello di apprendimento automatico. Rileva che se l'errore OOB è elevato, ciò suggerisce che il modello non sta prevedendo correttamente i dati.

  • 00:35:00 Il video illustra l'importanza dell'importanza delle funzionalità e dei grafici di dipendenza parziale e come crearli utilizzando un modello di machine learning.

  • 00:40:00 In questo video, Jeremy spiega come funzionano i modelli Random Forest e come interpretare i loro grafici di importanza delle caratteristiche. Accenna anche al fatto che i modelli Random Forest sono più affidabili di altre tecniche di spiegabilità.

  • 00:45:00 Le foreste casuali sono un algoritmo di apprendimento automatico particolarmente adatto a fare previsioni. Tuttavia, l'aggiunta di più alberi renderà il modello più accurato e l'overfitting non è un problema. Gradient Boosting è un algoritmo di apprendimento automatico simile a Random Forests, ma invece di adattare un albero più e più volte, si adatta ad alberi molto piccoli che si traducono in una piccola suddivisione dei dati.

  • 00:50:00 Il video spiega come una macchina per l'aumento del gradiente (GBM) sia più precisa di una foresta casuale, ma che puoi sovradimensionare con una GBM. La procedura dettagliata mostra come scegliere una competizione Kaggle e raggiungere il primo posto.

  • 00:55:00 Questo video di YouTube fornisce una guida su come iniziare con il deep learning per i programmatori. L'obiettivo principale è il deep learning pratico per i programmatori, con suggerimenti su come organizzare una competizione, ottenere un set di convalida e iterare rapidamente.

  • 01:00:00 Questo video spiega come utilizzare FastKaggle per addestrare modelli di deep learning. Spiega che devi stare attento quando lavori con le immagini poiché le dimensioni possono cambiare a seconda delle proporzioni. Il video mostra anche come ridimensionare le immagini utilizzando una funzione chiamata "squish".

  • 01:05:00 In questo video, l'istruttore spiega come utilizzare la libreria AI veloce show_batch() per vedere rapidamente come appaiono i dati per i modelli di machine learning. Raccomanda di utilizzare resnet26d per prestazioni di allenamento rapide e precisione.

  • 01:10:00 Il video mostra come inviare un modello di deep learning a Kaggle in meno di un minuto utilizzando un dataloader e un file CSV che include le previsioni e le etichette del modello.

  • 01:15:00 Il relatore condivide la sua strategia per la creazione di taccuini pubblici su Kaggle, che prevede la duplicazione e la ridenominazione dei taccuini secondo necessità per mantenerli organizzati. Nota che questo approccio a bassa tecnologia funziona bene per lui e che in genere invia solo un taccuino alla volta.

  • 01:20:00 Il relatore fornisce una breve panoramica dei diversi metodi per il deep learning, inclusi i framework AutoML e le foreste casuali. Raccomanda di utilizzare un rilevatore di velocità di apprendimento per evitare modelli di overtraining e consiglia di utilizzare le GPU per il deep learning, se possibile.

  • 01:25:00 In questa lezione, l'autore spiega come accelerare un'iterazione su una competizione Kaggle utilizzando una diversa architettura di rete neurale convoluzionale (CNN). Mostra anche come utilizzare una regola empirica per scegliere la giusta dimensione della CNN.

  • 01:30:00 In questo video, il relatore illustra come migliorare le prestazioni di un modello di deep learning utilizzando diverse tecniche di pre-elaborazione, tra cui ritaglio e riempimento. Nota inoltre che Test Time Augmentation (TTA) può migliorare le prestazioni di un modello calcolando la media di più versioni di un'immagine.

  • 01:35:00 In questo video, Jeremy spiega come migliorare l'accuratezza di un modello di visione artificiale utilizzando il deep learning. Osserva che la precisione del modello può essere migliorata variando le immagini su cui è addestrato e fornisce un esempio di come farlo utilizzando i panda. Spiega anche quanto velocemente funzionano gli algoritmi di deep learning e come utilizzare TTA, o test time augmentation, per accelerare il processo di formazione. Infine, fornisce un riassunto delle domande poste da Victor e John.

  • 01:40:00 In questo video, Jeremy spiega come utilizzare il deep learning per migliorare l'accuratezza dei progetti di codifica. Osserva che i set di dati possono spesso avere un'ampia varietà di dimensioni di input e proporzioni, il che rende difficile creare rappresentazioni accurate con rettangoli. Suggerisce invece di utilizzare rappresentazioni quadrate, che si sono dimostrate efficaci nella maggior parte dei casi.
 

Lezione 7: Deep Learning pratico per programmatori 2022



Lezione 7: Deep Learning pratico per programmatori 2022

Nella lezione 7 di Practical Deep Learning for Coders 2022, Jeremy spiega come aumentare la scalabilità dei modelli di deep learning riducendo la memoria necessaria per modelli più grandi. Dimostra un trucco chiamato accumulo di gradiente, che prevede di non aggiornare i pesi a ogni ciclo di ogni mini-batch, ma di farlo invece ogni poche volte, consentendo l'utilizzo di batch di dimensioni maggiori senza la necessità di GPU più grandi. Inoltre, Jeremy discute la convalida incrociata k-fold e la creazione di un modello di apprendimento profondo che prevede sia il tipo di riso che la malattia presente nell'immagine utilizzando una diversa funzione di perdita chiamata perdita di entropia incrociata. Nel complesso, il video fornisce suggerimenti e trucchi pratici per la creazione di modelli di deep learning più complessi.

In questo video, il relatore esplora la creazione di sistemi di raccomandazione utilizzando filtri collaborativi e dot product in PyTorch. Descrive la previsione della moltiplicazione di matrici delle valutazioni dei film e calcola la funzione di perdita, una misura di quanto le valutazioni previste corrispondano alle valutazioni effettive. Introduce il concetto di incorporamento, che consente di velocizzare i moltiplicatori di matrici con variabili fittizie. Il relatore spiega quindi come aggiungere bias e regolarizzazione alla matrice per differenziare le valutazioni degli utenti e prevenire l'overfitting. Infine, viene discusso l'argomento della ricerca iperparametrica, sottolineando la necessità di dati granulari per raccomandazioni accurate. Nel complesso, il video scompone complessi concetti di deep learning per creare una comprensione pratica per gli spettatori.

  • 00:00:00 In questa sezione, l'istruttore introduce un semplice trucco per ingrandire ulteriormente i modelli, che comporta la riduzione della memoria necessaria per modelli più grandi. Quando vengono utilizzati modelli più grandi, più parametri significano che possono trovare caratteristiche più complesse, rendendole così più accurate. Tuttavia, i modelli più grandi hanno uno svantaggio perché le loro attivazioni o gradienti che devono essere calcolati consumano molta memoria della GPU e, se la memoria disponibile è insufficiente, viene visualizzato un messaggio di errore. L'istruttore spiega come aggirare questo problema e utilizzare un modello x-large anche sulla GPU 16 Gig di Kaggle.

  • 00:05:00 In questa sezione del video, Jeremy discute gli aspetti pratici dell'esecuzione di modelli di deep learning su Kaggle e come utilizzare metodi hacky rapidi per determinare l'utilizzo della memoria dei modelli. Dimostra un trucco chiamato accumulo di gradiente che può essere utilizzato se il modello si arresta in modo anomalo con un "errore cuda di memoria insufficiente" per evitare la necessità di acquistare una GPU più grande. Regolando la dimensione del batch e il numero di immagini, è possibile garantire che il modello utilizzi la quantità minima di memoria possibile senza influire sui tassi di apprendimento.

  • 00:10:00 In questa sezione, il relatore discute il concetto di accumulo del gradiente, ovvero l'idea di non aggiornare i pesi a ogni ciclo per ogni mini-batch, ma di farlo invece ogni poche volte. Ciò consente di utilizzare batch di dimensioni maggiori senza la necessità di GPU più grandi, poiché il gradiente può essere accumulato su più batch più piccoli. I risultati sono numericamente identici per le architetture che non utilizzano la normalizzazione batch, ma possono introdurre maggiore volatilità per quelle che la utilizzano. Nel complesso, l'accumulo di gradienti è un'idea semplice con implicazioni significative per l'addestramento di modelli più grandi.

  • 00:15:00 In questa sezione, Jeremy discute le domande del forum relative a lr_find() e all'accumulo di gradienti. Spiega che lr_find() utilizza la dimensione del batch dei caricatori di dati e che l'accumulo di gradienti consente di sperimentare diversi batch per trovare la dimensione ottimale per diverse architetture. Jeremy consiglia di scegliere la dimensione del batch più grande adatta alla tua GPU, ma afferma che non è sempre necessario utilizzare la dimensione del batch più grande. La regola empirica è dividere la dimensione del batch per due e dividere il tasso di apprendimento per due. Infine, Jeremy dimostra come utilizzare l'accumulo di gradienti in fastai dividendo la dimensione del batch per il valore di accumulo desiderato e passando il callback GradientAccumulation durante la creazione dello studente, consentendogli di addestrare più modelli su una scheda da 16 GB.

  • 00:20:00 In questa sezione, il relatore discute l'utilizzo dei modelli di trasformatore preaddestrati vit, swinv2 e swin, che hanno dimensioni fisse. Per ovviare a questo, la dimensione finale deve essere quadrata e della dimensione richiesta. Il presentatore utilizza un dizionario di architetture e dettagli di pre-elaborazione, riportando il percorso di addestramento all'utilizzo di tutte le immagini e scorrendo ogni architettura e trasformando le dimensioni per addestrare ogni modello. Lo script di addestramento restituisce le previsioni tta, che vengono aggiunte a un elenco a cui viene successivamente calcolata la media tramite bagging per creare un elenco di indici per ciascuna malattia. Inviando regolarmente le voci, il presentatore ha migliorato i propri risultati ed è stato in grado di assicurarsi una posizione di vertice nella classifica.

  • 00:25:00 In questa sezione, Jeremy discute il concetto di convalida incrociata k-fold e come sia simile a ciò che ha fatto con i modelli di assemblaggio. Spiega che la convalida incrociata k-fold è il punto in cui i dati vengono suddivisi in cinque sottoinsiemi e i modelli vengono addestrati su ciascun sottoinsieme con set di convalida non sovrapposti, che vengono quindi raggruppati. Anche se potrebbe potenzialmente essere migliore del suo metodo, Jeremy preferisce l'insieme perché consente la facile aggiunta e rimozione di modelli. Jeremy discute anche dell'accumulo di gradienti e di come non ci siano reali inconvenienti o potenziali problemi e consiglia di acquistare schede grafiche più economiche con meno memoria piuttosto che costose. Infine, afferma che Nvidia è l'unico gioco in città per GPU e le schede RTX consumer sono valide quanto le costose schede aziendali.

  • 00:30:00 In questa sezione, Jeremy discute i vantaggi dell'investimento in una GPU per il deep learning e riconosce che possono essere costose a causa del loro utilizzo nel cloud computing. Tocca anche come addestrare un modello più piccolo per produrre le stesse attivazioni di uno più grande, che sarà trattato nella Parte 2. Il resto del video si concentra sulla costruzione di un modello che predice sia la malattia che il tipo di riso di un'immagine , che richiede un programma di caricamento dati con due variabili dipendenti. Jeremy spiega come utilizzare DataBlock per creare un caricatore con più variabili dipendenti e dimostra come distinguere tra categorie di input e output.

  • 00:35:00 In questa sezione, l'istruttore spiega come creare un modello di deep learning che preveda sia il tipo di riso che la malattia presenti nell'immagine. Per ottenere ciò, la funzione get_y deve accettare un array con due etichette diverse. Uno è il nome della directory principale, in quanto indica la malattia, e il secondo è la varietà. L'insegnante crea una funzione che prende la posizione nel data frame del nome file e restituisce la colonna varietà. Infine, creano un modello che prevede 20 cose: la probabilità di ciascuna delle 10 malattie e ciascuna delle 10 varietà. La metrica del tasso di errore deve essere modificata per gestire tre cose invece di due per funzionare con il nuovo set di dati.

  • 00:40:00 In questa sezione, l'oratore spiega la necessità di una diversa funzione di perdita chiamata perdita di entropia incrociata quando la variabile dipendente è una categoria. Mentre il vision_learner di fastai ha indovinato e utilizzato la perdita di entropia incrociata in precedenza, il relatore ora spiega come funziona in dettaglio con l'aiuto di un foglio di calcolo. Partendo dall'output di un modello con cinque categorie, il relatore dimostra come convertire gli output del modello in probabilità utilizzando la funzione softmax. Una volta che gli output sono probabilità, la funzione di perdita di entropia incrociata viene utilizzata per misurare la differenza tra le probabilità previste e le probabilità effettive e determinare le prestazioni del modello.

  • 00:45:00 In questa sezione, impariamo a conoscere softmax e come viene utilizzato per prevedere una cosa specifica da categorie che vengono scelte in anticipo. La formula utilizzata per calcolare la perdita di entropia incrociata prevede la moltiplicazione delle probabilità e dei valori target effettivi, quindi la somma. Il registro di softmax viene utilizzato per velocizzare i calcoli. Il risultato è un singolo valore di probabilità che viene poi sommato per ogni riga per calcolare la perdita di entropia incrociata.

  • 00:50:00 In questa sezione, l'istruttore spiega la funzione di perdita di entropia incrociata binaria e come utilizzarla con più obiettivi. Nota che pytorch ha due versioni di funzioni di perdita, una classe e una funzione, e mostra come usarle. Quando si crea un modello multi-target, lo studente della visione richiede venti output, con dieci che prevedono la malattia e dieci che prevedono la varietà. L'istruttore dimostra come creare questo modello e poi lo addestra. Nel complesso, questo modello è identico al modello precedente ad eccezione dell'aggiunta della seconda serie di bersagli.

  • 00:55:00 In questa sezione, impariamo come un modello sa cosa sta prevedendo attraverso la sua funzione di perdita. Le prime dieci colonne di valori di input prevedono la probabilità della malattia e le seconde dieci rappresentano la probabilità della varietà. Utilizzando l'entropia incrociata, prendiamo in considerazione sia i valori target della malattia che quelli della varietà per creare una funzione di perdita basata sulla previsione di questi due valori. La funzione di perdita si riduce quando le prime dieci colonne fanno buone previsioni di malattie e le seconde dieci per la varietà, rendendo i coefficienti migliori nell'uso efficace di ciascuna colonna. Calcoliamo e monitoriamo i tassi di errore sia per le previsioni di malattia che di varietà durante l'epoca di addestramento. L'addestramento più lungo utilizzando un modello multi-target a volte può portare a una migliore previsione della malattia rispetto a un modello a target singolo a causa di alcune caratteristiche che aiutano a riconoscere target diversi.

  • 01:00:00 In questa sezione del video, il relatore discute i vantaggi della costruzione di modelli che prevedono più cose e incoraggia gli spettatori a sperimentare modelli su piccoli set di dati. Introduce anche il notebook Collaborative Filtering Deep Dive, che utilizza un set di dati di valutazioni dei film per insegnare il concetto di sistemi di raccomandazione. Spiega che questo tipo di dati è comune in settori come i sistemi di raccomandazione e fornisce un esempio di tabulazione incrociata per comprendere meglio il set di dati. L'oratore si prende quindi una pausa prima di tuffarsi nel taccuino successivo.

  • 01:05:00 In questa sezione, il relatore spiega come colmare le lacune in un set di dati di filtraggio collaborativo. Il filtraggio collaborativo aiuta a consigliare un prodotto a un utente utilizzando i dati raccolti da molti utenti. Per capire se a un utente potrebbe piacere un determinato film, il relatore propone un metodo per moltiplicare i valori corrispondenti delle preferenze dell'utente e il tipo di film attraverso l'analisi vettoriale. Tuttavia, poiché non ci viene fornita alcuna informazione su utenti o film, l'oratore suggerisce di creare fattori latenti per riempire i punti dati mancanti. Utilizzando presunti fattori latenti, l'oratore propone di utilizzare SGD per trovare la correlazione e generare ipotesi.

  • 01:10:00 In questa sezione, il video descrive come utilizzare la moltiplicazione di matrici per prevedere le valutazioni dei film per gli utenti in base alle loro valutazioni storiche. Il tutorial assegna valori casuali per fattori latenti per film e utenti ed esegue il prodotto scalare per prevedere le valutazioni. Viene quindi calcolata una funzione di perdita e l'ottimizzazione viene eseguita utilizzando lo strumento Data Solver. Il video dimostra che le valutazioni previste sono migliorate confrontandole con le valutazioni effettive dopo l'ottimizzazione. Vengono inoltre introdotte la tecnica di completamento della matrice e il filtraggio collaborativo, in cui agli utenti con gusti simili vengono consigliati film simili.

  • 01:15:00 In questa sezione, il video illustra l'utilizzo del filtraggio collaborativo e dei prodotti punto in PyTorch. Il coseno dell'angolo tra due vettori può approssimare la correlazione e sono gli stessi una volta normalizzati. Excel viene utilizzato per spiegare i calcoli necessari in PyTorch. Il video rileva inoltre che gli incorporamenti, spesso considerati uno strumento matematico complesso, sono in realtà array che vengono utilizzati per cercare le cose. Il video cerca di abbattere il gergo confuso per rendere il deep learning più facile da capire per tutti.

  • 01:20:00 In questa sezione, Jeremy spiega come utilizzare i caricatori di dati di filtraggio collaborativo in PyTorch per lavorare con i dati di classificazione dei film. Unisce la tabella dei film con la tabella delle valutazioni per ottenere l'ID utente e il nome del film. La funzione CollabDataLoaders viene utilizzata per caricare i dati dal frame di dati con colonne di classificazione, ID utente e titolo dell'elemento. Quindi, crea fattori utente e film utilizzando una matrice di numeri casuali, dove il loro numero di colonne è uguale al numero di fattori che desidera creare. Dice anche che usa una formula predeterminata per determinare il numero di fattori, che è derivata dalla sua intuizione e testata adattando una funzione.

  • 01:25:00 In questa sezione, l'oratore spiega che un vettore con codifica one-hot può essere utilizzato per cercare un numero di indice nel vettore, che equivale a prendere il prodotto scalare di un vettore con codifica one-hot con qualcosa. Gli incorporamenti vengono quindi introdotti come scorciatoia computazionale per moltiplicare qualcosa per un vettore con codifica one-hot, consentendo un'accelerazione nell'esecuzione di moltiplicatori di matrici con variabili fittizie. Il relatore introduce anche la creazione di un modello Pytorch, che è una classe che include una superclasse chiamata Modulo che fornisce alcune funzionalità aggiuntive. L'oggetto dot product viene utilizzato come esempio di come creare un modello, che chiama il metodo dunder init e crea incorporamenti di utenti per fattori e filmati per vettori.

  • 01:30:00 In questa sezione, l'istruttore spiega come utilizzare PyTorch per chiamare un metodo chiamato "forward" per calcolare il modello. L'oggetto stesso ei dati su cui viene calcolato vengono passati in "forward". L'utilizzo del prodotto scalare e il passaggio dei dati tramite PyTorch è molto più rapido rispetto all'utilizzo di Excel. Tuttavia, il modello non funziona bene poiché, ad esempio, prevede valori superiori al valore più alto possibile mentre nessuno ha valutato un film al di sotto di uno. L'istruttore rimedia a questo utilizzando la funzione sigmoide per schiacciare la previsione in un intervallo compreso tra zero e 5,5. Nonostante questo cambiamento, la perdita non migliora considerevolmente, ma l'istruttore introduce una nuova osservazione di alcuni utenti con valutazioni elevate, suggerendo che il coinvolgimento degli utenti potrebbe migliorare il modello.

  • 01:35:00 In questa sezione, il relatore mostra come aggiungere pregiudizi alla matrice utilizzata nel modello di raccomandazione del film. Aggiungendo questi pregiudizi, è possibile differenziare gli utenti che tendono a dare valutazioni più basse o più alte. Il relatore discute anche su come evitare l'overfitting utilizzando il decadimento del peso o la regolarizzazione L2. Il relatore spiega che ciò può essere ottenuto aggiungendo la somma dei pesi al quadrato alla funzione di perdita. Nel complesso, la sezione fornisce un'utile introduzione al tema dei bias e della regolarizzazione nei modelli di deep learning.

  • 01:40:00 In questa sezione, il video discute l'uso del decadimento del peso come forma di regolarizzazione per prevenire l'overfitting nei modelli di deep learning. Trovando la giusta combinazione di pesi che non sono troppo alti, ma abbastanza alti da essere utili per la previsione, il modello può ottenere il valore più basso possibile della funzione di perdita. Il coefficiente di decadimento del peso può essere passato nel metodo di adattamento e le impostazioni predefinite vanno normalmente bene per le applicazioni di visione, ma per il filtraggio tabulare e collaborativo, gli utenti dovrebbero provare alcuni multipli di 10 per vedere cosa dà il miglior risultato. La regolarizzazione consiste nel rendere il modello non più complesso di quanto dovrebbe essere, con i valori più elevati di decadimento del peso che riducono l'overfitting ma riducono anche la capacità del modello di fare buone previsioni.

  • 01:45:00 In questa sezione, Jeremy e John discutono l'argomento della ricerca di iperparametri e come viene spesso utilizzata nella creazione di singoli modelli. Tuttavia, non ci sono regole diverse dalla regola empirica di Jeremy quando si tratta di eseguire un'esplorazione per gli iperparametri. In risposta a una domanda sulla possibilità di creare sistemi di raccomandazione basati sulle valutazioni medie dell'esperienza degli utenti anziché sul filtro collaborativo, Jeremy spiega che non sarebbe l'ideale se tutto ciò che si ha è la cronologia degli acquisti. Invece, sono necessari dati granulari come informazioni demografiche sugli utenti e metadati sui prodotti per formulare raccomandazioni accurate.
 

Lezione 8 - Deep Learning pratico per programmatori 2022



Lezione 8 - Deep Learning pratico per programmatori 2022

Questo video tratta le basi del deep learning per i programmatori. Spiega come creare parametri per modelli di deep learning utilizzando la libreria Pytorch, come utilizzare PCA per ridurre il numero di fattori in un set di dati e come utilizzare una rete neurale per prevedere il prezzo di vendita all'asta di attrezzature pesanti industriali.

Questo video di YouTube offre una panoramica del deep learning per i programmatori. L'oratore spiega che la tenacia è importante in questo campo e consiglia che se vuoi avere successo, dovresti andare avanti finché qualcosa non è finito. Raccomanda inoltre di aiutare altri principianti su forums.fast.ai.

  • 00:00:00 In questa lezione, Pytorch si occupa di creare e gestire i parametri per una rete neurale, assicurandosi automaticamente che i coefficienti e i pesi siano inizializzati nel modo corretto. Ciò evita all'utente di dover ricordare queste informazioni o scrivere codice per farlo.

  • 00:05:00 Questo video spiega come creare parametri per modelli di deep learning utilizzando la libreria Pytorch. Pytorch inizializzerà automaticamente questi parametri in base a una distribuzione generata casualmente.

  • 00:10:00 Questo video mostra come creare un livello di incorporamento Pytorch da zero, utilizzando lo stesso codice e gli stessi concetti dell'originale. Il video mostra quindi come il livello predice le preferenze del film osservando le preferenze del film passate.

  • 00:15:00 Il video mostra come utilizzare l'applicazione di apprendimento collaborativo fast.ai per prevedere quale film potrebbe piacere a un utente. L'applicazione utilizza fattori latenti ( film e fattori ) per calcolare il pregiudizio di un utente, che viene quindi utilizzato per prevedere quale film potrebbe piacere all'utente.

  • 00:20:00 Questo video spiega come utilizzare la PCA per ridurre il numero di fattori in un set di dati. Copre anche il problema del bootstrap, che è la questione di come consigliare nuovi prodotti ai clienti quando non si ha una storia precedente con loro.

  • 00:25:00 Questo video illustra le basi del deep learning per i programmatori, incluso un modello sequenziale, come utilizzare la funzionalità di Pytorch per creare facilmente un modello e come adattare il modello a uno studente collaborativo. Jona pone al presentatore una domanda sulla questione dei pregiudizi nei sistemi di filtraggio collaborativo e il presentatore fornisce una risposta generale sul problema.

  • 00:30:00 In questo video, Jeremy spiega come funzionano gli incorporamenti nel filtraggio collaborativo e nella PNL e come possono essere utilizzati per interpretare le reti neurali.

  • 00:35:00 In questo video, l'autore dimostra come utilizzare una rete neurale per prevedere il prezzo di vendita all'asta di attrezzature industriali pesanti, utilizzando una foresta casuale e un apprendimento tabulare. L'autore osserva che la rete neurale creata utilizzando il Tabular Learner è quasi identica alla rete neurale creata manualmente.

  • 00:40:00 Le reti neurali possono essere pensate come un tipo di algoritmo di apprendimento automatico che accetta i dati come input e li utilizza per creare previsioni o output. Le reti neurali sono composte da strati di nodi (chiamati neuroni), che sono interconnessi per creare un grafico. Gli input a una rete neurale possono essere categorici (ad es. una categoria come automobili o fiori) o continui (ad es. un numero). Le reti neurali possono essere utilizzate per prevedere gli esiti di risultati diversi (ad es. vendite in negozi diversi) o per indovinare il contenuto di un nuovo input (ad es. la posizione geografica di un dato insieme di punti dati).

  • 00:45:00 In questo video impariamo a conoscere le convoluzioni, che sono un tipo di moltiplicazione di matrici utilizzato nelle reti neurali convoluzionali. Ne vediamo un esempio in azione e poi discutiamo su come creare un rilevatore del bordo superiore utilizzando reti neurali convoluzionali.

  • 00:50:00 Il video spiega come eseguire una convoluzione, un'operazione matematica che prende due array di dati e combina i loro elementi, producendo un risultato che di solito è più alto sul lato sinistro dell'array che sul lato destro. Viene eseguita una convoluzione su un kernel 3 per 3, che viene ripetuta più volte per produrre uno strato di deep learning.

  • 00:55:00 Il video spiega come funziona il deep learning mostrando come due filtri, uno per i bordi orizzontali e uno per i bordi verticali, vengono combinati per creare un'unica attivazione per il riconoscimento dei numeri. Il modo più vecchio di farlo, che utilizzava il max pooling, ha comportato un minor numero di attivazioni e alla fine ne è rimasta una. Il modo più nuovo, che utilizza una tecnica chiamata "Max Pooling con finestre scorrevoli", continua fino a quando non vengono utilizzate tutte le attivazioni e produce un risultato più accurato.

  • 01:00:00 In questo video, il presentatore spiega come avviene il deep learning nel 21° secolo. Oggi il deep learning viene svolto in modo diverso rispetto a 10 anni fa e il presentatore fornisce un esempio di come funziona questo cambiamento. Invece di Max Pooling, gli algoritmi di deep learning ora utilizzano Stride 2 Convolution. Inoltre, i modelli di deep learning ora utilizzano un singolo layer denso alla fine anziché un layer Max Pool. Infine, il presentatore fornisce una breve panoramica di come fast.ai gestisce la formazione e la previsione del deep learning.

  • 01:05:00 In questo video di YouTube, l'autore mostra come la convoluzione sia uguale alla moltiplicazione di matrici e come calcolare una convoluzione utilizzando i due metodi. Discute anche Dropout, una tecnica per ridurre l'impatto del rumore casuale nelle reti neurali.

  • 01:10:00 In questa lezione, l'autore descrive come i Dropout Layer aiutano a evitare l'overfitting nelle reti neurali. Più dropout usi, meno buono sarà sui dati di allenamento, ma meglio dovrebbe generalizzare. Questo viene da un documento del gruppo di Geoffrey Hinton, che è stato respinto dalla principale conferenza sulle reti neurali, allora chiamata NIPS, ora chiamata NeurIPS.

  • 01:15:00 Questo video tratta le basi del deep learning, inclusi i tipi di reti neurali e come implementarle. Copre anche come utilizzare vari metodi di allenamento e come valutare le prestazioni di una rete neurale. Infine, il video fornisce consigli su come continuare ad apprendere il deep learning.

  • 01:20:00 Lucas chiede come rimanere motivati nell'apprendimento profondo e osserva che il settore si sta rapidamente orientando verso modelli più costosi e su larga scala. Si chiede se in futuro sarebbe ancora in grado di addestrare modelli ragionevoli con una singola GPU. Nel complesso, questo video fornisce una panoramica su come rimanere motivati nel deep learning e su come rimanere aggiornati con le ultime ricerche.

  • 01:25:00 Questo video di YouTube offre una breve panoramica del deep learning e della sua applicazione pratica alla programmazione. Il video illustra come il successo del deep learning di DawnBench sia dovuto all'uso del buon senso e dell'intelligenza da parte del team e di come chiunque possa applicare il deep learning ai propri domini problematici. Il video tocca anche l'importanza dell'istruzione formale nel campo dell'apprendimento automatico e il modo in cui le sessioni di programmazione dal vivo aiutano a rafforzare l'apprendimento.

  • 01:30:00 Jeremy ha condiviso alcuni trucchi per la produttività, tra cui passare il tempo imparando qualcosa di nuovo ogni giorno e non lavorare troppo.

  • 01:35:00 Questo video di YouTube è una lezione sul deep learning per programmatori e il relatore spiega che la tenacia è importante in questo campo. Consiglia che se vuoi avere successo, dovresti andare avanti fino a quando qualcosa non è finito, anche se non è della migliore qualità. Raccomanda inoltre di aiutare altri principianti su forums.fast.ai.
 

Lezione 9: Fondamenti del deep learning per una diffusione stabile, 2022



Lezione 9: Fondamenti del deep learning per una diffusione stabile, 2022

Questo video fornisce un'introduzione al deep learning, discutendo come funzionano i modelli di diffusione stabile e come possono essere applicati per generare nuove immagini. Il video include una dimostrazione di come utilizzare la libreria Diffusers per creare immagini che sembrano cifre scritte a mano. Introduce anche il concetto di diffusione stabile, che è un metodo per addestrare le reti neurali. L'idea di base è modificare gli input di una rete neurale per modificare l'output. In questo video, l'istruttore spiega come creare una rete neurale in grado di identificare correttamente le cifre scritte a mano da input rumorosi. Questo video illustra come addestrare un modello di machine learning utilizzando un algoritmo di deep learning. Il modello viene inizializzato con un insieme di variabili latenti (che rappresentano i dati) e utilizza un decodificatore per comprendere i dati grezzi. Successivamente, viene utilizzato un codificatore di testo per creare didascalie leggibili dalla macchina per i dati. Infine, una U-Net viene addestrata utilizzando le didascalie come input e i gradienti (la "funzione punteggio") vengono utilizzati per regolare i livelli di rumore nei dati di addestramento.

  • 00:00:00 In questa lezione viene spiegato come funziona il deep learning e come applicarlo ai problemi del mondo reale. Tuttavia, poiché è probabile che i concetti e le tecniche descritti in questa lezione diventino obsoleti nel prossimo futuro, la maggior parte del video viene dedicata all'insegnamento di come utilizzare la diffusione stabile, un algoritmo di deep learning che sarà ancora applicabile nel 2022.

  • 00:05:00 Il corso si sta muovendo rapidamente e nuovi documenti hanno dimostrato che il numero di passaggi necessari per generare un modello di diffusione stabile è sceso da mille a quattro o cinquantasei. Il corso si concentrerà sui fondamenti del modello e su come funziona.

  • 00:10:00 Il corso fornisce le basi del deep learning, discutendo come funzionano i modelli di diffusione stabile e fornendo risorse per un apprendimento più approfondito. Nel 2022, le GPU per il deep learning diventeranno più costose, quindi è importante prendere nota delle attuali raccomandazioni.

  • 00:15:00 Questo video di YouTube fornisce una breve introduzione al deep learning, delineando le basi di una diffusione stabile. L'autore fornisce una serie di taccuini Colab, "diffusion-nbs", che possono essere utilizzati per esplorare le basi del deep learning. Il video si conclude con la raccomandazione di giocare con il materiale fornito ed esplorare altre risorse.

  • 00:20:00 In questa lezione vengono trattate le basi del Deep Learning, incluso come creare un algoritmo di diffusione stabile. Successivamente, viene introdotta la libreria Diffusers e come salvare una pipeline affinché altri possano usarla.

  • 00:25:00 Questa lezione discute le basi del deep learning e come utilizzare Colab per creare immagini di alta qualità. I 51 passaggi necessari per creare un'immagine vengono confrontati con i tre o quattro passaggi disponibili a partire da ottobre 2022.

  • 00:30:00 In questa lezione, l'istruttore dimostra come creare immagini utilizzando il deep learning. Dimostra come utilizzare la "scala di guida" per controllare quanto siano astratte le immagini.

  • 00:35:00 Questo video spiega come utilizzare un modello di deep learning per generare immagini che assomiglino al disegno originale, utilizzando una tecnica chiamata diffusione stabile.

  • 00:40:00 In questa lezione, l'istruttore spiega come addestrare modelli di machine learning con l'algoritmo di diffusione stabile. Spiegano che l'algoritmo è utile per generare immagini simili agli esempi forniti. L'istruttore condivide anche un esempio di come è stato utilizzato l'algoritmo di diffusione stabile per generare un'immagine di un orsacchiotto simile all'orsacchiotto originale.

  • 00:45:00 In questo video, l'istruttore introduce il concetto di diffusione stabile, che è un approccio matematico equivalente all'approccio tradizionale ma concettualmente più semplice. Spiega che utilizzando una funzione in grado di determinare la probabilità che un'immagine sia una cifra scritta a mano, è possibile generare nuove immagini che assomigliano a cifre scritte a mano.

  • 00:50:00 In questo video, un istruttore spiega come calcolare il gradiente della probabilità che un'immagine immessa sia una cifra scritta a mano, utilizzando il deep learning.

  • 01:05:00 Questo video introduce l'idea di diffusione stabile, che è un metodo per addestrare le reti neurali. L'idea di base è modificare gli input di una rete neurale per modificare l'output.

  • 01:10:00 In questo video, l'istruttore spiega come creare una rete neurale in grado di identificare correttamente le cifre scritte a mano da input rumorosi. Prima discutono su come creare un set di dati di addestramento e poi spiegano come addestrare la rete neurale.

  • 01:15:00 Questo video introduce il concetto di deep learning e diffusione stabile, che è un modo per prevedere il rumore in un'immagine digitale. La rete neurale prevede il rumore e la funzione di perdita è semplice: prendere l'input e prevedere il rumore.

  • 01:20:00 La rete neurale in questo video sta cercando di prevedere il rumore che è stato aggiunto agli input. Lo fa sottraendo i bit che ritiene siano rumore dall'input. Dopo averlo fatto più volte, alla fine ottiene qualcosa che assomiglia più a una cifra.

  • 01:25:00 In questo video, l'istruttore mostra come una rete neurale, chiamata U-Net, può essere utilizzata per approssimare un'immagine. Il problema è che U-Net richiede molto spazio di archiviazione, il che può essere un problema per Google con la sua grande nuvola di TPU.

  • 01:30:00 Il video spiega come comprimere un'immagine utilizzando il deep learning. Innanzitutto, un'immagine viene compressa facendola passare attraverso uno strato di due strati convoluzionali. Questo processo viene ripetuto finché l'immagine non viene ridotta a una versione 64x64x4. Successivamente, l'immagine viene salvata come livello di rete neurale. Infine, la rete neurale viene utilizzata per comprimere immagini di diverse dimensioni.

  • 01:35:00 Il video illustra come utilizzare una funzione di perdita per insegnare a una rete neurale come comprimere un'immagine, ottenendo un file più piccolo. L'algoritmo di compressione funziona bene e può essere utilizzato per condividere immagini tra due persone.

  • 01:40:00 Questo video fornisce un tutorial su come addestrare un modello di deep learning utilizzando dati latenti. I latenti sono un tipo speciale di dati che non vengono osservati direttamente e vengono utilizzati per addestrare un modello di deep learning. I latenti vengono creati codificando i pixel di un'immagine utilizzando una rete neurale. Il processo di codifica crea una rappresentazione latente dell'immagine. Il decodificatore utilizza questa rappresentazione latente per generare l'immagine originale.

  • 01:45:00 Questo video spiega come una rete neurale può imparare a prevedere meglio il rumore sfruttando il fatto che sa qual era l'immagine originale. Questo è utile perché, ad esempio, quando viene inserito il numero 3, il modello dirà che il rumore è tutto ciò che non rappresenta il numero 3.

  • 01:50:00 Il video spiega come utilizzare due reti neurali per codificare testo e immagini. La prima rete neurale viene utilizzata per codificare il testo e la seconda rete neurale viene utilizzata per codificare le immagini. L'obiettivo è che le due reti producano output simili per un dato input. La somiglianza degli output è determinata dal prodotto scalare delle caratteristiche dell'input e delle caratteristiche dell'output.

  • 01:55:00 Questo video spiega come creare un codificatore di testo CLIP, che è un tipo di modello di apprendimento automatico in grado di produrre incorporamenti simili per input di testo simili. Questo è importante perché consente il riconoscimento e la sintesi multimodale del testo.

  • 02:00:00 In questo video, l'istruttore spiega come addestrare un modello di machine learning utilizzando un algoritmo di deep learning. Il modello viene inizializzato con un insieme di variabili latenti (che rappresentano i dati) e utilizza un decodificatore per comprendere i dati grezzi. Successivamente, viene utilizzato un codificatore di testo per creare didascalie leggibili dalla macchina per i dati. Infine, una U-Net viene addestrata utilizzando le didascalie come input e i gradienti (la "funzione punteggio") vengono utilizzati per regolare i livelli di rumore nei dati di addestramento.

  • 02:05:00 In questo video, l'autore descrive come funzionano gli algoritmi di deep learning e come cercano di trovare l'ipotesi migliore per un'immagine latente (sconosciuta). L'autore descrive anche come modificare i parametri dell'algoritmo per migliorare i risultati.

  • 02:10:00 Il video illustra come i risolutori di equazioni differenziali, come gli ottimizzatori, utilizzano idee simili ai modelli di deep learning. Il video illustra come utilizzare la perdita percettiva e altre funzioni di perdita per migliorare l'accuratezza dei modelli di deep learning. Il video fornisce un'anteprima della lezione successiva, in cui verrà spiegato il codice per una pipeline di deep learning.

  • 02:15:00 Questo video discute alcune nuove direzioni di ricerca nel deep learning che potrebbero migliorare la stabilità e la diffusione della tecnologia.
 

Sfide nell'apprendimento profondo (Dr Razvan Pascanu - DeepMind)



Sfide nell'apprendimento profondo (Dr Razvan Pascanu - DeepMind)

Il Dr. Razvan Pascanu di DeepMind discute diverse sfide nel deep learning in questo video. Sottolinea l'importanza dell'adattabilità e dello spostamento dell'attenzione dalle metriche delle prestazioni e suggerisce che i limiti delle risorse computazionali nei sistemi di deep learning possono effettivamente essere utili. Inoltre, esplora le sfide dell'apprendimento continuo e il sottocampo dell'apprendimento automatico ad esso correlato, compreso l'impatto delle dimensioni e dell'architettura sulle prestazioni dei modelli di apprendimento profondo. Il Dott. Pascanu discute anche il ruolo della discesa del gradiente stocastico, l'importanza dei pregiudizi espliciti e il concetto di pre-formazione e l'aggiunta di pregiudizi induttivi nei modelli di apprendimento profondo.

Il Dr. Razvan Pascanu di DeepMind discute la questione dell'oblio nell'apprendimento profondo e come i modelli possono riprendersi da esso. Sebbene una parte della conoscenza possa ancora rimanere dopo che si è verificata la dimenticanza, è difficile determinare quante informazioni vengono perse. Il dottor Pascanu menziona come i recenti documenti sull'oblio mirato si siano concentrati sulla privacy dei dati, ma in questo settore sono necessarie ulteriori ricerche e attenzione.

  • 00:00:00 In questa sezione, il Dr. Razvan Pascanu discute le sue intuizioni sull'importanza dell'adattamento nell'apprendimento profondo. Nonostante l'enfasi sulle metriche delle prestazioni, Pascanu evidenzia gli effetti limitanti dell'ottimizzazione continua per questa singola misura. La mancanza di adattabilità nei sistemi fissi di fronte a cambiamenti imprevedibili nell'ambiente, l'attenzione a soluzioni valide per tutti, la mancanza di metriche prestazionali ben definite in scenari più complessi e il ridimensionamento dei sistemi per superare esclusivamente colli di bottiglia come dati limitati e risorse di calcolo sono alcuni dei problemi che richiedono uno spostamento dell'attenzione verso l'adattamento nell'apprendimento profondo.

  • 00:05:00 In questa sezione, il dott. Razvan Pascanu discute i limiti di concentrarsi esclusivamente sulle prestazioni nel deep learning e suggerisce di esplorare sistemi che possono adattarsi continuamente al cambiamento. Sottolinea i problemi di copertura e rappresentatività dei dati durante l'apprendimento su set di dati di grandi dimensioni, nonché la sfida di valutare la capacità di generalizzazione fuori distribuzione di un sistema. Pascanu suggerisce che pensare all'adattabilità cambia la prospettiva e può aiutare ad affrontare alcuni di questi problemi. Cita l'argomento di Thomas Griffiths secondo cui il motivo per cui non riusciamo a capire certe mosse fatte da AlphaGo è perché tendiamo a scomporre i problemi in sotto-obiettivi, mentre l'agente si preoccupa solo della performance finale. Pascanu conclude che cambiare prospettiva potrebbe non risolvere tutti i problemi, ma potrebbe portare a nuove intuizioni e approcci.

  • 00:10:00 In questa sezione, il Dr. Pascanu discute l'idea che le limitazioni possono essere utili nei sistemi di deep learning. Mentre gli esseri umani hanno limiti cognitivi che modellano il modo in cui pensiamo, i sistemi di apprendimento automatico hanno limiti computazionali che modellano il modo in cui apprendono. Se pensiamo alle limitazioni come a un ostacolo che deve essere superato, potremmo perdere i vantaggi di queste limitazioni. Limitare i budget computazionali può costringere il sistema a trovare soluzioni combinatorie, che possono portare a risultati migliori. Il dottor Pascanu ritiene che invece di concentrarsi esclusivamente sulle prestazioni, dovremmo anche tenere conto del costo dell'apprendimento, del costo dell'inferenza e della quantità di informazioni codificate. Tuttavia, ci sono ancora sfide da superare in termini di relazione tra distribuzione dei dati e punti dati, e il Dr. Pascanu sottolinea l'importanza di esplorare diversi strumenti come la teoria delle categorie per affrontare queste sfide.

  • 00:15:00 In questa sezione, il Dr. Razvan Pascanu-DeepMind discute perché l'apprendimento continuo è importante e i requisiti di un sistema che può apprendere continuamente in modo efficiente. Sottolinea che ci sono molti tipi di apprendimento continuo, rendendo difficile definire e individuare ogni problema specifico. Inoltre, la definizione di apprendimento continuo può anche creare contraddizioni e alcuni dei problemi diventano più visibili a seconda delle attività e dei parametri di riferimento utilizzati. Il dottor Pascanu-DeepMind suggerisce che un modo per radicare l'apprendimento continuo è concentrarsi su problemi reali come l'apprendimento continuo semi-supervisionato, che ha un'applicazione pratica, rendendo più facile vedere se si stanno facendo progressi. Un altro modo è concentrarsi sull'apprendimento per rinforzo.

  • 00:20:00 In questa sezione, il Dr. Razvan Pascanu discute le sfide dell'apprendimento continuo nell'apprendimento per rinforzo (RL) e le tecniche che sono state sviluppate finora per mitigare questo problema. Poiché i dati in RL non sono stazionari, è necessario affrontare l'apprendimento continuo per far funzionare le approssimazioni di funzioni. Sono state sviluppate diverse tecniche basate sui metodi della forza bruta come i buffer di riproduzione per prevenire l'oblio catastrofico, la lega di esperti in Starcraft e il gioco delle vendite in AlphaGo. Tuttavia, questi metodi possono diventare costosi e c'è sempre la necessità di ridurre questi costi. Pascanu presenta un documento interessante che sostiene che RL e apprendimento supervisionato differiscono in quanto il trasferimento delle caratteristiche non aiuta tanto nei sistemi RL, e l'attenzione dovrebbe essere posta sul controllo della qualità dei dati e sulla centralizzazione dell'attore e del critico.

  • 00:25:00 In questa sezione, il relatore discute le sfide dell'apprendimento continuo, sottolineando che ci sono aspetti dell'allineamento continuo che l'apprendimento supervisionato non può emulare. Il relatore cita un documento che elenca queste differenze tra RL e apprendimento supervisionato. Inoltre, il relatore discute di come l'apprendimento continuo possa essere considerato un problema di tracciamento piuttosto che una convergenza a un punto. Il relatore menziona la perdita di plasticità che si verifica durante la messa a punto di nuovi dati e come ciò possa influire sulla generalizzazione. Infine, il relatore discute l'assegnazione del credito nelle reti neurali e il modo in cui il gradiente viene calcolato in modo indipendente per ciascun peso, il che può causare voti contrastanti che influiscono sulla media.

  • 00:30:00 In questa sezione del video, il Dr. Razvan Pascanu parla dell'apprendimento al volo, che è simile a un gioco di tiro alla fune in cui ogni esempio esercita una forza sul peso e l'apprendimento avviene quando l'equilibrio è raggiunta tra queste forze. I dati di identificazione sono essenziali in questo processo in quanto garantiscono che tutte le forze siano presenti. Inoltre, l'apprendimento insegna indirettamente la conoscenza, con vari concetti correlati appresi simultaneamente. Si suggerisce che la dinamica di apprendimento, l'ottimizzatore e il middleware di automazione del gioco possano essere migliorati per creare un processo di apprendimento più efficiente per ottenere più conoscenza da meno dati.

  • 00:35:00 In questa sezione, il Dr. Razvan Pascanu di DeepMind discute le sfide nel sottocampo dell'apprendimento automatico noto come apprendimento continuo, che implica il tentativo di insegnare a un sistema cose nuove senza che dimentichi ciò che ha appreso in precedenza. Il campo è sottospecificato, i parametri di riferimento non sono ben definiti e ci sono disaccordi su ciò che interessa alle persone. Un problema è la qualità dei dati e il compromesso tra apprendimento e dimenticanza, che dipende fortemente da come viene definito il benchmark. L'obiettivo è trovare punti di riferimento più naturali, ma anche la definizione di "naturale" non è concordata.

  • 00:40:00 In questa sezione, il Dr. Razvan Pascanu discute il concetto di sistemi AGI e la loro relazione con l'intelligenza umana. Spiega che sebbene costruire un sistema AGI che assomigli agli umani possa essere desiderabile per facilità di interpretazione, non è necessario. I sotto-obiettivi utilizzati nell'apprendimento AGI sono efficienti e aiutano nella generalizzazione compositiva, consentendo un apprendimento più rapido di cose nuove. Pascanu discute anche di come i pregiudizi impliciti dei modelli di deep learning possano portare a errori e di come i pregiudizi espliciti possano essere utilizzati per migliorare i modelli. Fornisce un esempio di come l'apprendimento continuo possa essere migliorato con l'uso di sistemi sovraparametrizzati nell'area di curvatura molto bassa.

  • 00:45:00 In questa sezione del video, il Dr. Razvan Pascanu discute l'impatto delle dimensioni e dell'architettura di un modello sulle sue prestazioni nel deep learning. Osserva che la sola scala ha un impatto significativo sulla capacità di un sistema di dimenticare e la scelta dell'architettura giusta fa un'enorme differenza. Il campo in genere ignora l'impatto delle scelte architettoniche e spesso confronta le architetture in modo scorretto. Il Dr. Pascanu evidenzia anche il ruolo dell'ottimizzazione nel deep learning e suggerisce che l'eccessiva parametrizzazione si traduce in molte soluzioni con zero errori di addestramento. Man mano che il numero di soluzioni esplode, la soluzione più vicina all'inizializzazione converge e il sistema dipende ancora dalle condizioni di inizializzazione. Cita esempi di lavori di ricerca che mostrano che la superficie bassa può avere qualsiasi struttura ed essere arbitrariamente complicata. Infine, spiega che res net funziona bene grazie alla connessione skip che utilizza per modificare il modo in cui i gradienti scorrono nel sistema.

  • 00:50:00 In questa sezione, il Dr. Razvan Pascanu parla di alcuni risultati recenti che mostrano i pregiudizi impliciti nella discesa del gradiente stocastico (SGD) e l'importanza dei pregiudizi espliciti. Per quanto riguarda SGD, si pensava tradizionalmente che il rumore in SGD aiutasse a sfuggire a minimi netti, ma si scopre che c'è un pregiudizio implicito nel regolarizzatore utilizzato in SGD. Inoltre, il rumore di aumento dei dati è dannoso e hanno scoperto che la media del gradiente su diversi aumenti di dati può ridurre questo rumore. Inoltre, i pregiudizi sono estremamente importanti e una leggera modifica nell'aumento dei dati può portare a enormi miglioramenti delle prestazioni. Hanno anche esplorato l'idea di diverse inizializzazioni e come possono influenzare la suddivisione dello spazio che è parte integrante della soluzione del problema. Infine, anche l'uso di pregiudizi espliciti come la pre-formazione porta a miglioramenti significativi.

  • 00:55:00 In questa sezione, il Dr. Razvan Pascanu discute il concetto di pre-formazione e l'aggiunta di pregiudizi induttivi nei modelli di deep learning. Spiega che la pre-formazione può aiutare a garantire che le informazioni possano essere trasmesse correttamente tra i nodi e può portare a un miglioramento significativo dei dispositivi esclusivi. Inoltre, il Dr. Pascanu descrive un approccio unico per aggiungere pregiudizi induttivi modellando la superficie di perdita piuttosto che aggiungendo un termine regolarizzatore, che può aiutare i pesi a bloccarsi a zero e migliorare l'efficienza dell'apprendimento. Affronta anche questioni relative all'oblio catastrofico e alla sfida della scomposizione dei problemi nell'apprendimento automatico.

  • 01:00:00 In questa sezione, il dott. Pascanu discute l'idea dell'oblio nell'apprendimento profondo e come i modelli sono in grado di riprendersi da esso. Suggerisce che c'è ancora della conoscenza nascosta anche dopo che un modello ha dimenticato certe cose, ma è difficile determinare quanta conoscenza sia effettivamente persa. Il dottor Pascanu menziona i prossimi documenti sull'oblio mirato, in cui alcuni punti dati vengono rimossi dal modello per proteggere la privacy, ma ritiene che siano necessarie ulteriori ricerche in quest'area.
 

CS 198-126: Modern Computer Vision Fall 2022 (Università della California, Berkeley) Lezione 1 - Introduzione all'apprendimento automatico



CS 198-126: Lezione 1 - Introduzione al Machine Learning

In questa lezione sull'apprendimento automatico, l'istruttore copre un'ampia gamma di argomenti, tra cui un'introduzione al corso, una panoramica dell'apprendimento automatico, diversi tipi di apprendimento automatico, pipeline di apprendimento automatico, etichettatura dei dati e funzione di perdita. Viene anche discusso il concetto di compromesso tra bias e varianza, overfitting e underfitting. L'istruttore sottolinea l'importanza di scegliere la funzione giusta durante il processo di apprendimento automatico e il ruolo degli iperparametri nel processo. L'obiettivo generale dell'apprendimento automatico è prevedere con precisione i nuovi dati, non solo adattare i dati di addestramento. Il docente incoraggia gli studenti a frequentare la lezione e a fare uno sforzo per conoscere il machine learning e il deep learning.

  • 00:00:00 In questa sezione, non c'è un contenuto adeguato da riassumere poiché l'estratto della trascrizione fornito sembra essere una conversazione tra l'oratore e il pubblico sulla situazione del microfono nella stanza.

  • 00:05:00 In questa sezione, ci viene presentata la serie di conferenze sull'apprendimento approfondito per la visione artificiale, presentata da Jake e dai suoi colleghi. All'inizio della lezione, Jake esamina la logistica del corso e delinea ciò di cui discuteranno nella prima lezione, che è una panoramica dell'apprendimento automatico e di come viene affrontato. Nonostante alcune difficoltà tecniche con l'attrezzatura di registrazione, Jake è entusiasta di insegnare in classe e inizia con una presentazione a se stesso e ai suoi colleghi.

  • 00:10:00 In questa sezione, l'istruttore presenta se stesso e il corso, che mira a fornire un campo di addestramento introduttivo alla visione artificiale e all'apprendimento approfondito per le matricole che non hanno avuto molta esposizione al materiale prima. Il corso tratterà argomenti come attività di visione artificiale, apprendimento da grandi set di dati di immagini, visione 3D e arte generativa. L'istruttore sottolinea che il corso dovrebbe essere divertente e interattivo e fornisce la logistica per il corso, come l'accesso alla registrazione di diapositive e compiti sul sito Web e l'utilizzo di Ed stem per interagire con gli studenti e il personale del corso. Il programma è disponibile anche sul sito web e il primo quiz si terrà alla fine del prossimo fine settimana.

  • 00:15:00 In questa sezione, l'istruttore fornisce un'introduzione all'apprendimento automatico (ML). Spiega che ML è il processo di utilizzo dei dati per capire come appare una funzione piuttosto che codificarla da soli. Con ML, i dati guidano le funzioni e l'istruttore fornisce un esempio di come una funzione per identificare il numero 7 da un'immagine sia molto più facile da creare con ML piuttosto che provare a farlo attraverso la codifica. L'istruttore spiega che ML implica la creazione di modelli in cui si crea la struttura di una funzione e si lasciano alcuni parametri che determineranno come si comporta la funzione, con i parametri appresi attraverso i dati. Viene discussa l'importanza di creare i giusti modelli di funzione, in quanto determina il successo del modello ML.

  • 00:20:00 In questa sezione della conferenza, il relatore spiega che la chiave dell'apprendimento automatico è capire il formato della funzione che il modello seguirà. Questa funzione è talvolta indicata come una classe di modello e alcune parti di essa sono vuote e indicate come parametri, che sono i valori che possiamo apprendere. Il relatore sottolinea che la scelta della funzione è di fondamentale importanza per ottenere risultati accurati. Il relatore fornisce anche una breve panoramica e categorizzazione dei diversi tipi di apprendimento automatico, tra cui l'apprendimento supervisionato, l'apprendimento non supervisionato e l'apprendimento per rinforzo, e introduce il vocabolario associato all'apprendimento automatico, tra cui funzione, parametri, pesi, pregiudizi, iperparametri e caratteristiche.

  • 00:25:00 In questa sezione, il docente spiega il processo di apprendimento automatico, concentrandosi sulla pipeline ML. Innanzitutto, è essenziale definire il problema, preparare i dati e selezionare il modello e la funzione di perdita. È inoltre essenziale etichettare i dati con un sistema di etichettatura a caldo per convertirli in numeri che il modello può riconoscere. Il docente sottolinea l'importanza di dati validi, osservando che l'input di dati scadenti si tradurrà in un output altrettanto scadente. Inoltre, discute l'importanza della vettorializzazione dei dati, assicurando che tutte le caratteristiche siano sulla stessa scala e rappresentate nell'ordine corretto.

  • 00:30:00 In questa sezione, il docente spiega come etichettare i dati per le applicazioni di machine learning e perché è importante rappresentare correttamente i dati. Viene utilizzata un'etichettatura a caldo in cui ogni etichetta è rappresentata da un vettore con uno nella posizione corrispondente e zeri altrove. La definizione di un modello e di una funzione di perdita è fondamentale durante l'addestramento di un modello di machine learning. Il modello dovrebbe essere adattato al problema e ai dati specifici e diversi modelli possono essere testati per vedere quale funziona meglio. La funzione di perdita misura l'efficacia del modello ed è auspicabile un valore basso.

  • 00:35:00 In questa sezione, il docente discute l'importanza di avere una metrica da ottimizzare nell'apprendimento automatico e introduce il concetto di una funzione di perdita per misurare la differenza tra l'output del modello e l'etichetta corretta. L'errore quadratico medio viene fornito come esempio di una funzione di perdita per calcolare la distanza tra l'output del modello e l'etichetta corretta. La funzione di perdita è un iperparametro che deve essere selezionato in anticipo. Inoltre, il docente parla della fase di addestramento, in cui l'algoritmo seleziona i valori ottimali per i parametri del modello utilizzando la funzione di perdita. Inoltre, viene utilizzato un set di test che il modello non ha mai visto prima per valutare le prestazioni del modello e determinare quanto bene il modello si generalizza ai nuovi dati. Infine, viene sottolineata l'importanza di garantire che il modello non si limiti a memorizzare i dati di addestramento, ma si generalizzi bene ai nuovi dati.

  • 00:40:00 In questa sezione, il concetto di compromesso tra bias e varianza viene discusso come un aspetto cruciale nell'apprendimento automatico che appare nell'apprendimento profondo e in tutte le altre classi di machine learning. Il bias si riferisce alla tendenza del modello verso determinate previsioni e la varianza è la capacità di un modello di catturare le complessità nei dati senza memorizzarli. Vengono forniti esempi di distorsione elevata e varianza elevata, in cui la distorsione elevata è un caso in cui un modello non è sufficientemente espressivo per apprendere accuratamente un set di dati, mentre la varianza elevata si riferisce all'overfitting. Il modello ideale è quello che cattura la complessità dei dati senza memorizzarli, ed è nota come zona di Riccioli d'oro. Il compromesso tra bias e varianza è un concetto fondamentale nell'apprendimento automatico che gli utenti dovrebbero conoscere poiché lo incontreranno in ogni corso di apprendimento automatico che frequentano.

  • 00:45:00 In questa sezione, il relatore discute il concetto di overfitting e underfitting nei modelli di machine learning. L'obiettivo dell'apprendimento automatico è modellare e prevedere accuratamente nuovi dati, non solo adattare i dati di addestramento. Se un modello è in grado di abbinare troppo da vicino i dati di addestramento ma non riesce a prevedere accuratamente i nuovi dati, allora si tratta di overfitting. D'altra parte, se un modello è troppo semplice e non è in grado di catturare i modelli nei dati, è poco adatto. L'approccio migliore è trovare un equilibrio tra l'adeguamento sufficiente ai dati di addestramento pur essendo in grado di generalizzare a nuovi dati. Ciò comporta tentativi ed errori con l'ottimizzazione degli iperparametri e la selezione di funzioni di perdita appropriate.

  • 00:50:00 In questa sezione, l'istruttore copre il concetto di bias e varianza nei modelli di machine learning. Un modello con bias elevato avrà una precisione simile tra i dati di addestramento e di test perché emette costantemente lo stesso output indipendentemente dall'input. D'altra parte, un modello ad alta varianza si adatta troppo strettamente ai dati, provocando una grande perdita quando viene testato su nuovi dati. L'istruttore sottolinea il compromesso tra complessità del modello e generalizzazione, che è importante comprendere quando si seleziona un modello per un'attività specifica. Infine, l'istruttore incoraggia gli studenti a frequentare le lezioni e a impegnarsi per apprendere l'apprendimento automatico e il deep learning, anche se potrebbe non essere la loro massima priorità.
Motivazione: