Care este cel mai bun mod de a învăța Machine Learning fără a urma vreun curs online?
Care este cel mai bun mod de a începe să înveți învățarea mașinilor și învățarea profundă fără să urmezi cursuri online? a apărut inițial pe Quora: locul pentru a obține și împărtăși cunoștințe, permițând oamenilor să învețe de la alții și să înțeleagă mai bine lumea.
Răspunsul lui Eric Jang, inginer de cercetare la Google Brain, pe Quora:
Dați-mi voie să încep prin a spune că nu există un singur „cel mai bun mod” de a învăța machine learning și ar trebui să găsiți un sistem care funcționează bine pentru dvs. Unii oameni preferă structura cursurilor, altora le place să citească cărți în ritmul propriu, iar unii vor să se scufunde direct în cod.
Am început cu cursul Machine Learning Coursera al lui Andrew Ng în 2012, știind aproape zero algebră liniară și nimic despre statistică sau învățare automată. Rețineți că, deși cursul a acoperit rețelele neuronale, nu a fost un curs despre Deep Learning. Mi-a plăcut foarte mult modul în care cursul a formulat „învățarea automată” ca fiind nimic mai mult decât optimizarea numerică.
Dacă cursurile online sunt prea lente pentru dumneavoastră, cea mai bună resursă consolidată este probabil cartea Deep Learning de Goodfellow, Bengio și Courville. Are câteva capitole dedicate noțiunilor de bază (un fel de ceea ce este acoperit în cursul lui Ng) și apoi sare la DNN-uri practice.
Nu este necesară o pregătire statistică/matematică riguroasă pentru a face muncă utilă de Deep Learning, dar ajută foarte mult la formularea de ipoteze despre motivul pentru care modelele funcționează/nu funcționează și ce ar putea ajuta. Cartea de text Probabilistic Machine Learning a lui Murphy este o bază excelentă pentru ML riguroasă din punct de vedere matematic (și are și diagrame grozave!)
După ce terminați cartea DL, vă puteți „specializa” într-unul dintre subdomeniile/subdomeniile de Deep Learning, implementând singuri unele dintre lucrări. Câteva subiecte de exemplu:
- Bayesian Deep Learning (combinarea rețelelor neuronale cu modele grafice)
- Deep Reinforcement Learning (AlphaGo, inteligența artificială care joacă Atari, robotică)
- Modele generative (GANs, PixelCNN, VAEs)
- Metode adversariale (GANs, Actor-Critic)
- Teoria învățării profunde
- Viziune pe calculator
- NLP/vorbire (traducere, subtitrare, modele seq2seq)
- Raționament simbolic (de ex.g. rezolvarea de dovezi)
- Rețele neuronale recurente (de ex. LSTM, memorie externă, atenție)
- Aplicații (rezolvarea problemelor specifice unui domeniu, cum ar fi clasificarea cancerului, plierea proteinelor, citirea pe buze din videoclipuri)
- Meta-learning / learning-to-learn (Synthetic Gradients, Pathnet)
Domeniul Deep Learning s-a extins dramatic în ultimii câțiva ani, până la punctul în care nu este realist să cunoști toate subdomeniile Deep Learning într-un timp scurt. Vă recomand să vă scufundați adânc într-un anumit subdomeniu, iar apoi devine mai ușor să învățați celelalte subdomenii odată ce ați stăpânit un domeniu. Aceste domenii nu mai au atât de multe lucruri în comun, în afară de faptul că toate utilizează puterea de expresie a învățării profunde pentru a învăța sarcini de la un capăt la altul și sunt în general de factură experimentală (mai degrabă decât teoretică în domeniul informaticii).
În zilele noastre, cele mai interesante lucrări de Deep Learning vin cu unele implementări disponibile public în TensorFlow, Pytorch, Torch, Keras sau Theano, astfel încât o modalitate prin care vă puteți crea rapid o intuiție este să vedeți dacă puteți îmbunătăți un model existent (de exemplu, să faceți un ResNet mai bun).
Probabil că nu ar trebui să vă implementați propriul pachet de rețele neuronale în Python de la zero. Este multă muncă pentru a obține detaliile mici corect (de exemplu, consultați acest comentariu despre modul în care este implementată operația softmax în TensorFlow).
Cadrele de învățare profundă sunt complexe și necesită puțin timp pentru a fi învățate, iar cel mai rapid mod de a stăpâni un cadru de DL este de a implementa o arhitectură de rețea neuronală provocatoare care exersează caracteristici obscure ale cadrului sau idei care se află la granița mai multor subdomenii ale DL. Câteva recomandări cu privire la arhitecturi dificile / conducte de formare:
- Progressive Nets
- DenseNet
- Synthetic Gradients
- Neural Turing Machines
- Embed-to-Control
- Neural Machine Translation
În cele din urmă, o mulțime de cercetători în domeniul învățării automate sunt pe Twitter, iar comunitatea Reddit Machine Learning este o modalitate plăcută de a obține cele mai recente știri despre rețelele neuronale. Domeniul este foarte competitiv și se mișcă foarte repede, așa că ajută să rămâneți la curent.
Această întrebare a apărut inițial pe Quora. locul unde se obțin și se împărtășesc cunoștințe, permițând oamenilor să învețe de la alții și să înțeleagă mai bine lumea. Puteți urmări Quora pe Twitter, Facebook și Google+. Mai multe întrebări:
- Machine Learning: Cât de dificil este pentru un om de știință motivat să construiască un sistem automat de tranzacționare de acasă?
- Programarea calculatoarelor: Cum recunoști un programator începător?
- Învățare: Cum pot gândi mai repede și mai bine?
Quora: locul pentru a obține și a împărtăși cunoștințe, permițând oamenilor să învețe de la alții și să înțeleagă mai bine lumea.