Apprendimento automatico e Reti Neurali - pagina 42

 

Lezione 11 --Ottimizzazione per il Deep Learning -- Frank Schneider



Numerics of ML 11 --Ottimizzazione per il Deep Learning -- Frank Schneider

Frank Schneider discute le sfide dell'ottimizzazione per il deep learning, sottolineando la complessità dell'addestramento delle reti neurali e l'importanza di selezionare i metodi e gli algoritmi di ottimizzazione giusti. Rileva il numero enorme di metodi disponibili e la difficoltà nel confrontare e confrontare diversi algoritmi. Schneider fornisce esempi reali di addestramento di successo di modelli linguistici di grandi dimensioni e la necessità di programmi di velocità di apprendimento non predefiniti e modifiche a metà volo per fare in modo che il modello venga addestrato correttamente. Schneider sottolinea l'importanza di fornire agli utenti maggiori informazioni su come utilizzare questi metodi e su come gli iperparametri influenzano il processo di formazione, nonché la creazione di esercizi di benchmarking per aiutare i professionisti a selezionare il metodo migliore per il loro caso d'uso specifico. Discute anche di metodi più recenti come Alpha e di come può essere sfruttato per guidare il processo di addestramento per una rete neurale.

Nella seconda parte del video sui numeri dell'ottimizzazione per il deep learning, Frank Schneider introduce il Cockpit dello strumento "Deep Debugger", che fornisce strumenti aggiuntivi per rilevare e risolvere problemi nel processo di addestramento, come bug di dati e blocchi di modelli. Spiega l'importanza di normalizzare i dati per iperparametri ottimali, la relazione tra i tassi di apprendimento e l'accuratezza dei test e le sfide dell'addestramento delle reti neurali con stocasticità. Schneider incoraggia gli studenti a lavorare per migliorare l'addestramento delle reti neurali considerando il gradiente come una distribuzione e sviluppando metodi autonomi migliori a lungo termine.

  • 00:00:00 In questa sezione, Frank Schneider introduce l'argomento dell'ottimizzazione del deep learning e fornisce una panoramica delle sfide coinvolte nell'addestramento delle reti neurali. Spiega che sebbene possa sembrare una semplice domanda su come addestrare le reti neurali, in realtà ci sono diversi modi per rispondere, comprese considerazioni su hardware e software. L'obiettivo principale della conferenza, tuttavia, è sui metodi e gli algoritmi utilizzati per addestrare le reti neurali e Schneider sottolinea che non esiste una soluzione valida per tutti. Fornisce un esempio reale di un gruppo al Midi che addestra un modello linguistico di grandi dimensioni, dimostrando che erano necessari un programma del tasso di apprendimento non predefinito e modifiche a metà volo al tasso di apprendimento per far sì che il modello si addestrasse con successo. Nel complesso, la conferenza di Schneider evidenzia la complessità dell'addestramento delle reti neurali e l'importanza di selezionare attentamente i metodi e gli algoritmi di ottimizzazione giusti.

  • 00:05:00 In questa sezione, il relatore discute le sfide dell'addestramento di una rete neurale in modo efficiente, citando l'esempio del diario di bordo fornito da OpenAI dedicato alla lotta per l'addestramento di un modello di linguaggio di grandi dimensioni. Il relatore afferma che attualmente non esistono metodi efficienti per addestrare le reti neurali, sebbene siano disponibili alcune linee guida e intuizioni. La conferenza si concentrerà sulla comprensione del motivo per cui l'addestramento di una rete neurale è così impegnativo e cosa si può fare per migliorare la situazione. Il relatore osserva che questo sarà diverso dalla loro solita struttura di lezione, in quanto esistono numerosi metodi allo stato dell'arte attuali e non è chiaro quale di questi metodi sia il più efficiente.

  • 00:10:00 In questa sezione, il relatore discute le idee sbagliate sull'apprendimento automatico come principalmente ottimizzazione. Mentre l'ottimizzazione implica la ricerca di un minimo in un panorama di perdita, l'obiettivo dell'apprendimento automatico è trovare una funzione che si adatti meglio ai dati di addestramento e si generalizzi bene ai nuovi dati. Ciò si ottiene mediante l'uso di una funzione di perdita che quantifica la differenza tra le previsioni del modello e gli output reali. Poiché la vera distribuzione dei dati è spesso sconosciuta, il modello viene addestrato su un campione finito di dati e il processo di ottimizzazione opera sulla perdita empirica. Il relatore sottolinea che l'apprendimento profondo comporta una maggiore complessità a causa di paesaggi dimensionali più elevati e ipotesi espressive.

  • 00:15:00 In questa sezione, Frank Schneider spiega che l'apprendimento automatico non è solo ottimizzazione, poiché la quantità da ottimizzare (perdita empirica) non è la stessa di cui l'algoritmo si preoccupa effettivamente (vera perdita). L'overfitting e la generalizzazione sono in realtà più complicati del semplice passaggio dal treno al test, come nelle attività di traduzione, in cui i modelli vengono addestrati sulla perdita di entropia incrociata ma valutati sulla qualità della traduzione. Di conseguenza, le persone hanno sviluppato vari metodi, come la discesa del gradiente stocastico, la varianza del momento, l'elica RMS e l'atomo, per tenere conto dei gradienti precedenti e capire come dovrebbero comportarsi in futuro. In totale, sono disponibili oltre 150 metodi per l'ottimizzazione e l'addestramento di algoritmi per il deep learning.

  • 00:20:00 In questa sezione, il relatore discute il numero enorme di metodi di ottimizzazione disponibili per l'addestramento della rete neurale, con oltre 100 metodi tra cui scegliere. Il problema non è solo scegliere un metodo, ma anche come usarlo in modo efficace. Ad esempio, anche se scegliamo un metodo di ottimizzazione come SGD o Adam, dobbiamo comunque decidere su iperparametri come il tasso di apprendimento e l'epsilon, che possono essere difficili da regolare. Il relatore suggerisce che abbiamo bisogno di parametri di riferimento adeguati per capire quali metodi sono necessari e migliorati e che la sfida attuale è definire cosa significhi "migliore" nel contesto del deep learning. Nel complesso, l'obiettivo dovrebbe essere quello di fornire agli utenti maggiori informazioni su come utilizzare questi metodi e su come gli iperparametri influenzano il processo di formazione.

  • 00:25:00 In questa sezione, Frank Schneider discute le sfide che sorgono quando si confrontano algoritmi di addestramento di deep learning, come l'ottimizzazione per problemi di rinforzo, GAN e modelli di linguaggio di grandi dimensioni. Diventa difficile determinare se le differenze nelle prestazioni sono significative, poiché potrebbe essere necessario eseguire questi metodi più volte per tenere conto della stocasticità. Testare tutti i casi può essere costoso e richiedere molto tempo, poiché la formazione deve essere ripetuta più volte per tutti i metodi generici. Il metodo utilizzato per addestrare deve essere analizzato quando si testano più problemi, richiedendo modifiche agli iperparametri, che lo rendono ancora più costoso. Inoltre, Schneider sottolinea che SGD e Adam sono famiglie di algoritmi che non possono essere confrontati direttamente senza specificare l'esatto set di parametri.

  • 00:30:00 In questa sezione, Frank Schneider discute il processo di identificazione dei metodi di formazione all'avanguardia per il deep learning. A causa dell'elevato numero di metodi di ottimizzazione disponibili, hanno dovuto limitarsi a testare solo 15 metodi di ottimizzazione su 8 diversi tipi di problemi che vanno da semplici problemi quadratici a classificazione di immagini su scala più ampia e modelli di reti neurali ricorrenti. Per simulare vari scenari, hanno testato questi metodi di ottimizzazione in quattro diverse impostazioni con budget diversi per l'ottimizzazione degli iperparametri, dall'ottimizzazione immediata con i parametri elevati predefiniti a budget più elevati per i professionisti del settore che hanno più risorse disponibili. L'obiettivo era determinare quali metodi di ottimizzazione si comportassero meglio in diversi scenari per aiutare i professionisti a selezionare il metodo migliore per il loro caso d'uso specifico.

  • 00:35:00 In questa sezione, Frank Schneider discute il processo di ottimizzazione per i modelli di deep learning. Spiega che per trovare il miglior metodo di ottimizzazione, hanno dovuto condurre oltre 50.000 esecuzioni individuali poiché c'erano 15 metodi di ottimizzazione e quattro programmi di velocità di apprendimento. Schneider osserva che non esisteva un chiaro metodo di formazione all'avanguardia per il deep learning poiché diversi metodi hanno funzionato bene su diversi problemi di test. Tuttavia, Adam ha mostrato risultati costantemente buoni e altri metodi derivati da Adam non hanno migliorato significativamente le prestazioni. Nel complesso, l'esercizio di benchmarking ha dimostrato che attualmente non esiste un metodo di ottimizzazione chiaro che funzioni per tutti i modelli di deep learning.

  • 00:40:00 In questa sezione, il relatore discute le difficoltà di determinare il metodo più efficace per l'addestramento di una rete neurale a causa dei vari metodi disponibili e della mancanza di un chiaro protocollo di addestramento. Il relatore discute la creazione del ml Commons Benchmark dal loro gruppo di lavoro sugli algoritmi, che è una competizione per misurare l'accelerazione dell'addestramento della rete neurale esclusivamente a causa di modifiche algoritmiche. L'obiettivo è costruire algoritmi più efficienti per accelerare l'addestramento della rete neurale. L'oratore discute anche della mancanza di informazioni disponibili su come utilizzare questi metodi e suggerisce che ulteriori informazioni potrebbero essere utilizzate per creare strumenti di debug per aiutare gli utenti nel frattempo, nella speranza di creare un metodo migliore che possa fare tutto automaticamente.

  • 00:45:00 In questa sezione, il relatore discute in che modo la maggior parte dei modelli di machine learning approssima il gradiente empirico scegliendo un singolo campione del set di dati di addestramento prima di fare un passo. Il gradiente mini-batch o il gradiente empirico è un campione del gradiente reale e la media sui singoli gradienti fornisce una stima del gradiente reale, sebbene la varianza dello stimatore non sia disponibile in PyTorch. Tuttavia, utilizzando pacchetti come backpack, gli utenti possono accedere ai singoli gradienti e alla loro varianza. Queste informazioni aggiuntive possono essere sfruttate per guidare il processo di addestramento per una rete neurale, ad esempio determinando se aumentare o diminuire il tasso di apprendimento. L'oratore fornisce un esempio in cui due curve di perdita possono sembrare uguali, ma l'ottimizzazione nel panorama delle perdite mostra che stanno accadendo due cose completamente diverse.

  • 00:50:00 In questa sezione, il relatore discute di come la curva di perdita può mostrare se una rete neurale si sta allenando o meno, ma non spiega perché o cosa fare per migliorarla. Il panorama della perdita ha decine di milioni di dimensioni, rendendo quasi impossibile esaminarlo. Tuttavia, il relatore introduce una quantità che aiuta a caratterizzare la procedura di ottimizzazione della rete neurale, chiamata alfa. Il valore alfa determina se la rete sta scendendo, minimizzando o superando il limite osservando la pendenza nella direzione in cui la rete sta avanzando, il che mostra se il panorama delle perdite sta salendo o scendendo.

  • 00:55:00 In questa sezione, Frank Schneider spiega come Alpha viene calcolato durante l'ottimizzazione della rete neurale. Alpha è un valore scalare spiegato nella sezione precedente come la direzione in cui si muove il modello per ottimizzare la rete neurale. Schneider spiega che la quantità scalare Alpha si basa sulla dimensione del passo rispetto alla perdita osservata in quella direzione. I valori Alpha negativi implicano un sottopasso, mentre i valori positivi implicano un superamento e uno significa passare direttamente all'altro lato della valle. Schneider spiega anche come condensando le informazioni in report significativi, gli sviluppatori possono creare strumenti di debug per il deep learning simili a quelli della programmazione classica.

  • 01:00:00 In questa sezione, Frank Schneider introduce il concetto di "Deep Debugger" con lo strumento "Cockpit", che aumenta il processo di addestramento dello spettatore con strumenti aggiuntivi, come un pilota su un aeroplano. Schneider mostra come Cockpit può fornire nuovi punti di vista nell'addestramento di una rete neurale, come la dimensione del passo, la distanza, la norma del gradiente e i test del gradiente, che possono aiutare a rilevare e risolvere problemi come bug di dati nel processo di addestramento. Con gli strumenti aggiuntivi, Cockpit può fornire agli utenti informazioni pertinenti e completare il grafico delle prestazioni essenziali.

  • 01:05:00 In questa sezione, il relatore discute in che modo l'utilizzo di dati normalizzati rispetto a dati grezzi nell'apprendimento approfondito influisce sulle prestazioni della rete neurale e sugli iperparametri ottimali. I dati grezzi, con valori di pixel compresi tra 0 e 255, possono portare a un istogramma dell'elemento gradiente meno comportato e quindi a iperparametri meno ottimali. Tuttavia, la normalizzazione dei dati può essere facilmente persa perché visivamente i dati avranno lo stesso aspetto. Un altro problema che può influire sull'addestramento è un blocco modello in cui una rete si allena bene mentre un'altra no, anche se hanno istogrammi di elementi gradiente simili. Utilizzando Cockpit, è possibile esaminare l'istogramma per ogni livello della rete, rivelando eventuali degenerazioni in tutto il modello. Questo aiuta a identificare i bug del modello che sono difficili da trovare attraverso tentativi ed errori. Infine, l'uso di Cockpit per l'ottimizzazione degli iperparametri può portare a nuove ricerche e a una migliore comprensione dei metodi.

  • 01:10:00 In questa sezione, Frank Schneider discute l'ottimizzazione per il deep learning e la relazione tra velocità di apprendimento, valori Alpha e accuratezza del test. Spiega che mentre tassi di apprendimento più elevati tendono a tradursi in valori Alpha più elevati, il che significa overshooting e potenzialmente fare passi troppo grandi, le corse con le migliori prestazioni sono in genere nella regione Alpha positiva. Questo ci dice che nell'addestramento della rete neurale potrebbe non essere sempre meglio minimizzare a ogni passaggio e che l'overshooting è necessario per ottenere le migliori prestazioni. Schneider condivide anche esempi tratti da documenti dell'Università di Toronto che illustrano l'importanza di trovare un equilibrio tra l'adozione di misure locali e globali per ottenere risultati ottimali.

  • 01:15:00 In questa sezione, Frank Schneider riconosce che l'addestramento delle reti neurali è un compito impegnativo che manca di un protocollo chiaro da seguire. Inoltre, ritiene che la stocasticità nel deep learning sia una fonte primaria di questa sfida, che fa sì che la formazione e l'ottimizzazione siano due cose diverse. Tuttavia, suggerisce che pensare al gradiente come a una distribuzione, tenendo conto della deviazione standard, delle varianze e delle confidenze, può consentire la costruzione di strumenti migliori e lo sviluppo di metodi autonomi migliori a lungo termine. Schneider incoraggia gli studenti interessati ad aiutare a migliorare la formazione delle reti neurali.
 

Lezione 12 -- Ottimizzazione di secondo ordine per il deep learning -- Lukas Tatzel



Numerics of ML 12 -- Ottimizzazione di secondo ordine per il deep learning -- Lukas Tatzel

In questo video, Lukas Tatzel spiega i metodi di ottimizzazione di secondo ordine per il deep learning e i loro potenziali vantaggi. Confronta le traiettorie ei tassi di convergenza di tre metodi di ottimizzazione - SGD, Adam e LBFGS - utilizzando l'esempio della funzione di Rosenberg in 2D. Tatzel osserva che il comportamento nervoso di SGD rende la convergenza più lenta rispetto ai passaggi ben informati di LBFGS. Introduce il passo di Newton come un metodo più veloce per l'ottimizzazione e ne discute i limiti, come la dipendenza dal numero di condizione. Tatzel spiega anche il concetto di matrice di Gauss-Newton generalizzata (GGN) come approssimazione dell'Assia per affrontare problemi mal condizionati. Inoltre, discute il problema della regione di fiducia, come trattare le funzioni obiettivo non convesse e l'approccio Hessian-free che utilizza CG per minimizzare le funzioni quadratiche.

Questa seconda parte del video esplora le tecniche di ottimizzazione di secondo ordine per il deep learning, tra cui BFGS e LBFGS, ottimizzazione Hessian-free e KFC. Il relatore spiega che l'approccio Hessian-free linearizza il modello utilizzando il prodotto Jacobian Vector, mentre KFC è una curvatura approssimativa basata su metriche di informazioni ufficiali. Tuttavia, con questi metodi possono verificarsi stocasticità e distorsioni e si consiglia lo smorzamento per risolvere questi problemi. Il relatore propone l'uso di algoritmi specializzati che possono utilizzare quantità più ricche come le distribuzioni per effettuare aggiornamenti e osserva che il problema fondamentale della stocasticità rimane irrisolto. Nel complesso, i metodi di ottimizzazione di secondo ordine offrono una soluzione parziale alle sfide del deep learning.

  • 00:00:00 In questa sezione, Lukas Tatzel introduce i metodi di ottimizzazione di secondo ordine come potenziale soluzione per il costoso e noioso processo di ottimizzazione del deep learning. Usa l'esempio della funzione Rosenberg in 2D per confrontare le traiettorie e i tassi di convergenza di tre ottimizzatori: SGD, Adam e LBFGS. Osserva che il comportamento saltellante di SGD rende la convergenza più lenta rispetto ai passaggi ben informati di LBFGS, che richiede meno di 10 passaggi per raggiungere la tolleranza di 10 ^ -8, rendendolo non solo più veloce in termini di passaggi ma anche in fase di esecuzione rispetto ad Adam e SGD. Tatzel solleva la questione se questi metodi possano essere applicati al deep learning ed esplora come funzionano e il loro potenziale.

  • 00:05:00 In questa sezione, Lukas Tatzel spiega le basi dell'ottimizzazione del deep learning, che implicano la previsione di un vettore di dimensione C e il confronto con l'etichetta effettiva per calcolare la funzione di perdita. L'obiettivo nel deep learning è trovare una configurazione del vettore dei parametri di rete Theta che riduca al minimo il rischio empirico. I metodi numerici utilizzati per questo includono la discesa del gradiente stocastico (SGD) che calcola una stima del gradiente su dati finiti utilizzando uno stimatore Monte Carlo. Tuttavia, i metodi basati sul gradiente sono sensibili al numero di condizione, che è il rapporto tra curvatura direzionale massima e minima.

  • 00:10:00 In questa sezione, Lukas Tatzel discute di come i metodi basati sul gradiente siano sensibili ai problemi di cattiva condizione nel deep learning. Spiega che il numero di condizione può essere un problema per i metodi basati sul gradiente se è grande, il che può portare a conversioni lente. Per migliorare gli aggiornamenti nei metodi basati sul gradiente, Tatzel suggerisce di ridimensionare il gradiente in entrambe le direzioni di curvatura grande e piccola con le rispettive curvature inverse. In questo modo è possibile introdurre metodi di secondo ordine per ridurre o eliminare la dipendenza dal numero di condizione.

  • 00:15:00 In questa sezione, Lukas Tatzel discute l'ottimizzazione di secondo ordine nel deep learning e introduce il concetto del passo di Newton. Questo metodo prevede l'approssimazione della funzione di perdita all'iterazione corrente con una funzione quadratica, dove si presume che l'Assia sia definita positiva. Calcolando i suoi gradienti e impostandolo a zero, il passo di Newton può essere derivato e utilizzato per scopi di minimizzazione. Questo metodo può essere molto più veloce dei metodi basati sul gradiente in determinate situazioni, ottenendo una convergenza quadratica locale se la funzione target è differenziabile due volte e l'Assia è continua di Lipschitz. Tatzel confronta visivamente la convergenza lineare e quadratica, dimostrando che i metodi di Newton possono essere molto veloci in determinate situazioni in quanto sono robusti contro problemi mal condizionati.

  • 00:20:00 In questa sezione, Lukas Tatzel discute i metodi di ottimizzazione di secondo ordine per il deep learning e le ragioni per cui non sono comunemente utilizzati. I metodi del secondo ordine possono essere più veloci dei metodi basati sul gradiente, ma richiedono l'accesso alla matrice hessiana, che può essere difficile da calcolare e memorizzare per problemi grandi e non convessi. Inoltre, la gestione della stocasticità nel calcolo dell'Assia può influire sulle prestazioni di questi metodi. Tatzel prosegue spiegando come affrontare queste sfide e offre una panoramica dei concetti alla base dei diversi metodi.

  • 00:25:00 In questa sezione, Lukas Tatzel spiega l'ottimizzazione di secondo ordine per il deep learning e i limiti del metodo di aggiornamento di Newton. Dimostra il calcolo della derivata di secondo ordine della funzione rispetto a Tau, che è una funzione quadratica con curvatura costante Lambda. La curvatura lungo un autovettore è l'autovalore e, se la curvatura è negativa, la quadratica è illimitata dal basso, rendendo privo di significato il metodo di aggiornamento di Newton. Per affrontare questo problema, Tatzel introduce la matrice di Gauss-Newton generalizzata (GGN), che è un'approssimazione semidefinita positiva dell'Assia e può fungere da sostituto di essa. Deriva il GGN dalla funzione di perdita applicando la regola di modifica alla divisione tra il vettore dei parametri ei risultati del modello.

  • 00:30:00 In questa sezione, Lukas Tatzel discute il concetto di ottimizzazione di secondo ordine per i modelli di deep learning. Spiega la regola del prodotto e come funziona, e come calcolare la derivata di una matrice applicando la regola della catena. Tatzel parla poi del GGN, una matrice definita positiva che trascura la curvatura dal modello, e dell'Assia, che contiene le derivate seconde del modello rispetto a Theta. Confronta il GGN e l'Assia e mostra che il GGN è definito positivo e simmetrico, rendendolo uno strumento utile per l'ottimizzazione nei modelli di deep learning.

  • 00:35:00 In questa sezione, Lukas Tatzel discute l'Assia e come determina se l'algoritmo GGN (Generalized Gauss-Newton) è semi-definito positivo. Per tutte le funzioni di perdita rilevanti, l'Assia è semidefinita positiva. Nei casi in cui la funzione di perdita è tale che la perdita viene calcolata come norma al quadrato tra gli output del modello e l'etichetta vera, l'Assia è uno scalare moltiplicato per la matrice identità, rendendola definita positiva. Lukas parla anche della matrice informativa di Fischer, che può essere utilizzata per definire un passaggio GGN ben definito. In questo caso, l'algoritmo GGN è la discesa più ripida nello spazio di distribuzione, dove lo spazio dei parametri è misurato dalla distanza tra due distribuzioni.

  • 00:40:00 In questa sezione, Lukas Tatzel spiega il problema della regione di fiducia nell'ottimizzazione di secondo ordine per il deep learning. Nel caso convesso, c'è ancora un problema con i modelli quadratici che sono arbitrariamente cattivi, portando alla necessità di smorzare e limitare l'aggiornamento dell'iterazione a trovarsi entro un certo raggio di fiducia. Aggiungendo Delta times identity alla matrice di curvatura, viene creato un passo di Newton modificato e, con lo smorzamento, è possibile controllare quanto siano conservativi gli aggiornamenti. Quando si sceglie il raggio, è più facile lavorare con lo smorzamento direttamente utilizzando l'euristica L-BFGS basata sul rapporto di riduzione tra la diminuzione della perdita attesa e quella effettiva.

  • 00:45:00 In questa sezione del video, Lukas Tatzel spiega come gestire le funzioni obiettivo non convesse nell'apprendimento approfondito calcolando matrici di curvatura semidefinite positive come il ggn e la fessura. È possibile interpretare queste matrici e fornire loro stimatori imparziali su dati finiti. L'euristica di smorzamento, come Living Back Mark, può essere utilizzata per controllare quanto dovrebbero essere conservativi gli aggiornamenti. Tuttavia, l'inversione di queste enormi matrici di curvatura è un problema a causa dei limiti di memoria. Per risolvere questo problema, è possibile prendere in prestito idee dall'algebra numerica, come approssimazioni di basso rango, metodi iterativi e approssimazioni strutturate. Tatzel discute quindi l'idea centrale di BFGS, che apprende gradualmente un'approssimazione all'Assia inversa dalle osservazioni del gradiente, con l'obiettivo di dedurre dalle osservazioni del gradiente come apparirà l'Assia inversa.

  • 00:50:00 In questa sezione, Lukas Tatzel spiega l'idea di utilizzare l'ottimizzazione di secondo ordine per il deep learning. La derivata seconda si ottiene prendendo un'approssimazione differenziale al gradiente, e questa viene poi trasferita al caso multidimensionale usando l'equazione della secante. L'obiettivo è approssimare l'Assia inversa, quindi le proprietà dell'Assia inversa effettiva vengono prese e richieste affinché l'approssimazione abbia le stesse proprietà. L'aggiornamento riguarda solo l'approssimazione precedente ei vettori SK e yk. L'approssimazione viene memorizzata utilizzando una finestra fissa di una certa dimensione fissa l, e con essa è ancora possibile ottenere una buona stima della curvatura.

  • 00:55:00 In questa sezione, Lukas Tatzel introduce i metodi di ottimizzazione di secondo ordine per il deep learning, concentrandosi in particolare sull'approccio Hessian-free. Questo approccio utilizza CG per minimizzare le funzioni quadratiche e richiede solo prodotti matrice-vettore, consentendo un calcolo efficiente senza memorizzare esplicitamente la matrice di curvatura. Il GGn viene utilizzato come metrica di curvatura e, utilizzando la stima Monte Carlo, è possibile calcolare le matrici per una data coppia input-output. Per moltiplicare in modo efficiente lo Jacobiano con un vettore, l'idea centrale è sostituire il prodotto del vettore Jacobiano con una derivata direzionale. Ciò consente un modo efficiente per calcolare il prodotto senza costruire esplicitamente le matrici.

  • 01:00:00 In questa sezione, il relatore discute l'ottimizzazione di secondo ordine per il deep learning, in particolare l'ottimizzazione Hessian-Free e le tecniche KFC. L'ottimizzazione Hessian-Free comporta la linearizzazione del modello approssimando F a theta più Delta Theta per F di theta più lo Jacobiano per Delta Theta e utilizzando il prodotto vettoriale Jacobiano. Tuttavia, questo approccio è numericamente instabile, quindi viene utilizzata un'approssimazione al prodotto vettoriale Jacobiano. D'altra parte, KFC è una curvatura approssimativa basata su metriche informative ufficiali che implicano due approssimazioni: l'approssimazione diagonale a blocchi e lo scambio delle operazioni di aspettativa e di cronaca dei prodotti. La struttura diagonale a blocchi rende banale l'inversione della matrice e l'approssimazione dell'aspettativa è ragionevole perché è difficile calcolare i prodotti cronici su due vettori.

  • 01:05:00 In questa sezione, Lukas Tatzel discute tre approcci all'accesso e all'inversione della matrice di curvatura, utilizzata nell'ottimizzazione di secondo ordine per il deep learning. Il primo metodo è BFGS e LBFGS, che utilizzano un'approssimazione di abbassamento dinamico dell'Assia e sono la scelta predefinita per piccoli problemi deterministici. Il secondo metodo è l'ottimizzatore senza Hessian, che è simile ai passaggi di Newton ma richiede poca memoria e più lavoro sequenziale. Tuttavia, ha problemi con le dimensioni mini-batch più grandi che utilizzano i layer Norm batch. L'ultimo metodo è KFC, che è una rappresentazione leggera della metrica dell'informazione dell'Assia e ampiamente utilizzata nella quantificazione dell'incertezza. L'ottimizzatore K-Fik è consigliato quando si ha a che fare con una memoria limitata, poiché memorizzare e invertire i componenti più piccoli del blocco è più facile e veloce che fare lo stesso con l'intera matrice.

  • 01:10:00 In questa sezione, Lukas Tatzel discute il problema della stocasticità durante il calcolo del passo di Newton, che comporta l'inversione dell'Assia e la sua applicazione al gradiente. Poiché si dispone solo di stime dell'Assia e del gradiente, anche se sono imparziali, il passo di Newton sarà comunque distorto. Tatzel fornisce un esempio intuitivo in 1D in cui l'aspettativa su 1/H hat non è la stessa di 1/H, mostrando che anche con una stima della curvatura, c'è ancora qualche incertezza durante la mappatura attraverso la funzione invertente. Ciò evidenzia la sfida di gestire la stocasticità nell'ottimizzazione di secondo ordine per il deep learning.

  • 01:15:00 In questa sezione, il relatore discute i pregiudizi e le instabilità che possono verificarsi nell'ottimizzazione di secondo ordine per il deep learning. Quando si stima la curvatura inversa, è possibile generare code pesanti, che si traducono in un'aspettativa che viene spostata al di sopra della media. Ciò porta a un passo di Newton complessivo che è troppo grande in termini di aspettativa. Inoltre, bias e instabilità possono essere presenti a causa di stime stocastiche o per caso quando un campione è vicino allo zero. Questi problemi possono essere risolti applicando lo smorzamento, che allontana la distribuzione da zero e mitiga potenziali distorsioni e instabilità.

  • 01:20:00 In questa sezione, Lukas Tatzel discute le sfide dell'utilizzo dello smorzamento come processo di ottimizzazione del ciclo esterno, che tratta tutte le direzioni allo stesso modo e potrebbe non essere un modo adatto per affrontare la complessità del processo di addestramento. Propone l'uso di algoritmi specializzati che possono utilizzare quantità più ricche come le distribuzioni per effettuare aggiornamenti e osserva che il problema fondamentale della stocasticità rimane irrisolto. Nel complesso, Tatzel suggerisce che i metodi di ottimizzazione di secondo ordine come BFGS, LBFJS, Heston free optimizer e KFC offrono una soluzione parziale alle sfide del deep learning, incluso il problema del condizionamento di Hill.
 

Lezione 13 -- L'incertezza nel Deep Learning -- Agustinus Kristiadi



Numerics of ML 13 -- L'incertezza nell'apprendimento profondo -- Agustinus Kristiadi

Il video discute l'incertezza nell'apprendimento profondo, in particolare nei pesi delle reti neurali, e l'importanza di incorporare l'incertezza dovuta al problema dell'eccessiva sicurezza asintotica, in cui le reti neurali forniscono previsioni ad alta fiducia per esempi fuori distribuzione che non dovrebbero essere classificati con certezza. Il video fornisce approfondimenti su come utilizzare le quantità di secondo ordine, in particolare le stime di curvatura, per ottenere l'incertezza nelle reti neurali profonde, utilizzando una distribuzione gaussiana per approssimare i pesi dell'ultimo strato e la matrice Hessiana per stimare la curvatura della rete neurale. Il video discute anche il formalismo bayesiano e le approssimazioni di LaPlace per la selezione di modelli e parametri di reti neurali.

Nella seconda parte della conferenza Agustinus Kristiadi discute vari modi per introdurre l'incertezza nei modelli di deep learning in questo video. Una tecnica prevede l'utilizzo di approssimazioni di Laplace linearizzate per trasformare una rete neurale in un modello gaussiano. Un altro approccio è la formazione fuori distribuzione, in cui si aggiunge l'incertezza nelle regioni che non sono coperte dal set di formazione originale. Kristiadi sottolinea l'importanza di aggiungere incertezza per prevenire un'eccessiva fiducia nel modello e suggerisce di utilizzare misure probabilistiche per evitare il costo di trovare il posteriore ideale. Queste tecniche saranno esplorate ulteriormente in un prossimo corso sull'apprendimento automatico probabilistico.

  • 00:00:00 In questa sezione, il relatore spiega l'argomento della lezione, che riguarda l'introduzione dell'incertezza nell'apprendimento automatico e come eseguire calcoli per raggiungere questo obiettivo. La lezione utilizza le intuizioni delle lezioni precedenti, in particolare nella risoluzione di integrali e nell'uso del deep learning bayesiano per ottenere incertezze. Il relatore discute quindi l'importanza delle incertezze nelle reti neurali profonde e il problema dell'eccessiva sicurezza asintotica, in cui la rete neurale fornisce previsioni ad alta fiducia per esempi fuori distribuzione che non dovrebbero essere classificati con tale certezza. La lezione mira a fornire approfondimenti su come utilizzare le quantità di secondo ordine, in particolare le stime di curvatura, per ottenere l'incertezza nelle reti neurali profonde.

  • 00:05:00 In questa sezione, Agustinus Kristiadi discute l'incertezza nell'apprendimento profondo, in particolare nelle reti di classificazione che utilizzano le non linearità ReLU. Presenta una proprietà fondamentale dei classificatori reali: se il livello logit è una combinazione lineare di livelli precedenti con non linearità ReLU, l'output della rete è ancora una funzione lineare a tratti, definita dalla combinazione di livelli precedenti. Allontanarsi dai dati di addestramento in questo spazio porta a una regione in cui il classificatore ha input lineare per l'output softmax e, con probabilità uno, il guadagno per ciascuna funzione di output lineare è diverso. Di conseguenza, spostarsi abbastanza lontano in queste regioni porterà a una confidenza arbitrariamente alta per una classe, che può essere osservata visivamente nel grafico di tre caratteristiche di output lineari in rosso.

  • 00:10:00 In questa sezione, Agustinus Kristiadi spiega la proprietà fondamentale dei classificatori reali che crea un'elevata confidenza in determinate classi e perché non può essere risolta semplicemente riaddestrando i pesi. La soluzione è aggiungere incertezza ai pesi della rete neurale e per fare ciò, abbiamo bisogno di un'interpretazione bayesiana della rete neurale, che può essere ottenuta massimizzando l'esponenziale della funzione minimizzata durante l'addestramento. Ciò significa che il deep learning sta già eseguendo l'inferenza bayesiana, ma viene calcolata solo la modalità del posteriore, il che può essere problematico. Un'impostazione comune per i problemi supervisionati con output continui è il regolarizzatore di perdita quadratica e decadimento del peso, che equivale a mettere una gaussiana a priori sui pesi e una verosimiglianza gaussiana sui dati.

  • 00:15:00 In questa sezione, il relatore discute l'incertezza nell'apprendimento profondo e l'interpretazione bayesiana delle reti neurali profonde. L'oratore osserva che la distribuzione a posteriori completa necessaria per le previsioni è intrattabile. Sebbene gli approcci Monte Carlo siano teoricamente fondati, richiedono molto tempo e possono svantaggiare coloro che eseguono l'inferenza del paziente. Pertanto, l'oratore sostiene il modo più economico possibile per fare integrali: la differenziazione automatica accoppiata con l'algebra lineare. Il relatore condivide il sorprendente risultato che qualsiasi misura approssimativa gaussiana anche solo dei pesi dell'ultimo strato della rete risolve già parzialmente il problema dell'eccessiva fiducia, come dimostrato in un teorema. L'oratore sottolinea che non importa se la distribuzione di probabilità sui pesi è corretta, l'aggiunta di qualsiasi misura di probabilità sui pesi può risolvere il problema di confidenza.

  • 00:20:00 In questa sezione, il relatore spiega come applicare una distribuzione gaussiana ai pesi dell'ultimo livello nel livello di classificazione di una rete neurale profonda per risolvere il problema dell'incertezza nella classificazione. L'oratore presuppone che qualsiasi covarianza della distribuzione gaussiana possa essere utilizzata perché non ha importanza, e la media della distribuzione è data dai pesi addestrati della rete neurale profonda. L'oratore utilizza quindi la distribuzione gaussiana per risolvere il problema della diapositiva precedente approssimando l'integrale del Max morbido su F di theta alla stella X. L'approssimazione di David Makai viene utilizzata per calcolare il soft Max sulla variabile derivata che ha la previsione media dell'output che la rete avrebbe altrimenti. Le linee blu nella visualizzazione raffigurante questa approssimazione sono separate da una, il che fornisce una soluzione all'incertezza nella classificazione.

  • 00:25:00 In questa sezione, Agustinus Kristiadi discute l'importanza dell'incertezza nell'apprendimento profondo, in particolare per quanto riguarda i pesi delle reti neurali. Sostiene che è fondamentale tenere conto del fatto che non conosciamo bene i pesi ed evitare di presumere che sappiamo qualcosa se non lo sappiamo, poiché può creare problemi. È possibile effettuare approssimazioni matematiche come la linearizzazione e l'utilizzo di una distribuzione gaussiana sui pesi, ed è stato dimostrato che finché siamo leggermente incerti, andrà bene. La scelta del Sigma può essere fatta con differenziazione automatica con stime di curvatura, che è il metodo più veloce ed economico.

  • 00:30:00 In questa sezione, Agustinus Kristiadi spiega come possiamo usare la matrice hessiana per formare un'approssimazione gaussiana dopo aver trovato la modalità della funzione di perdita attraverso il deep learning. La matrice Hessiana, che contiene la derivata di secondo ordine della funzione di perdita, viene utilizzata per costruire approssimazioni. Sebbene l'approssimazione gaussiana sia locale e non perfetta, è totalmente analitica, rendendola un'approssimazione favorevole. Per utilizzare questa approssimazione, abbiamo bisogno di una rete neurale addestrata e, una volta addestrata la rete, a quel punto possiamo ottenere l'Assia usando AutoDiff, che è un processo in forma chiusa che funziona.

  • 00:35:00 In questa sezione, il relatore discute il concetto di incertezza nell'apprendimento profondo e come valutarlo utilizzando la matrice hessiana. La matrice hessiana può essere calcolata dopo aver addestrato la rete neurale profonda e fornisce un modo per stimare l'incertezza senza aggiungere costi alla negoziazione della rete. Il relatore osserva inoltre che questo approccio consente di mantenere la stima puntuale, che può essere utile per applicazioni pratiche. Tuttavia, ci sono aspetti negativi come l'Assia che è costoso da calcolare e sono necessarie approssimazioni per renderlo trattabile. La matrice di Gauss-Newton generalizzata è una di queste approssimazioni che può essere utilizzata nella pratica.

  • 00:40:00 In questa sezione, Agustinus Kristiadi discute l'incertezza nell'apprendimento profondo e come l'Hessian di Gauss-Newton (GNG) può essere utilizzato per stimare la curvatura di una rete neurale. Spiega che il GNG è semi-definito positivo e ha una buona connessione con la linearizzazione, che può risultare in un modello trattabile se combinato con l'approssimazione di Laplace. Questo modello può essere utilizzato per la regressione e produce un processo gaussiano con la sua funzione media data dall'output della rete neurale.

  • 00:45:00 In questa sezione, il relatore discute l'incertezza nell'apprendimento profondo, in particolare nelle reti neurali. Notano che la funzione di varianza centrale è data trovando la modalità della funzione di perdita nello Jacobiano della rete, prendendo il prodotto scalare con l'inverso dell'Assia. Il relatore afferma che questo processo può essere utilizzato per la classificazione sotto forma di una semplice approssimazione sviluppata da David Pinkai. Il processo prevede la definizione della funzione di perdita, il calcolo dell'Hessiano della funzione di perdita e dello Jacobiano della rete addestrata rispetto ai pesi. Infine, combinando i due in un prodotto si ottiene una funzione predittiva per f di x star che è ancora non lineare in x ma lineare nello spazio dei pesi. Il relatore sottolinea che questo processo può aiutare a evitare l'eccessiva sicurezza, in particolare nei casi di classificazione.

  • 00:50:00 In questa sezione, Agustinus Kristiadi discute il formalismo bayesiano e come può essere utile nel deep learning. Linearizzando la rete nei suoi pesi e usando l'approssimazione di Laplace, possiamo ridurre l'integrale intrattabile sul posteriore a una forma semplificata del posteriore e della funzione di perdita. Questo processo può fornirci una misura di quanto bene il nostro modello si adatta ai dati, il che è utile per adattare parametri o aspetti del modello. Calcolando le prove per i dati, possiamo scegliere il modello con le prove più alte e scegliere quello più vicino ai dati.

  • 00:55:00 In questa sezione, il relatore discute come utilizzare le approssimazioni di LaPlace per selezionare modelli e parametri di una rete neurale. L'oratore spiega che l'Assia dipende dalla forma della funzione di perdita e che man mano che si aggiungono più strati, la funzione di perdita potrebbe restringersi, portando a un adattamento migliore. L'oratore mostra un grafico che dimostra che da due a quattro strati è probabilmente la scelta migliore. L'oratore discute anche di come il fattore Occam non sia così semplice come lo è per i processi gaussiani poiché l'Assia ha un effetto non banale su quanto bene il modello può spiegare i dati. Il relatore mostra quindi una visualizzazione di una rete neurale profonda con l'approssimazione di LaPlace di linearizzazione per un problema di classificazione e spiega come è possibile utilizzare un parametro di precisione precedente per influenzare l'affidabilità del modello. Infine, il relatore discute su come le approssimazioni di LaPlace possono essere utilizzate per selezionare scelte discrete come il numero di livelli o un parametro come la posizione precedente utilizzando la discesa del gradiente.

  • 01:00:00 In questa sezione, il relatore discute l'incertezza nell'apprendimento profondo e come può essere affrontata utilizzando approssimazioni di Laplace linearizzate. Questo metodo prevede l'utilizzo di un approccio probabilistico per determinare la posizione precedente dei livelli quando si seleziona il numero di livelli di una rete. Tuttavia, sebbene questo processo funzioni bene per selezionare una posizione precedente, potrebbe non funzionare altrettanto bene per altre attività, come la scelta del numero di livelli. Il relatore passa quindi a discutere l'approssimazione di Laplace linearizzata e come può essere utilizzata come strumento scatola nera per trasformare una rete neurale profonda in un modello gaussiano per affrontare l'incertezza. Infine, il relatore discute un modo per risolvere il problema con i modelli che non hanno incertezza sui loro pesi, il che comporta l'aggiunta di una semplice correzione alla rete.

  • 01:05:00 In questa sezione, Agustinus Kristiadi discute la questione dell'aggiunta di un numero illimitato di pesi per tenere conto dell'infinita complessità dei dati nelle reti neurali profonde. Spiega che l'aggiunta di un numero infinito di funzionalità risolverebbe il problema e mostra come tenere traccia del numero infinito di funzionalità non deve essere un compito costoso. Asintoticamente, l'incertezza diventa la massima entropia Cosa 1 su C, senza aggiungere ulteriore complessità al modello.

  • 01:10:00 In questa sezione, il relatore spiega come l'incertezza può essere aggiunta al deep learning per migliorare le previsioni, in particolare nelle aree in cui ci sono pochi dati di addestramento o sono presenti input contraddittori. L'approccio prevede l'addestramento della media della rete e quindi l'aggiunta di unità che non modificano la previsione del punto ma aggiungono incertezza, che può essere spostata e ridimensionata. Questa tecnica è chiamata addestramento fuori distribuzione e può essere ottenuta utilizzando una scala di lunghezza basata sull'ampiezza dei dati per definire un processo gaussiano approssimativo. Il costo dell'aggiunta dell'incertezza è trascurabile e aggiunge solo un backstop che riduce la fiducia se i dati sono lontani dai dati di addestramento.

  • 01:15:00 In questa sezione, il relatore discute su come introdurre l'incertezza in un modello di deep learning. Un modo per farlo è attraverso il training fuori distribuzione, in cui viene creato un nuovo set di dati con immagini che non contengono gli oggetti utilizzati nel set di training originale. La rete viene quindi addestrata per essere incerta in quelle regioni. Definendo una funzione di perdita che include la perdita fuori distribuzione, l'Assia della stima della curvatura della funzione di perdita in cui si trova la modalità della perdita può essere regolata per produrre la quantità desiderata di incertezza. Il relatore osserva inoltre che l'introduzione dell'incertezza è importante nel deep learning in quanto può aiutare a prevenire patologie e un'eccessiva fiducia nel modello.

  • 01:20:00 In questa sezione, il relatore discute il concetto di aggiungere incertezza a un classificatore senza modificarne la struttura fondamentale. La linearizzazione della rete nello spazio dei pesi può consentire che ciò accada e, calcolando lo Jacobiano e l'Assia della funzione di perdita, possiamo trasformare una rete neurale profonda in un processo gaussiano. L'aggiunta di funzionalità alla rete come la confidenza calibrata asintotica può essere eseguita con questa tecnica. Il relatore sottolinea l'importanza dell'addestramento probabilistico e l'uso di misure di probabilità nell'apprendimento automatico senza la necessità di un monitoraggio posteriore completo. Questo approccio può risolvere problemi come l'eccessiva fiducia evitando il costo di trovare il posteriore ideale. Infine, il relatore suggerisce che l'uso di queste tecniche sarà esplorato ulteriormente nel prossimo corso sull'apprendimento automatico probabilistico.
 

Lezione 14 -- Conclusione -- Philipp Hennig



Numeri di ML 14 -- Conclusione -- Philipp Hennig

Philipp Hennig fornisce un riassunto del corso "Numerics of Machine Learning", sottolineando l'importanza di risolvere problemi matematici nell'apprendimento automatico relativi all'analisi numerica, come l'integrazione, l'ottimizzazione, le equazioni differenziali e l'algebra lineare. Discute la complessità dell'esecuzione dell'algebra lineare su un set di dati e come si collega all'unità di elaborazione e al disco. Hennig copre anche argomenti come la gestione di insiemi di dati di dimensioni non banali, algoritmi per la risoluzione di sistemi lineari, la risoluzione di equazioni alle derivate parziali e la stima di integrali. Conclude riconoscendo la difficoltà nell'addestrare reti neurali profonde e la necessità di soluzioni per superare il problema della stocasticità.

Nella conclusione della sua serie di conferenze, Philipp Hennig sottolinea l'importanza di andare oltre il semplice addestramento dei modelli di apprendimento automatico e sapere quanto il modello sa e cosa non sa. Parla della stima della curvatura della funzione di perdita per costruire stime di incertezza per reti neurali profonde e dell'importanza di essere probabilistici ma non necessariamente applicare il teorema di Bayes in ogni caso a causa della complessità computazionale. Hennig sottolinea anche l'importanza del calcolo numerico nell'apprendimento automatico e la necessità di sviluppare nuove modalità di calcolo incentrate sui dati. Infine, chiede feedback sul corso e discute il prossimo esame.

  • 00:00:00 In questa sezione, Philipp Hennig fornisce un riepilogo dell'intero corso di Numerics of Machine Learning, che ritiene fondamentale a causa della variazione dei contenuti dei vari docenti. Spiega che l'apprendimento automatico implica essenzialmente la risoluzione di problemi matematici che non hanno soluzioni in forma chiusa rispetto all'IA classica, che coinvolge algoritmi. I problemi nell'apprendimento automatico sono correlati all'analisi numerica e includono integrazione, ottimizzazione, equazioni differenziali e algebra lineare. Hennig sottolinea l'importanza di comprendere la complessità dell'algebra lineare su un set di dati e come sia rilevante per l'unità di elaborazione e il disco.

  • 00:05:00 In questa sezione, Philipp Hennig discute il ruolo dell'algebra lineare nell'apprendimento automatico e in particolare nella regressione del processo gaussiano. Spiega che per apprendere una distribuzione predittiva, che ha una media e una covarianza, dobbiamo risolvere un sistema lineare di equazioni che comporta l'inversione di una matrice moltiplicata per un vettore. Esistono molti algoritmi per risolvere tali sistemi lineari, incluso il classico algoritmo chiamato decomposizione di Cholesky, che può essere visto come una procedura iterativa che costruisce l'inverso della matrice. Hennig osserva che questa approssimazione può essere utilizzata come stima per l'inverso della matrice, ma la sua qualità può variare a seconda dell'ordine dei dati.

  • 00:10:00 In questa sezione, Philipp Hennig spiega quanto sia linearmente costoso esaminare un set di dati in un ordine casuale e caricarne i bit dal disco ignorando il resto. Paragona questo metodo a ciò che gli studenti imparano attraverso una lezione di apprendimento automatico probabilistico, che consiste nel risolvere due diversi problemi di ottimizzazione lineare per risolvere un'equazione. Sottolinea inoltre che sorgono incertezze finite, che causano due fonti di incertezza, tra cui il set di dati finito e calcoli limitati, che non forniscono la soluzione completa.

  • 00:15:00 In questa sezione del video, Philipp Hennig spiega la complessità della risoluzione di problemi lineari nella regressione del processo gaussiano con influenza bayesiana. Il livello di spesa nel caso base è molto più sottile di quello che la maggior parte delle persone potrebbe aver appreso. I quattro punti principali da questo sono che puoi scegliere di non guardare l'intero set di dati, puoi usare un algoritmo simile a Cholesky che fornisce una stima del costo lineare nel set di dati e quadraticamente nel numero di iterazioni, puoi usare un algoritmo più efficiente che converge rapidamente ma è quadraticamente costoso in ogni iterazione, oppure puoi optare per Cholesky, che produce una spesa cubica nel numero di punti dati.

  • 00:20:00 In questa sezione, Hennig discute l'importanza di gestire correttamente set di dati di dimensioni non banali e la decisione su come operare su di essi in modo efficiente. Continua anche spiegando come gestire insiemi di dati dimensionali infiniti, in particolare per quanto riguarda i sistemi che si evolvono nel tempo, nonché l'algoritmo utilizzato per problemi lineari dipendenti dal tempo e invarianti nel tempo, noto come filtraggio e livellamento di Kalman. Hennig sottolinea che questo tipo di algoritmo è sia facilmente trascrivibile che linearmente costoso in termini di numero di passaggi temporali. Sottolinea inoltre l'importanza di comprendere i bassi livelli della gerarchia computazionale, in quanto può essere utilizzato per accelerare le prestazioni in algoritmi di livello superiore.

  • 00:25:00 In questa sezione del video, Philipp Hennig discute l'algoritmo più fluido, che funge da algoritmo di contabilità che informa tutte le variabili precedenti nella catena sulle osservazioni che ha fatto in futuro. Parla anche della velocità con cui gli algoritmi possono essere applicati a contesti in cui le osservazioni non sono una trasformazione gaussiana lineare dello spazio degli stati e della dinamica del filtro di Kalman esteso. Hennig tocca anche i paesaggi algoritmici e la struttura di questo framework, che è molto flessibile e può essere utilizzato per costruire un potente algoritmo per risolvere equazioni differenziali.

  • 00:30:00 In questa sezione, Philipp Hennig spiega come equazioni algebriche implicite, simmetrie di gruppo continue ed equazioni alle derivate parziali possono essere tutte incluse nello stesso linguaggio algoritmico delle equazioni differenziali ordinarie nell'apprendimento automatico. Cita anche il valore di incorporare osservazioni di un sistema, come misurare il percorso che ha preso o sapere dove è iniziato e finito, nel determinare valori sconosciuti in parti dello spazio degli stati. Hennig osserva che man mano che i pacchetti di simulazione diventano più diversificati, diventa meno necessario avere una conoscenza approfondita dei metodi di simulazione, poiché il metodo di simulazione può essere visto essenzialmente come un filtro.

  • 00:35:00 In questa sezione del video, Philipp Hennig discute di come i metodi di apprendimento automatico gestiscono le informazioni e afferma che non c'è davvero differenza tra le informazioni che provengono da un disco o un sensore collegato al computer, e informazioni che provengono dal programmatore che le ha scritte come un'equazione algebrica. Accenna inoltre al fatto che l'operatore dell'informazione funge da interfaccia tra l'utente e il progettista dell'algoritmo. Spiega anche come risolvere equazioni alle derivate parziali, che è essenzialmente la stessa cosa dei metodi di simulazione del filtraggio, usando la regressione del processo gaussiano. Tuttavia, osserva che se l'equazione alle derivate parziali non è lineare, non può essere risolta utilizzando un filtro.

  • 00:40:00 In questa sezione, Philipp Hennig riassume la conclusione della serie "Numerics of ML", che copre le equazioni differenziali e l'integrazione nell'apprendimento automatico. In primo luogo parla dell'inferenza del processo gaussiano con le funzioni, che possono essere complesse a causa della natura degli spazi funzionali. Tuttavia, osservando le funzioni non lineari e applicando varie fonti di informazione, come equazioni alle derivate parziali e valori al contorno, possono essere combinate in un ampio schema di inferenza del processo gaussiano, risultando in una rappresentazione quantificata del sistema dinamico. Hennig passa quindi all'integrazione nell'inferenza probabilistica, dove introduce l'algoritmo Monte Carlo, che è uno stimatore imparziale che converge lentamente, ma funziona su qualsiasi funzione integrabile.

  • 00:45:00 In questa sezione, Philipp Hennig discute i migliori approcci alla stima degli integrali per l'apprendimento automatico. Suggerisce che la velocità con cui una stima dell'integrale converge al valore vero dell'integrale è 1 sulla radice quadrata del numero di campioni, che dipende dall'algoritmo utilizzato. Tuttavia, la quadratura bayesiana, un algoritmo che impiega molto tempo a modellare l'integrando, può funzionare davvero bene, specialmente in problemi a bassa dimensione, e può convergere molto più velocemente di Monte Carlo, anche super polinomialmente veloce. Hennig suggerisce che la creazione di algoritmi che funzionano bene solo per una piccola classe di problemi può funzionare meglio per ogni istanza di quel problema, ma potrebbe rompersi male al di fuori di quella classe. In definitiva, il miglior algoritmo dipenderà dalla natura del problema da risolvere.

  • 00:50:00 In questa sezione, Philipp Hennig esplora le sfide dei problemi numerici dell'apprendimento automatico contemporaneo, in particolare la questione dell'addestramento delle reti neurali profonde. Sebbene siano disponibili molti ottimizzatori, sono fondamentalmente frustranti e inefficienti, richiedono un costante lavoro di babysitter e messa a punto degli iperparametri e non sempre funzionano. Mentre l'ottimizzazione consisteva nel premere un pulsante e osservare l'algoritmo funzionare perfettamente, ora l'apprendimento automatico richiede un team di oltre 100 persone per gestire modelli linguistici di grandi dimensioni, rendendolo un uso inefficiente delle risorse. Il problema principale è la stocasticità e non esiste ancora una soluzione elegante nota per questo problema, anche se sta guidando l'intera comunità di machine learning.

  • 00:55:00 In questa sezione, Philipp Hennig conclude il corso di lezioni sull'incertezza nel calcolo sottolineando la difficoltà nell'addestrare reti neurali profonde. Sebbene i gradienti mini-batch vengano valutati a causa di dati e calcoli finiti, il rumore significativo introdotto attraverso questo processo riduce effettivamente le prestazioni degli algoritmi di ottimizzazione. Hennig afferma che la soluzione a questo problema renderebbe molto più veloce l'addestramento delle reti neurali profonde e cambierebbe il futuro dell'apprendimento automatico. Nel frattempo, possiamo ancora utilizzare le risorse disponibili, come le stime di curvatura, per costruire nuovi algoritmi e tecniche.

  • 01:00:00 In questa sezione, Philipp Hennig discute la necessità di fare di più che addestrare reti duali nell'apprendimento automatico e l'importanza di sapere quanto il modello sa e cosa non sa. Hennig spiega che la stima della curvatura della funzione di perdita può aiutare a costruire stime di incertezza per reti neurali profonde in modi leggeri, utilizzando l'approssimazione di Laplace. Questo può essere utilizzato per diversi casi d'uso e può combinarsi con una linearizzazione dello spazio del peso della rete per trasformare approssimativamente qualsiasi rete neurale profonda in un algoritmo di regressione gaussiana parametrica del processo gaussiano. Hennig sottolinea che sebbene essere probabilistici sia importante, non è necessario applicare il teorema di Bayes in ogni caso, poiché può essere troppo intensivo dal punto di vista computazionale. Invece, trovare soluzioni rapide che aggiungano valore senza essere troppo costose dal punto di vista computazionale è un approccio migliore.

  • 01:05:00 In questa sezione, Philipp Hennig sottolinea l'importanza del calcolo numerico nell'apprendimento automatico. Spiega che i calcoli numerici sono agenti attivi che interagiscono con un'origine dati e devono decidere attivamente come utilizzare i dati che ricevono. Prendendo sul serio questa connessione, è possibile sviluppare nuovi modi di eseguire il calcolo incentrati sui dati, che possono essere più flessibili, più facili da usare e più facili da generalizzare a diverse impostazioni. Hennig sottolinea anche l'importanza di capire come funzionano gli algoritmi numerici per diventare un ingegnere di machine learning migliore. Infine, chiede feedback sul corso e discute il prossimo esame.
 

Supporta Vector Machine (SVM) in 7 minuti: divertente apprendimento automatico



Supporta Vector Machine (SVM) in 7 minuti: divertente apprendimento automatico

Il video spiega Support Vector Machines (SVM), un algoritmo di classificazione utilizzato per set di dati con due classi che disegna un confine decisionale, o iperpiano, basato sugli estremi del set di dati. Discute anche di come SVM può essere utilizzato per set di dati non linearmente separabili trasformandoli in spazi di caratteristiche dimensionali superiori usando un trucco del kernel. Il video identifica i vantaggi di SVM come l'efficacia in spazi ad alta dimensione, l'efficienza della memoria e la possibilità di utilizzare kernel diversi per funzioni personalizzate. Tuttavia, il video identifica anche gli svantaggi dell'algoritmo, come le scarse prestazioni quando il numero di funzionalità è maggiore del numero di campioni e la mancanza di stime di probabilità dirette, che richiedono costose convalide incrociate.

  • 00:00:00 In questa sezione, apprendiamo le macchine a vettori di supporto (SVM) e come possono essere utilizzate per classificare i set di dati con due classi. L'algoritmo SVM esamina gli estremi dei set di dati e disegna un limite decisionale o un iperpiano vicino ai punti estremi del set di dati. In sostanza, l'algoritmo della macchina vettoriale di supporto è una frontiera che separa al meglio le due classi. Apprendiamo quindi i set di dati non linearmente separabili e come gli SVM possono trasformarli in spazi di funzionalità di dimensioni superiori con un trucco del kernel. I tipi di kernel più diffusi includono il kernel polinomiale, il kernel della funzione di base radiale (RBF) e il kernel sigmoid. Tuttavia, la scelta del kernel corretto è un'attività non banale e può dipendere dall'attività specifica da eseguire.

  • 00:05:00 In questa sezione vengono discussi i vantaggi e gli svantaggi delle macchine a vettori di supporto (SVM). SVM è efficace in spazi ad alta dimensione e utilizza un sottoinsieme di punti di addestramento nella funzione decisionale, rendendola efficiente in termini di memoria. È possibile specificare kernel diversi per la funzione decisionale, inclusi kernel personalizzati, e SVM può essere utilizzato in varie applicazioni, come l'imaging medico, l'industria finanziaria e il riconoscimento di pattern. Tuttavia, gli svantaggi di SVM includono scarse prestazioni se il numero di funzionalità è maggiore del numero di campioni e la mancanza di stime di probabilità dirette, che richiedono costose convalide incrociate.
 

"La rivoluzione del deep learning" - Geoffrey Hinton - Conferenza del presidente di RSE 2019



"La rivoluzione del deep learning" - Geoffrey Hinton - Conferenza del presidente di RSE 2019

Geoffrey Hinton, noto come il "Padrino del Deep Learning", discute la storia e l'evoluzione del deep learning e delle reti neurali, le sfide e le entusiasmanti possibilità dell'utilizzo del deep learning per creare macchine in grado di apprendere allo stesso modo dei cervelli umani e il trucchi e tecniche che hanno reso più efficace la retropropagazione. Descrive anche il successo delle reti neurali nel riconoscimento vocale e nella visione artificiale, l'evoluzione delle reti neurali per la visione artificiale e la pre-formazione senza supervisione e la loro efficacia nella modellazione linguistica e nella traduzione automatica. Conclude evidenziando il valore del ragionamento per analogia e discute la sua teoria delle "capsule" e del collegamento della conoscenza in un modello che predice le parti dal tutto.

Geoffrey Hinton, un pioniere dell'apprendimento profondo, tiene una conferenza sostenendo l'integrazione di memorie associative, memorie veloci e scale temporali multiple nelle reti neurali per consentire la conoscenza a lungo termine e l'archiviazione temporanea, necessaria per il ragionamento reale. Inoltre, discute l'atto di bilanciamento tra credenze e dati precedenti, il potenziale dell'apprendimento non supervisionato, l'efficienza delle reti convoluzionali nel riconoscere gli oggetti con l'incorporazione della conoscenza del punto di vista e dell'equivarianza traduzionale e la necessità di combinare il ragionamento simbolico con le reti connessioniste, come il trasformatore reti. Affronta anche la questione dei pregiudizi inconsci nell'apprendimento automatico e ritiene che possano essere risolti più facilmente dei pregiudizi umani identificando e correggendo i pregiudizi. Infine, sottolinea la necessità di maggiori finanziamenti e sostegno per i giovani ricercatori nel campo dell'IA.

  • 00:00:00 Se hai familiarità con il deep learning, devi molto al professor Geoffrey Hinton, conosciuto come il "Padrino del Deep Learning", che ha ottenuto il suo dottorato di ricerca in intelligenza artificiale a Edimburgo nel 1978 e ha vinto numerosi premi per il suo contributi all'apprendimento automatico. Nella prima parte della sua conferenza, discute la storia del deep learning e delle reti neurali e di come si sono evolute nel corso degli anni. Parla anche delle sfide e delle entusiasmanti possibilità di utilizzare il deep learning per creare macchine in grado di apprendere allo stesso modo dei cervelli umani.

  • 00:05:00 In questa sezione, Geoffrey Hinton parla dei due paradigmi dell'intelligenza artificiale che esistevano dall'inizio degli anni '50. Uno era l'approccio ispirato alla logica che considerava l'intelligenza come la manipolazione di espressioni simboliche usando regole simboliche. L'altro approccio, invece, riteneva che l'essenza dell'intelligenza fosse l'apprendimento dei punti di forza delle connessioni in una rete neurale. Questo approccio si è concentrato maggiormente sull'apprendimento e sulla percezione, rispetto all'attenzione dell'altro approccio sul ragionamento. Questi diversi approcci hanno portato a diverse visioni delle rappresentazioni interne e ai modi corrispondenti di far fare a un computer quello che vuoi. Hinton confronta il metodo di progettazione intelligente con la strategia di formazione o apprendimento, che comporta la visualizzazione di molti esempi al computer.

  • 00:10:00 In questa sezione del video, Geoffrey Hinton spiega come è avvenuta la rivoluzione del deep learning, che è iniziata con l'addestramento delle reti neuronali per apprendere funzioni complesse attraverso molti livelli. Vengono utilizzati neuroni idealizzati, che modellano funzioni lineari e non lineari. Nel frattempo, le reti di addestramento hanno metodi diversi, incluso l'addestramento supervisionato e non supervisionato, con la retropropagazione che è l'algoritmo più efficiente di quest'ultimo. Infine, sottolinea come il deep learning implichi perturbare la rete per misurare l'effetto, quindi cambiare la rete quando necessario, il che è molto più efficiente dell'approccio evolutivo di perturbazione di fronte a variabili sconosciute.

  • 00:15:00 In questa sezione della conferenza, il Dr. Hinton discute la tecnica di ottimizzazione della backpropagation, che calcola il gradiente di pesi in base alla discrepanza tra la risposta effettiva e la risposta corretta per una piccola serie di esempi di addestramento. Spiega il processo di aggiornamento dei pesi in base al gradiente e l'uso della discesa del gradiente stocastico per ottimizzare il processo. Il Dr. Hinton prosegue poi discutendo i trucchi e le tecniche che hanno reso la backpropagation più efficace, incluso l'uso dello slancio e tassi di apprendimento più bassi per i gradienti più grandi, concludendo infine che l'uso di questi trucchi è buono come qualsiasi altra cosa nonostante centinaia di articoli pubblicati su riviste. su metodi più sofisticati. Infine, osserva che negli anni '90, la mancanza di adeguate tecniche di inizializzazione per reti neurali e set di dati di dimensioni inferiori ha portato all'abbandono temporaneo delle reti neurali nella comunità dell'apprendimento automatico.

  • 00:20:00 In questa sezione, Geoffrey Hinton, una figura di spicco nel deep learning, discute la storia della ricerca sul deep learning e le sfide affrontate dai ricercatori nel campo. Descrive come, nei primi giorni della propagazione all'indietro, molti articoli furono respinti o criticati perché si concentravano sull'apprendimento senza supervisione, che non si adattava al paradigma prevalente della visione artificiale. Tuttavia, Hinton sostiene che l'apprendimento senza supervisione, in combinazione con tecniche come l'abbandono, è stato un fattore chiave nel far funzionare la propagazione all'indietro per le reti profonde e da allora ha contribuito a rivoluzionare il campo del deep learning.

  • 00:25:00 In questa sezione, Hinton spiega il successo delle reti neurali nel riconoscimento vocale e nella visione artificiale. La prima grande applicazione del deep learning è stata nel riconoscimento vocale, in cui un front-end esegue la modellazione acustica prendendo il fotogramma centrale di uno spettrogramma e identificando quale fonema una persona sta cercando di esprimere. La prima applicazione commercialmente rilevante del deep learning su larga scala è stata nel riconoscimento vocale, in cui una rete neurale front-end ha superato le tecniche altamente ottimizzate di IBM e di altri luoghi. Un altro evento significativo è stato il concorso ImageNet nel 2012, in cui una rete neurale profonda ha ottenuto tassi di errore significativamente inferiori rispetto alle tradizionali tecniche di visione artificiale.

  • 00:30:00 In questa sezione, il professor Geoffrey Hinton discute l'evoluzione delle reti neurali per la visione artificiale, la traduzione automatica e la pre-formazione senza supervisione, e come la comunità della visione artificiale fosse inizialmente scettica riguardo al successo di queste reti neurali. Continua discutendo dell'attenzione morbida e dei trasformatori, e di come quest'ultimo sia più adatto per le covarianze, rendendolo più sensibile a cose come gli occhi che sono uguali tra loro, e di come il pre-addestramento senza supervisione possa costringere le reti neurali a catturare informazioni su cosa possono dirti le parole intorno a una parola su cosa deve significare quella parola.

  • 00:35:00 In questa sezione, Hinton spiega la differenza tra l'utilizzo di reti neurali convoluzionali e trasformatori per attività di elaborazione del linguaggio naturale come il disambiguamento del significato delle parole in base al contesto. Mentre le reti neurali convoluzionali usano le parole attorno alla parola bersaglio per cambiarne la rappresentazione, i trasformatori addestrano una rete mediante derivati di back-ravine per imparare a trasformare un vettore di parole in una query, una chiave e un valore, che viene utilizzato per occuparsi di altre parole e attivare la rappresentazione corrispondente. I trasformatori si sono dimostrati molto efficaci nella modellazione linguistica e nella traduzione automatica e sono stati utilizzati per sviluppare metodi come Burt, che utilizza l'apprendimento senza supervisione per apprendere gli incorporamenti di parole attraverso la probabilità del frammento di parola successivo.

  • 00:40:00 In questa sezione della conferenza, Hinton discute un esperimento chiamato "GPT-2" che può generare un testo che sembra scritto da un essere umano. Il modello GPT-2, che contiene un miliardo e mezzo di parametri, è stato addestrato su miliardi di parole di testo e può produrre storie coerenti e comprensibili. Hinton ipotizza che questo tipo di ragionamento non sia un vero e proprio ragionamento basato sulla logica, ma piuttosto un ragionamento intuitivo. Sottolinea inoltre che è difficile sapere quanto il modello capisca veramente e si chiede se il modello stia solo facendo enormi quantità di associazioni o se ne capisca un po' di più.

  • 00:45:00 In questa sezione, Geoffrey Hinton sottolinea il valore del ragionamento per analogia e il suo ruolo nel migliorare le capacità di ragionamento. Paragona il ragionamento sequenziale al ragionamento per intuizione nel contesto del gioco AlphaGo, spiegando che sia l'intuizione che il ragionamento logico sono necessari per prendere decisioni ben informate. Hinton discute anche di come le reti neurali convoluzionali abbiano migliorato l'efficienza ma non riescano a riconoscere gli oggetti allo stesso modo degli umani, portando alla conclusione che gli umani usano i frame di coordinate e comprendono le relazioni tra le parti e l'intero oggetto per riconoscerlo. Ciò evidenzia la necessità di approfondimenti sull'architettura della rete neurale per migliorare il modo in cui riconoscono gli oggetti.

  • 00:50:00 In questa sezione, Hinton utilizza un'attività per illustrare la dipendenza della comprensione spaziale dai frame di coordinate. Presenta un cubo wireframe e chiede allo spettatore di indicare dove si trovano gli angoli senza utilizzare una cornice di coordinate, rivelando che le persone tendono a pensare ai cubi rispetto al loro sistema di coordinate. Hinton discute poi la sua teoria delle "capsule", che raggruppa i neuroni che imparano a rappresentare frammenti di forme, e impone un frame di coordinate su ciascun frammento per catturare la geometria intrinseca. Ha in programma di addestrare queste capsule senza supervisione per acquisire la conoscenza della forma.

  • 00:55:00 In questa sezione, Hinton discute la conoscenza del cablaggio in un modello che prevede le parti dal tutto. Il modello viene addestrato da un trasformatore che esamina le parti già estratte, prende queste parti e cerca di prevedere quali interi spiegherebbero quelle parti. Il trasformatore è bravo a trovare correlazioni tra le cose e può prevedere quali oggetti potrebbero essere lì e quali sono le loro pose. Hinton fornisce un esempio in cui al modello vengono insegnati quadrati e triangoli e può successivamente riconoscerli in nuove immagini. Il modello può anche essere addestrato a riconoscere i numeri civici senza che vengano mai mostrate etichette.

  • 01:00:00 In questa sezione impariamo a conoscere il potenziale dell'apprendimento senza supervisione e i vari tipi di neuroni che potrebbero funzionare meglio della non linearità scalare attualmente in uso. Il relatore esorta gli studenti a non credere a tutto ciò che sentono e incoraggia il reindirizzamento di 50 anni di conoscenze acquisite verso la ricerca di come ottenere il substrato giusto per eseguire elaborazioni specifiche. La parte di domande e risposte discute la possibilità di fare affidamento esclusivamente sui sistemi più veloci per l'intelligenza e la coerenza della memoria di un trasformatore.

  • 01:05:00 In questa sezione, Hinton risponde a una domanda sui pregiudizi inconsci nell'apprendimento automatico e li confronta con i pregiudizi negli esseri umani. Crede che mentre l'apprendimento automatico può essere distorto, è molto più facile da correggere rispetto al pregiudizio umano perché i pregiudizi nell'apprendimento automatico possono essere identificati e corretti congelando i pesi e misurando contro chi sono i pregiudizi. Inoltre, parla di spiegabilità nell'apprendimento automatico e si oppone alla legiferazione secondo cui i sistemi devono essere spiegabili prima di poter essere utilizzati, poiché queste grandi reti neurali hanno appreso miliardi di pesi che non possono essere spiegati in modo sintetico. Tuttavia, ammette che i ricercatori vogliono comprendere meglio questi sistemi e incoraggia i ricercatori più anziani a fornire finanziamenti ai ricercatori più giovani.

  • 01:10:00 In questa sezione, Geoffrey Hinton discute l'idea che se colleghiamo l'equivarianza traslazionale e una maggiore conoscenza del punto di vista in reti convoluzionali, potrebbero essere più efficienti nel riconoscimento e nella generalizzazione degli oggetti. Inoltre, parla della necessità di combinare il ragionamento simbolico con le reti connessioniste, come le reti di trasformatori. Hinton ritiene che l'implementazione di memorie associative, memorie veloci e che ogni sinapsi abbia diverse scale temporali possa consentire la conoscenza a lungo termine e l'archiviazione temporanea, necessaria per un ragionamento reale.

  • 01:15:00 In questa sezione, il relatore risponde a una domanda su come le reti neurali si aggiornano in base a esperienze passate o attuali. Suggerisce di utilizzare una memoria associativa che viene attivata dallo stato attuale, piuttosto che impegnarsi nella propagazione all'indietro nel tempo. Chiarisce che ogni sinapsi dovrebbe avere più scale temporali per memorizzare i provvisori. La discussione si sposta quindi sull'argomento dell'allucinazione nei sistemi con credenze precedenti. L'oratore ritiene che ottenere il giusto equilibrio tra convinzioni precedenti e dati sia la chiave per tali sistemi. Infine, discute la sua ambivalenza nei confronti della retropropagazione, affermando che sebbene sia la cosa giusta da fare, è sorpreso che solo un miliardo di pesi possa fare una traduzione abbastanza buona, con il cervello umano che ne contiene molto di più.

  • 01:20:00 In questa sezione del video, il relatore discute di come la nostra attuale tecnologia IA potrebbe non essere così intelligente come pensiamo e che l'attenzione dovrebbe essere rivolta alla risoluzione di questo problema. Toccano anche il progetto Human Brain, che è stato finanziato con fondi europei, e si chiedono se aiuterà o ostacolerà lo sviluppo dell'IA. Il relatore si complimenta inoltre con il docente per essere in grado di spiegare concetti complessi in un modo facile da comprendere per i non esperti e per promuovere maggiori finanziamenti e supporto per i giovani ricercatori nel campo dell'IA.
 

Come funziona effettivamente ChatGPT



Come funziona effettivamente ChatGPT

ChatGPT è un modello di machine learning in grado di identificare correttamente i contenuti dannosi nelle conversazioni in chat. La sua architettura si basa sull'input umano e le sue carenze sono delineate. Vengono fornite anche letture consigliate.

  • 00:00:00 ChatGPT è un chatbot progettato per mitigare i problemi di disallineamento del modello. Utilizza l'apprendimento per rinforzo dal feedback umano per mettere a punto un modello pre-addestrato.

  • 00:05:00 ChatGPT è un modello di machine learning in grado di identificare correttamente i contenuti dannosi nelle conversazioni in chat. La sua architettura si basa sull'input umano e le sue carenze sono delineate. Vengono fornite anche letture consigliate.
 

Apprendimento automatico da zero Corso completo



Apprendimento automatico da zero Corso completo

Implementare tu stesso i modelli di machine learning è uno dei modi migliori per padroneggiarli. Nonostante sembri un compito impegnativo, spesso è più facile di quanto potresti immaginare per la maggior parte degli algoritmi. Nei prossimi 10 giorni, utilizzeremo Python e occasionalmente Numpy per calcoli specifici per implementare un algoritmo di machine learning ogni giorno.

Puoi trovare il codice nel nostro repository GitHub: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch

GitHub - AssemblyAI-Examples/Machine-Learning-From-Scratch: Implementation of popular ML algorithms from scratch
GitHub - AssemblyAI-Examples/Machine-Learning-From-Scratch: Implementation of popular ML algorithms from scratch
  • AssemblyAI-Examples
  • github.com
This repository contains the code developed in the Machine Learning from scratch course on YouTube by AssemblyAI. It includes the implementations of popular ML algorithms.
 

Come implementare KNN da zero con Python

Codice: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/01%20KNN



Come implementare KNN da zero con Python

Nel video intitolato "Come implementare KNN da zero con Python", il relatore spiega come creare un classificatore KNN da zero utilizzando Python. Coprono i passaggi coinvolti nell'implementazione dell'algoritmo, come il calcolo della distanza tra il nuovo punto dati e altri punti nel set di dati, la selezione dei k punti più vicini e la determinazione dell'etichetta per la classificazione o la media per la regressione. Il relatore implementa l'algoritmo utilizzando una classe in Python e dimostra la sua corretta implementazione sul set di dati dell'iride con un tasso di precisione del 96%. Invitano inoltre gli spettatori a controllare il codice sul loro repository Github e a porre domande nella sezione dei commenti.

  • 00:00:00 In questa sezione, apprendiamo l'algoritmo k Nearest Neighbors (k-NN), come funziona e i passaggi necessari per implementare l'algoritmo in Python. k-NN è un algoritmo basato sulla distanza in cui i k punti dati più vicini vengono selezionati in base alla loro distanza dal nuovo punto dati. Questo valore di k è determinato dall'utente e può essere utilizzato sia per problemi di regressione che di classificazione. L'algoritmo inizia calcolando la distanza tra il nuovo punto dati e altri punti dati nel set di dati. Quindi, vengono scelti i k punti più vicini e la media dei loro valori viene presa per la regressione, oppure viene determinata l'etichetta con il voto di maggioranza per la classificazione. Vediamo anche come implementare l'algoritmo usando una classe in Python con una funzione fit e predict, e una funzione helper per calcolare la distanza tra due punti.

  • 00:05:00 In questa sezione, il relatore spiega come creare un classificatore KNN da zero usando Python. Iniziando con il metodo arc sort per ordinare l'array distance, passano alla selezione dei k vicini più vicini, ottenendo l'etichetta di classe più comune e restituendo l'etichetta più comune. Quindi implementano questo classificatore sul set di dati dell'iride per classificare i tipi di fiori e ottenere un tasso di precisione del 96%, dimostrando l'implementazione riuscita di KNN. Il relatore invita gli spettatori a controllare il codice disponibile sul loro repository Github e a porre domande nella sezione dei commenti.
Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/01 KNN at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
 

Come implementare la regressione lineare da zero con Python

Codice: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch/tree/main/02%20Linear%20Regression



Come implementare la regressione lineare da zero con Python

Questo video illustra il processo di implementazione della regressione lineare da zero utilizzando Python. Il relatore spiega come trovare la linea di adattamento migliore utilizzando l'errore quadratico medio e come calcolare i pesi e le distorsioni con la discesa del gradiente. Il relatore discute anche di come il tasso di apprendimento influisce sulla convergenza e dimostra come testare il modello utilizzando la funzione del set di dati di scikit-learn. Correggono anche un errore di battitura nel codice e regolano il tasso di apprendimento per migliorare l'adattamento della linea di previsione. Il codice è condiviso su GitHub e gli spettatori sono invitati a porre domande.

  • 00:00:00 In questa sezione, l'attenzione è rivolta alla regressione lineare, che implica la comprensione del modello di un determinato set di dati e il disegno di una linea lineare che si adatti ai dati nel miglior modo possibile. L'errore quadratico medio viene utilizzato per calcolare l'errore della linea per tutti i punti dati e la linea di adattamento migliore viene trovata calcolando i valori per i parametri del modello o peso e bias che forniscono l'errore quadratico medio minimo utilizzando la discesa del gradiente. La velocità di apprendimento viene utilizzata per controllare la velocità o la lentezza con cui andare nella direzione indicata dalla discesa del gradiente, dove una bassa velocità di apprendimento può causare un avvicinamento lento all'errore minimo, mentre un'elevata velocità di apprendimento può provocare salti nello spazio aereo e l'incapacità di trovare il minimo. Durante l'allenamento, il peso e il bias vengono inizializzati come zero e all'equazione viene assegnato un punto dati da prevedere o stimare
    il risultato e l'errore dell'equazione vengono calcolati, rendendo più semplice l'utilizzo della moltiplicazione di matrici con tutti i punti dati per calcolare i gradienti. Durante il test, un modello addestrato prevede i risultati utilizzando l'equazione.

  • 00:05:00 In questa sezione, l'oratore sta implementando la regressione lineare da zero con Python. Il relatore inizializza il tasso di apprendimento, imposta un valore predefinito per il numero di iterazioni e definisce i pesi e le distorsioni come zero. L'oratore procede quindi a prevedere il risultato prendendo il prodotto scalare di x con i pesi e aggiungendo il bias. Per calcolare le derivate, l'oratore utilizza una semplice equazione, quindi aggiorna i pesi e le distorsioni calcolando i gradienti. Infine, l'oratore riassume le differenze tra le previsioni ei valori effettivi e il processo viene ripetuto per un numero di iterazioni fino alla convergenza.

  • 00:10:00 In questa sezione, il relatore discute come addestrare il modello di regressione lineare e fare previsioni utilizzando la classe data. L'aggiornamento di pesi e distorsioni viene effettuato sottraendo rispettivamente il tasso di apprendimento moltiplicato per le derivate di pesi e distorsioni. Per eseguire più iterazioni dell'esecuzione dell'algoritmo, viene aggiunto un ciclo for per eseguire l'algoritmo sul set di dati. Infine, il relatore mostra come testare l'efficienza dell'algoritmo di regressione lineare utilizzando una funzione del set di dati di scikit-learn, adattando una linea che si traduce in buone prestazioni e calcolando l'errore quadratico medio per le previsioni. Si verifica un errore di dimensione a causa di un calcolo errato del prodotto scalare, che viene corretto ottenendo la trasposizione di x.

  • 00:15:00 In questa sezione, il relatore corregge un errore di battitura nel codice e lo utilizza per creare un modello di regressione lineare che prevede i valori y in base ai valori x da un determinato set di dati. Quindi visualizzano la linea di previsione e notano che mentre si adatta bene, potrebbe essere migliorata. Il relatore decide di regolare il tasso di apprendimento e riesegue il modello per ottenere un adattamento migliore. Condividono il codice su GitHub e invitano gli spettatori a porre domande se necessario.
Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
  • AssemblyAI-Examples
  • github.com
Implementation of popular ML algorithms from scratch - Machine-Learning-From-Scratch/02 Linear Regression at main · AssemblyAI-Examples/Machine-Learning-From-Scratch
Motivazione: