Qual è il modo migliore per imparare l’apprendimento automatico senza seguire alcun corso online?
Qual è il modo migliore per iniziare a imparare l’apprendimento automatico e l’apprendimento profondo senza seguire alcun corso online? è apparso originariamente su Quora: the place to gain and share knowledge, empowering people to learn from others and better understand the world.
Risposta di Eric Jang, ingegnere di ricerca presso Google Brain, su Quora:
Lasciami iniziare dicendo che non esiste un unico “modo migliore” per imparare l’apprendimento automatico, e dovresti trovare un sistema che funzioni bene per te. Alcune persone preferiscono la struttura dei corsi, altri preferiscono leggere libri al proprio ritmo, e alcuni vogliono tuffarsi direttamente nel codice.
Ho iniziato con il corso Machine Learning Coursera di Andrew Ng nel 2012, conoscendo quasi zero algebra lineare e nulla di statistica o apprendimento automatico. Si noti che anche se la classe copriva le reti neurali, non era un corso sull’apprendimento profondo. Mi è piaciuto molto come il corso ha formulato “l’apprendimento automatico” come niente di più che l’ottimizzazione numerica.
Se i corsi online sono troppo lenti per voi, la migliore risorsa consolidata è probabilmente il libro Deep Learning di Goodfellow, Bengio e Courville. Ha alcuni capitoli dedicati alle basi (un po’ come quello che viene trattato nel corso di Ng) e poi salta alle DNN pratiche.
Un background statistico/matematico rigoroso non è necessario per fare un lavoro utile di Deep Learning, ma aiuta davvero a formulare ipotesi sul perché i modelli funzionano/non funzionano, e cosa potrebbe aiutare. Il libro di testo Probabilistic Machine Learning di Murphy è un’ottima base per un ML matematicamente rigoroso (e ha anche ottimi diagrammi!)
Dopo aver finito il libro DL, potete “specializzarvi” in uno dei sottocampi/sottocampi del Deep Learning, implementando alcuni degli articoli da soli. Alcuni argomenti di esempio:
- Bayesian Deep Learning (combinando reti neurali con modelli grafici)
- Deep Reinforcement Learning (AlphaGo, AI con Atari, Robotica)
- Modelli generativi (GANs, PixelCNN, VAEs)
- Metodi Avversariali (GANs, Actor-Critic)
- Teoria del Deep Learning
- Visione Artificiale
- NLP/Speech (traduzione, sottotitolazione, modelli seq2seq)
- Ragionamento simbolico (es.g. risoluzione di prove)
- Reti neurali ricorrenti (es. LSTMs, memoria esterna, attenzione)
- Applicazioni (risolvere problemi specifici del dominio come la classificazione del cancro, la piegatura delle proteine, la lettura delle labbra dai video)
- Meta-learning / learning-to-learn (Synthetic Gradients, Pathnet)
Il campo del Deep Learning si è drammaticamente espanso negli ultimi anni, al punto che non è realistico comprendere tutti i sotto campi del Deep Learning in un breve lasso di tempo. Raccomando di immergersi profondamente in un particolare sottocampo, e poi diventa più facile imparare gli altri sottocampi una volta che si è padroneggiato un settore. Questi campi non hanno più molto in comune, oltre al fatto che tutti utilizzano la potenza espressiva dell’apprendimento profondo per imparare compiti end-to-end, e sono di sapore generalmente sperimentale (piuttosto che teorico Computer Science).
In questi giorni, i documenti più interessanti sull’apprendimento profondo sono accompagnati da qualche implementazione pubblicamente disponibile in TensorFlow, Pytorch, Torch, Keras, o Theano, quindi un modo per costruire rapidamente un’intuizione è vedere se si può migliorare un modello esistente (ad esempio fare un ResNet migliore).
Probabilmente non si dovrebbe implementare il proprio pacchetto di reti neurali in Python da zero. E’ un sacco di lavoro per ottenere i piccoli dettagli giusti (per esempio, vedere questo commento su come l’operazione softmax è implementata in TensorFlow).
I framework di Deep Learning sono complessi e richiedono un po’ di tempo per essere appresi, e il modo più veloce per padroneggiare un framework DL è quello di implementare una impegnativa architettura di rete neurale che eserciti caratteristiche oscure del framework o idee a cavallo di più sottocampi di DL. Alcune raccomandazioni su architetture/condotte di addestramento difficili:
- Reti progressive
- DenseNet
- Gradienti sintetici
- Macchine Neurali di Turing
- Embed-to-Control
- Traslazione di macchine neurali
Finalmente, molti ricercatori di apprendimento automatico sono su Twitter e la comunità di apprendimento automatico di Reddit è un bel modo per ottenere le ultime notizie sulle reti neurali. Il campo è molto competitivo e si muove molto rapidamente, quindi aiuta a rimanere aggiornati.
Questa domanda è apparsa originariamente su Quora. il luogo per ottenere e condividere la conoscenza, permettendo alle persone di imparare dagli altri e capire meglio il mondo. Puoi seguire Quora su Twitter, Facebook e Google+. Altre domande:
- Machine Learning: Quanto è difficile per uno scienziato motivato costruire un sistema di trading automatico da casa?
- Programmazione di computer: Come si riconosce un programmatore principiante?
- Apprendimento: Come posso pensare più velocemente e meglio?
Quora: il luogo per ottenere e condividere la conoscenza, dando alle persone la possibilità di imparare dagli altri e capire meglio il mondo.