Che cosè la pre-formazione nellapprendimento profondo come funziona?

La migliore risposta

la pre-formazione nellapprendimento profondo non è altro , addestrando le macchine, prima che inizino a svolgere una determinata attività.

Ad esempio:

  1. Vuoi addestrare una rete neurale per eseguire unattività, prendi la classificazione su un set di dati di immagini. Inizi ad allenarti inizializzando i pesi in modo casuale. Non appena inizi con lallenamento, i pesi vengono cambiati o variati per eseguire le attività con meno errori (ottimizzati). Una volta che sei soddisfatto dei risultati delladdestramento, salvi i pesi della tua rete, in modo che la rete neurale addestrata possa eseguire unattività simile la prossima volta con una buona ottimizzazione e risultati migliori.
  2. La prossima volta inizia da durante lallenamento con pesi inizializzati in modo casuale, puoi utilizzare i pesi salvati dalla rete precedente come valori di peso iniziali per il tuo nuovo esperimento. Linizializzazione dei pesi in questo modo viene definita come lutilizzo di una rete pre-addestrata ……………………….

La prima rete è la rete pre-addestrata. Il secondo è la rete che stai mettendo a punto.

Lidea di base alla base del pre-allenamento è che, linizializzazione casuale degli input è ben .. casuale, i valori dei pesi non hanno nulla a che fare con il compito che stai cercando di risolvere.

I valori del precedente addestramento devono essere migliori delladdestramento precedente, i valori devono essere inizializzati correttamente per lattività, tanto vale impostarli sui valori ottimali.

Pertanto, il pre-allenamento offre alla rete un vantaggio. Come se avesse già visto i dati.

Risposta

In primo luogo, presumo che siamo sul pianeta Mercurio, dove una settimana è di circa 58 settimane. Supponendo che dedichi circa 8 ore al giorno allapprendimento per 5 giorni alla settimana, hai 2320 ore, abbastanza per avere una buona conoscenza dellapprendimento profondo da spacciare per ingegnere ricercatore e ricercatore di livello principiante.

Quindi, prima di tutto, fatti un favore e procurati il ​​libro Deep Learning di Goodfellow et al. È un libro estremamente SOLIDO sullapprendimento profondo che non si allontana da nessuna parte della matematica, pur non essendo eccessivamente pedante. Ad esempio, ha un ottimo modo per spiegare cosa succede quando ottimizzi la divergenza KL nellaltro modo, cosa fanno effettivamente le perdite L1 e L2 ai tuoi pesi (in termini di autovettori della funzione di perdita), intuizione dietro LSTM e così via. Inizia con la prima sezione del libro. Ci vorranno circa 2 settimane per digerire completamente quel materiale (YMMV). Se hai passato questa settimana senza annoiarti o impantanarti per la complessità matematica, ora sei pronto per passare al machine learning.

A questo punto, dobbiamo smettere di leggere e iniziare a scrivere codice . Ma per capire davvero le cose, non scaricare Tensorflow, inizia con limplementazione di cose di base (regressione logistica, SVM, kNN, PCA, GMM) nel buon vecchio python. Molte persone si affrettano a utilizzare le librerie di alto livello senza capire come codificare i blocchi di base da zero e imparerai molto se lo fai. Ad esempio, apprendere che è necessario standardizzare i dati prima di applicare PCA, come rendere softmax numericamente stabile, perché non dovresti riutilizzare la tua funzione softmax per implementare log-softmax e così via. Per iniziare a implementarli, vai su CS231n e completa il primo compito, sviluppandoti per implementare SVM e GMM. Ciò richiederebbe circa 4 settimane (supponendo che si inizi senza conoscere numpy o python) per limplementazione e il debug. Ora sai come implementare gli algoritmi di apprendimento automatico di base da zero.

Ora sei pronto per andare avanti e leggere le note eccellenti sul sito Web CS231n (fino al Modulo-1). Prenditi il ​​tuo tempo dolce per digerire le complessità dellottimizzazione delle funzioni non convesse e sì, IMPLEMENTA ogni cosa che leggi. Dai metodi basati sullo slancio al backprop di base, limplementazione è la chiave se vuoi imparare effettivamente i meccanismi. Ad esempio, se implementi il ​​backprop da solo, ti renderai conto di come devi mantenere un sacco di dati in giro per il passaggio allindietro e questa conoscenza potrebbe essere molto utile se incontri errori di memoria insufficiente a un certo punto della tua ingegneria DL carriera. Questo richiederà altre 4 settimane.

Sono passate 10 settimane di folle DL ora. Ora sei solido nelle tue abilità matematiche di base e puoi implementare reti di feed forward e algoritmi ML di base in raw python. Congratulazioni per questo. Facciamo un passo avanti da qui in poi. Diventerà solo più difficile (e quindi più divertente).

È ora di tirare fuori il nostro libro di apprendimento profondo e ricominciare da dove avevamo interrotto. Leggi i capitoli 6, 7 e 8. Il capitolo 6 è facile e labbiamo già imparato. Il capitolo 7 è dove inizia a diventare difficile, ma il libro fa un ottimo lavoro nel distillare concetti matematici pesanti in un testo di facile comprensione.Per completare il tuo apprendimento, guarda questa fantastica lezione: Lezione 11 di deep learning: apprendimento con margine massimo, reti di trasferimento e memoria .

Questo ci vorranno altre 4 settimane ma, fatto questo, siamo pronti per passare a CNN e RNN. Seguiremo di nuovo la stessa filosofia: leggere le note da cs231n, implementare e addestrare dat net, quindi leggere il libro per comprendere i dettagli più fini. Questa fase richiederà e dovrebbe richiedere più tempo perché implementare il backprop nelle CNN (con tutti i campanelli e fischietti come la normalizzazione dei batch) non è così facile. Lo stesso vale per gli LSTM (guarda la norma di quel gradiente e ritaglia se diventa troppo grande, o troncalo a sequenze più brevi se diventa troppo piccolo). Suggerimento per professionisti : per la formazione degli LSTM, consiglio di controllare il set di dati della PennTree Bank e di addestrare un modello linguistico per ottenere una perplessità di circa 110. Se puoi che 90ish, congratulazioni, lo stai facendo bene. Per addestrare una CNN, esegui il compito 2 da CS231n.

Phew. Lultima fase di formazione di CNN / RNN e quindi la lettura del materiale associato dal libro, ci ha fatto tornare indietro di circa 6 settimane e ora abbiamo solo 38 settimane per diventare i migliori.

Finalmente il tempo a pip install tensorflow. non nemmeno pensare ad altro. No, non stiamo facendo pytorch (è di natura dinamica, quindi non eccezionale se vuoi imparare a usare il software autodiff, ma ottimo altrimenti) o theano (non abbastanza grande). O librerie di alto livello come keras (bello, ma fa sembrare tutto troppo facile). Vai alla documentazione e leggi il tutorial MNIST (per esperti, perché è quello che siamo ora). Allinizio sarà tutto molto strano, lidea di un grafico di calcolo, sessioni e il fatto che ci sia una “compilazione” e una “esecuzione” separate anche allinterno di Python stesso. Ma una volta che hai capito le cose, inizierai a capire quanto sia stato progettato magnificamente e quanto sia facile estenderlo: ad esempio, scrivere il tuo LSTM è facile come estendere una classe LSTM di base. Come una serie di esercizi di riscaldamento, leggi il codice nei tutorial ( Tutorial | TensorFlow ) e segui ogni tutorial con molta attenzione, comprendendo cosa fa ogni riga e perché. Imparerai come organizzare il tuo codice tensorflow. Suggerimento per professionisti : mi piace sempre avere astrazioni separate per laddestramento, il test e la previsione. E una funzione build() separata che costruisce lintero grafico di calcolo, partendo dai segnaposto, fino alla definizione della funzione di perdita e train\_op che ottimizza quella funzione di perdita.

Plug senza vergogna – Recentemente ho codificato un modello per la comprensione della macchina (unattività che mi è piaciuta molto). Per vedere come assemblare il codice del modello insieme, controlla MurtyShikhar / Question-Answering . Per testare le tue abilità di tensorflow, traduci il tuo codice CNN e LSTM in tensorflow per ottenere la stessa (forse migliore) accuratezza / perplessità.

Lapprendimento di tensorflow ha richiesto circa 8 settimane di folle hacking, lettura di tutorial, frustrazione tensorflow compila gli errori ma spero che il viaggio sia stato gratificante. Ora hai la potenza di autodiff e un arsenale di funzioni davvero interessante per collegare letteralmente QUALSIASI modello di deep learning mai. Prima di passare ad alcune cose di ricerca, perché non provare un progetto divertente in tensorflow? Prendi qualsiasi documento interessante su un problema ben definito (traduzione automatica / didascalia immagine / comprensione / risposta a domande / risposta visiva a domande / trasferimento di stili) e implementa il modello allavanguardia in Tensorflow. Non provare ancora i GAN, perché non siamo (ancora) così cool. Ci vorranno circa 5 settimane per completare il progetto e ottenere risultati competitivi, lasciando circa 5 settimane solo per leggere le ricerche in corso.

Mi rendo conto che 5 settimane sono davvero un breve lasso di tempo per coprire lampiezza di DL ricerca, quindi perché non restringere il nostro campo di applicazione? Raccogli un problema o una tecnica, che si tratti di modelli generativi, modelli seq2seq o apprendimento per rinforzo. Non so nulla sullapprendimento per rinforzo (sto cercando di imparare però), quindi mi concentrerò sugli altri due.

Per i modelli generativi, inizia con questo fantastico tutorial del nostro signore e salvatore – NIPS 2016 – Generative Adversarial Networks – Ian Goodfellow e segui lentamente, mettendo in pausa e cercando su Google come e quando richiesto. Troverai quelle abilità matematiche delle prime settimane MOLTO utili qui. La esorto quindi a leggere il articolo originale del GAN ​​e i successivi DCGAN , SeqGANs e il più nuovo e interessante WGAN .

Per Seq2Seq, guarda questa fantastica conferenza di uno scienziato di Google Brain – Sequence to Sequence Deep Learning (Quoc Le, Google) e poi controlla il tutorial ICML 2017 di Oriol Vinyals – seq2seq icml tutorial .

The END.

Ci è voluto del tempo e sforzo. È la fine della settimana 58 e ora hai una vasta conoscenza del Deep Learning, insieme ad alcune solide capacità matematiche e ingegneristiche. È tempo di avventurarsi più a fondo (capire il gioco di parole?) Nella ricerca sul deep learning, o magari creare unapp interessante. Lascio a te la decisione, studente ingegnere DL.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *