Twee jaar geleden begon ik in mijn eentje online machine learning te leren. Ik deelde mijn reis via YouTube en mijn blog. Ik had geen idee waar ik mee bezig was. Ik had nog nooit gecodeerd, maar besloot dat ik machinaal leren wilde leren.
Wanneer mensen mijn werk vinden, reiken ze me soms de hand en stellen ze vragen. Ik heb niet alle antwoorden, maar ik beantwoord ze zo goed als ik kan. De meest voorkomende vraag die ik krijg is “waar moet ik beginnen?” De op een na meest voorkomende vraag is “hoeveel wiskunde moet ik kennen?”
Ik heb vanmorgen een handvol van deze vragen beantwoord.
Iemand vertelde me dat hij was begonnen met het leren van Python en dat hij zich wilde verdiepen in machine learning, maar niet wist wat hij nu moest doen.
Ik heb Python geleerd, wat moet ik nu doen?
Ik heb in het antwoord een aantal stappen op een rijtje gezet en die kopieer ik hier. Je kunt ze beschouwen als een ruwe schets om van onwetendheid over hoe je moet coderen te komen tot een beoefenaar van machinaal leren.
Mijn manier van leren is eerst coderen. Zorg dat je eerst code draait en leer de theorie, wiskunde, statistiek en waarschijnlijkheid wanneer je die nodig hebt, niet eerder.
Bedenk dat als je begint met machine learning, het ontmoedigend kan zijn. Er is heel veel. Neem de tijd. Maak een bladwijzer van dit artikel, zodat je er onderweg naar kunt verwijzen.
Ik ben bevooroordeeld over het gebruik van Python, omdat ik daarmee ben begonnen en dat nog steeds gebruik. Je zou iets anders kunnen gebruiken, maar deze stappen zijn voor Python.
In de e-mail stond dat ze al wat Python hadden gedaan. Maar deze stap is ook voor iemand die helemaal nieuw is. Besteed een paar maanden aan het leren van Python code op hetzelfde moment als verschillende machine learning concepten. Je hebt ze allebei nodig.
Terwijl je Python code leert, oefen je met data science tools zoals Jupyter en Anaconda. Besteed een paar uur aan het knutselen met ze, waar ze voor dienen en waarom je ze zou moeten gebruiken.
Bronnen om te leren
- Elements of AI – overzicht van de belangrijkste kunstmatige intelligentie en machine learning concepten.
- A 6 Step Field Guide for Building Machine Learning Projects – overzicht van vele praktische stappen die je kunt nemen om machine learning te gaan gebruiken op een verscheidenheid van verschillende zakelijke problemen.
- Python voor iedereen op Coursera – leer Python vanaf nul.
- Leer Python door freeCodeCamp – alle belangrijke Python-concepten in één video.
- Anaconda Tutorial door Corey Schafer – leer Anaconda (wat je gebruikt om je computer in te stellen voor data science en machine learning) in één video.
- Jupyter Notebook for Beginners Tutorial door Dataquest – ga aan de slag met Jupyter Notebooks in één artikel.
- Jupyter Notebook Tutorial door Corey Schafer – leer hoe je Jupyter Notebooks gebruikt in één video.
Leer gegevens analyseren, manipuleren & visualiseren met Pandas, NumPy Matplotlib
Als je eenmaal wat Python-vaardigheden hebt, zul je willen leren hoe je met gegevens kunt werken en deze kunt manipuleren.
Daartoe moet je vertrouwd raken met pandas, NumPy en Matplotlib.
pandas helpt je te werken met dataframes, dit zijn tabellen met informatie zoals je die in een Excel-bestand zou zien. Denk aan rijen en kolommen. Dit soort data wordt gestructureerde data genoemd.
NumPy helpt je om numerieke bewerkingen op je data uit te voeren. Machine learning zet alles wat je kunt bedenken om in getallen en vindt vervolgens de patronen in die getallen.
Matplotlib helpt je bij het maken van grafieken en visualisaties van je gegevens. Het begrijpen van een stapel getallen in een tabel kan moeilijk zijn voor mensen. We zien veel liever een grafiek waar een lijn doorheen loopt. Het maken van visualisaties is een belangrijk onderdeel van het communiceren van je bevindingen.
Bronnen om te leren
- Applied Data Science with Python on Coursera – begin met het afstemmen van je Python-vaardigheden op data science.
- pandas in 10-minutes – een snel overzicht van de pandas-bibliotheek en enkele van de nuttigste functies.
- Python Pandas Tutorial by Codebasics – YouTube-serie waarin alle belangrijke mogelijkheden van pandas worden behandeld.
- NumPy Tutorial by freeCodeCamp – leer NumPy in één YouTube-video.
- Matplotlib Tutorial by Sentdex – YouTube-serie waarin alle nuttige functies van Matplotlib worden behandeld.
Leer machine learning met scikit-learn
Nu je vaardigheden hebt om data te manipuleren en te visualiseren, is het tijd om er patronen in te vinden.
scikit-learn is een Python-bibliotheek met veel nuttige machine learning-algoritmen ingebouwd, klaar om te gebruiken.
Het bevat ook vele andere handige functies om uit te vinden hoe goed je algoritme heeft geleerd.
Focus op het leren wat voor soort machine learning problemen er zijn, zoals, classificatie en regressie, en wat voor algoritmes daar het beste voor zijn. Leer nog niet elk algoritme vanaf nul te begrijpen, maar leer ze eerst toe te passen.
Bronnen voor leren
- Machine Learning in Python with scikit-learn by Data School – YouTube-afspeellijst die alle belangrijke functionaliteit in scikit-learn leert.
- A Gentle Introduction to Exploratory Data Analysis by Daniel Bourke- zet wat je in de bovenstaande twee stappen hebt geleerd, samen in een project. Wordt geleverd met code en video om je te helpen mee te doen aan je eerste Kaggle-wedstrijd.
- Daniel Formosso’s Exploratory Data Analysis Notebook met scikit-learn – meer diepgaande versie van de bovenstaande bron, wordt geleverd met een end-to-end project met behulp van het bovenstaande.
Leer deep learning neurale netwerken
Dep learning en neurale netwerken werken het beste op data zonder veel structuur.
Dataframes hebben structuur, afbeeldingen, video’s, audiobestanden en natuurlijke taaltekst hebben structuur, maar niet zo veel.
Tidbit: Voor de meeste gevallen wil je een ensemble van beslisbomen gebruiken (Random Forests of een algoritme als XGBoost) voor gestructureerde data en wil je deep learning of transfer learning gebruiken (een vooraf getraind neuraal netwerk nemen en dat gebruiken op je probleem) voor ongestructureerde data.
Je zou een notitie kunnen beginnen met kleine weetjes als deze voor jezelf en ze verzamelen terwijl je bezig bent.
Bronnen voor leren
- deeplearning.ai van Andrew Ng op Coursera – deep learning onderwezen door een van de besten in het bedrijfsleven.
- fast.ai deep learning cursussen van Jeremy Howard – een hands-on benadering van deep learning onderwezen door een van de beste beoefenaars van de industrie.
Extra curriculum & boeken
Tijdens de cursus zou het ideaal zijn als je met kleine eigen projecten oefent wat je leert. Dit hoeven geen uitgebreide wereldveranderende dingen te zijn, maar iets waarvan je kunt zeggen: “Ik heb dit met X gedaan”. En deel dan je werk via Github of een blog post. Github wordt gebruikt om je code te laten zien, een blog post wordt gebruikt om te laten zien hoe je je werk kunt communiceren. Je moet ernaar streven om van elk project er een uit te brengen.
De beste manier om te solliciteren naar een baan is om de dingen die het vereist al gedaan te hebben. Het delen van je werk is een geweldige manier om een potentiële toekomstige werkgever te laten zien waartoe je in staat bent.
Nadat je bekend bent met het gebruik van een aantal van de verschillende frameworks voor machine learning en deep learning, zou je kunnen proberen je kennis te verstevigen door ze vanaf nul te bouwen. Je zult dit niet altijd in productie of in een machine learning-rol hoeven te doen, maar als je weet hoe dingen van binnenuit werken, kun je op je eigen werk voortbouwen.
Bronnen om te leren
- How to start your own machine learning projects by Daniel Bourke – het starten van je eigen projecten kan moeilijk zijn, dit artikel geeft je een paar tips.
- fast.ai deep learning from the foundations door Jeremy Howard – als je eenmaal top-down bent gegaan, helpt deze cursus je om de gaten van onderaf op te vullen.
- Grokking Deep Learning door Andrew Trask – dit boek leert je hoe je neurale netwerken vanaf nul kunt bouwen en waarom je dat zou moeten weten.
- These books will help you learn machine learning door Daniel Bourke – YouTube-video waarin enkele van de beste boeken over machine learning worden doorgenomen.
Hoe lang voor elke stap?
Je zou 6 maanden of meer aan elke stap kunnen besteden. Haast je niet. Nieuwe dingen leren kost tijd. De belangrijkste vaardigheid die je als data scientist of machine learning engineer opbouwt, is hoe je goede vragen stelt aan data en vervolgens je tools gebruikt om antwoorden te vinden.
Op sommige dagen zul je het gevoel hebben dat je niets leert. Zelfs achteruit gaat. Negeer het. Vergelijk je vooruitgang niet van dag tot dag. Vergelijk je voortgang jaar op jaar.
Waar kan ik deze vaardigheden leren?
Ik heb hierboven een aantal bronnen opgesomd, ze zijn allemaal online beschikbaar en de meeste zijn gratis, maar er zijn er nog veel meer.
DataCamp is een geweldige plek om de meeste van deze te doen. Anders bevat mijn Machine Learning and Artificial Intelligence resources database een goed archief van gratis en betaald leermateriaal.
Houd in gedachten dat een deel van het zijn van een data scientist of machine learning engineer het oplossen van problemen is. Zie je eerste opdracht als het uitzoeken van meer informatie over elk van de stappen hier en het creëren van je eigen curriculum om je te helpen ze te leren.
Als je wilt weten hoe een voorbeeld van een zelfleidend curriculum voor machine learning eruitziet, bekijk dan mijn Self-Created AI Masters Degree. Het is wat ik gebruikte om in 9 maanden van nul codeerwerk tot machine learning engineer te komen. Het is niet perfect, maar het is van mij, daarom werkte het.
Hoe zit het met statistiek? Hoe zit het met wiskunde? Hoe zit het met kansberekening?
Je zult deze dingen gaandeweg leren. Begin eerst met code. Laat dingen werken. Proberen alle statistieken, alle wiskunde, alle waarschijnlijkheid te leren voordat je code draait is als proberen de oceaan te koken. Het zal je tegenhouden.
Geen van de statistieken, wiskunde en waarschijnlijkheid doet er toe als je code niet werkt. Zorg dat iets werkt, en gebruik dan je onderzoeksvaardigheden om uit te zoeken of het klopt.
Hoe zit het met certificeringen?
Certificeringen zijn leuk, maar daar ben je niet op uit.
Doe niet wat ik heb gedaan en denk niet dat meer certificeringen gelijk staan aan meer vaardigheden. Dat is niet zo.