Wat is de beste manier om machinaal leren te leren zonder online cursussen te volgen?
Wat is de beste manier om machine learning en deep learning te leren zonder online cursussen te volgen? is oorspronkelijk verschenen op Quora: de plek om kennis te vergaren en te delen, zodat mensen van anderen kunnen leren en de wereld beter kunnen begrijpen.
Antwoord van Eric Jang, Research engineer bij Google Brain, op Quora:
Laat ik eerst beginnen met te zeggen dat er niet één “beste manier” is om machinaal leren te leren, en dat je een systeem moet vinden dat goed voor je werkt. Sommige mensen geven de voorkeur aan de structuur van cursussen, anderen lezen graag boeken in hun eigen tempo, en sommigen willen meteen in de code duiken.
Ik begon in 2012 met Andrew Ng’s Machine Learning Coursera-cursus, terwijl ik bijna nul lineaire algebra kende en niets wist over statistiek of machinaal leren. Merk op dat hoewel de cursus neurale netwerken behandelde, het geen cursus Deep Learning was. Ik heb echt genoten van hoe de cursus “machinaal leren” formuleerde als niets meer dan numerieke optimalisatie.
Als online cursussen te langzaam voor je zijn, is de beste geconsolideerde bron waarschijnlijk Deep Learning boek van Goodfellow, Bengio, en Courville. Het heeft een paar hoofdstukken gewijd aan de basis (ongeveer zoals wat wordt behandeld in de klas van Ng) en springt dan in praktische DNN’s.
Een statistische / mathematisch rigoureuze achtergrond is niet vereist om nuttig Deep Learning-werk te doen, maar het helpt echt om hypothesen te formuleren over waarom modellen wel / niet werken, en wat zou kunnen helpen. Het tekstboek Probabilistic Machine Learning van Murphy is een geweldige basis voor wiskundig rigoureuze ML (en heeft ook geweldige diagrammen!)
Nadat je het DL-boek hebt voltooid, kun je je “specialiseren” in een van de subvelden/sub-subvelden van Deep Learning, door zelf enkele van de papers te implementeren. Enkele voorbeeldonderwerpen:
- Bayesian Deep Learning (het combineren van neurale netten met grafische modellen)
- Deep Reinforcement Learning (AlphaGo, Atari-spelende AI, Robotica)
- Generatieve modellen (GANs, PixelCNN, VAEs)
- Adversarial Methods (GANs, Actor-Critic)
- Theorie van Deep Learning
- Computer Vision
- NLP/Speech (vertaling, captioning, seq2seq modellen)
- Symbolisch redeneren (bijv.g. proof-solving)
- Recurrent neurale netwerken (bijv. LSTM’s, extern geheugen, aandacht)
- Toepassingen (oplossen van domeinspecifieke problemen zoals het classificeren van kanker, eiwitvouwen, liplezen uit video)
- Meta-learning / leren-leren (Synthetic Gradients, Pathnet)
Het Deep Learning-veld is de afgelopen jaren dramatisch uitgebreid, tot het punt waarop het niet realistisch is om alle deelgebieden van Deep Learning in een korte tijd te doorgronden. Ik raad aan om diep in één bepaald subveld te duiken, en dan wordt het gemakkelijker om de andere subvelden te leren als je één gebied onder de knie hebt. Deze velden hebben niet zoveel meer gemeen, behalve het feit dat ze allemaal de expressieve kracht van deep learning gebruiken om taken end-to-end te leren, en zijn van een over het algemeen experimentele smaak (in plaats van theoretische computerwetenschappen).
Dezer dagen komen de meest interessante Deep Learning-papers met een of andere openbaar beschikbare implementatie in TensorFlow, Pytorch, Torch, Keras of Theano, dus een manier waarop je snel een intuïtie kunt opbouwen, is kijken of je een bestaand model kunt verbeteren (bijvoorbeeld een beter ResNet maken).
Je moet waarschijnlijk niet je eigen neurale netpakket in Python vanaf nul implementeren. Het is veel werk om de kleine details goed te krijgen (zie bijvoorbeeld deze opmerking over hoe de softmax-operatie is geïmplementeerd in TensorFlow).
Deep Learning-frameworks zijn complex en kosten wat tijd om te leren, en de snelste manier om een DL-framework onder de knie te krijgen is om een uitdagende neurale netarchitectuur te implementeren die obscure functies van het framework of ideeën die meerdere subvelden van DL doorkruisen, oefent. Enkele aanbevelingen voor lastige architecturen/trainingspijplijnen:
- Progressive Nets
- DenseNet
- Synthetic Gradients
- Neural Turing Machines
- Embed-to-Control
- Neural Machine Translation
Finishing, Veel machine learning onderzoekers zitten op Twitter en de Reddit Machine Learning gemeenschap is een leuke manier om het laatste nieuws over neurale netwerken te krijgen. Het veld is zeer concurrerend en beweegt echt snel, dus het helpt om op de hoogte te blijven.
Deze vraag is oorspronkelijk verschenen op Quora. de plaats om kennis te vergaren en te delen, waardoor mensen van anderen kunnen leren en de wereld beter kunnen begrijpen. Je kunt Quora volgen op Twitter, Facebook en Google+. Meer vragen:
- Machine Learning: Hoe moeilijk is het voor een gemotiveerde wetenschapper om vanuit huis een geautomatiseerd handelssysteem te bouwen?
- Computer Programmeren: Hoe herken je een beginnende programmeur?
- Leren: Hoe kan ik sneller en beter denken?
Quora: de plaats om kennis te vergaren en te delen, zodat mensen van anderen kunnen leren en de wereld beter begrijpen.