De beste bronnen die ik gebruikte om mezelf machine learning te leren

Het gebied van machine learning wordt elk jaar meer en meer mainstream. Met deze groei komen vele bibliotheken en hulpmiddelen om enkele van de moeilijkste concepten te abstraheren die moeten worden geïmplementeerd voor beginnende mensen.

De meeste mensen zullen zeggen dat je een hogere graad in ML nodig hebt om in de industrie te werken. Als je graag met gegevens en praktische wiskunde werkt, zou ik zeggen dat dit niet waar is. Ik ben niet afgestudeerd met een diploma Machine Learning of data, maar ik werk nu bij ML bij een startup. Ik wil delen wat ik vroeger heb geleerd en hoe ik hier ben gekomen in de hoop dat het iemand anders zal helpen.

Ermee beginnen

Ik kende Python al toen ik begon, maar als je dat niet doet, raad ik aan eerst de basis- en intermediaire Python te leren. De taal is vrij gemakkelijk te leren in vergelijking met anderen. Python is ook de thuisbasis van de grootste data science / ML-community, dus er zijn tal van hulpmiddelen om te helpen tijdens het leren.

Leer Python: freeCodeCamp Python Crash Course

Met dat uit de weg, is het eerste wat je moet doen het downloaden van "The Machine Learning Podcast" van OCDevel (overcast.fm, iTunes) naar je favoriete podcast-app. Luister naar de eerste 10-15 afleveringen. Ze zijn erg goed in het geven van een overzicht van het machine learning ecosysteem en er zijn ook aanbevolen bronnen die zijn gekoppeld op de OCDevel-site.

tooling

Anaconda & Jupyter Notebook - Dit zijn een must voor ML & data science. Volg de instructies hier om te installeren en in te stellen.

Visual Studio Code met Python Plugin - ik had nooit gedacht dat ik een Microsoft-product zou aanbevelen, maar ik ben eerlijk onder de indruk van hun open source-engagement de laatste tijd. Dit is nu mijn favoriete code-editor, zelfs voor sommige dingen in Python - zoals foutopsporingscode.

Kaggle.com is de beste plaats om datasets te vinden wanneer u begint. Ga je gang en meld je aan voor een account en kijk rond op de site. Je zult merken dat er veel competities zijn voor mensen van alle ervaringsniveaus en zelfs tutorials die bij hen passen (zoals deze beginnersvriendelijke over de Titanic). Deze datasets zijn erg handig om mee te oefenen terwijl je Python-bibliotheken leert.

Python-bibliotheken

Vervolgens is het belangrijk om de algemene Python-bibliotheken te leren voor het werken met gegevens: Numpy, Matplotlib, Panda's, Scikit-Learn, enz. Ik raad aan om te beginnen met deze cursus vanaf datacamp. Het gaat over enkele basisprincipes die je kunt overslaan of gebruiken voor beoordeling en de Numpy-sectie is een goede introductie.

Panda's zijn een must om te leren, maar het duurt ook even voordat je het begrijpt, omdat het zoveel dingen doet. Het is gebouwd op Numpy en wordt gebruikt voor het opschonen, voorbereiden en analyseren van gegevens. Het heeft ook ingebouwde hulpmiddelen voor dingen zoals visualisatie. Ik heb veel bronnen gebruikt om Panda's te leren en ermee te oefenen. Hier zijn een paar:

  1. Leer Panda's op Kaggle
  2. Leer Panda's Videocursus | Notebook voor de cursus
  3. Jupyter Notebook Extra voorbeelden: Basics | Plotten met Matplotlib & Panda's | En nog veel meer

Na Panda's komt Scikit-Learn. Hier worden dingen meer toegepast op daadwerkelijke algoritmen voor machine learning. Scikit-Learn is een wetenschappelijke Python-bibliotheek voor machine learning.

De beste bron die ik tot nu toe voor dit heb gevonden, is het boek "Hands on Machine Learning met Scikit-Learn en Tensorflow". Ik denk dat het je heel goed helpt door je stap voor stap te leren met praktische voorbeelden. De eerste helft gaat over Scikit-Learn, dus ik deed dat deel eerst en kwam toen terug naar het Tensorflow-gedeelte.

Er zijn veel andere Python-bibliotheken zoals Keras en PyTorch, maar daar kom ik later op terug. Dit is al veel te leren :)

Ondiep leren

Dit is de eerste stap naar machine learning. Scikit-Learn heeft ondiepe leerfuncties zoals lineaire regressie ingebouwd in de bibliotheek. Het Scikit-Learn-boek dat ik hierboven noem, leert over vele soorten veel voorkomende machine learning-algoritmen en laat je oefenen met praktische voorbeelden.

Hoewel dat goed is, vond ik het nog steeds nuttig om ook de Machine Learning-cursus van Andrew Ng van Stanford te volgen. Het is beschikbaar om gratis te worden gecontroleerd op Coursera (er is een podcast voor deze cursus op iTunes, maar het is een beetje moeilijk te volgen en meer dan tien jaar oud). De kwaliteit van de instructies is geweldig en het is een van de meest aanbevolen bronnen online (het is niet de gemakkelijkste manier om er doorheen te komen, daarom raad ik het hier aan).

Begin langzaam de Andrew Ng-cursus te doorlopen en raak niet gefrustreerd als je iets niet begrijpt. Ik moest het neerleggen en meerdere keren oppakken. Ik heb ook Matlab gevolgd op de universiteit, de taal die hij in de cursus gebruikt, dus ik had geen problemen met dat deel. Maar als u Python wilt gebruiken, kunt u de voorbeelden online vinden.

Wiskunde :)

Ja, wiskunde is noodzakelijk. Ik heb echter niet het gevoel dat een intense, wiskundige aanpak de beste manier is om te leren; het is voor veel mensen intimiderend. Zoals OCSevel suggereert in zijn podcast (hierboven gelinkt), besteed je het grootste deel van je tijd aan het leren van praktische machine learning en misschien 15-20% aan het bestuderen van de wiskunde.

Ik denk dat de eerste stap hier is om te leren over statistieken. Het kan gemakkelijker te verteren zijn en zowel heel leuk als praktisch zijn. Na de statistieken zul je zeker een beetje lineaire algebra en wat calculus moeten leren om echt te weten wat er gaande is in diep leren. Dit zal enige tijd duren, maar hier zijn enkele van de middelen die ik hiervoor aanbeveel.

Statistieken bronnen:

  1. Ik denk dat de statistiekencursussen over Udacity behoorlijk goed zijn. U kunt beginnen met deze en vervolgens de andere onderzoeken die ze aanbieden.
  2. Ik hield van het boek "Naked Statistics". Het zit vol met praktische voorbeelden en is leuk om te lezen.
  3. Het is ook handig om Bayesiaanse statistieken te begrijpen en te zien hoe deze verschillen tussen Frequentist en Klassieke modellen. Deze cursus doet geweldig werk om deze concepten uit te leggen - er is ook een deel 2 van de cursus hier.

Lineaire algebrabronnen:

  1. Het boek "Linear Algebra, Step by Step" is uitstekend. Het is als een leerboek op de middelbare school, maar goed geschreven en gemakkelijk te volgen. Er zijn ook tal van oefeningen voor elk hoofdstuk met antwoorden achterin.
  2. Essence of Linear Algebra-videoserie - De wiskundige verklaringen van 3blue1brown zijn verbluffend. Ik raad zijn wiskundige inhoud ten zeerste aan.
  3. Er is ook een overzicht van lineaire algebra in de Andrew Ng-cursus, maar ik denk dat de twee bronnen die ik hierboven noem, iets gemakkelijker te gebruiken zijn om het onderwerp te leren.

Calculus bronnen:

Ik had eerder een paar jaar Calculus genomen, maar ik moest nog steeds behoorlijk wat oppoetsen. Ik pakte een gebruikt leerboek voor Calc. 1 bij een plaatselijke boekhandel om te beginnen. Hier zijn enkele online bronnen die mij ook hebben geholpen.

  1. Essence of Calculus-videoserie
  2. Inzicht in Calculus van The Great Courses Plus

Andere nuttige wiskunde:

  1. Wiskundige besluitvorming van The Great Courses Plus

Diep leren

Na wat wiskunde en de basis van data science en machine learning te hebben geleerd, is het tijd om in meer algoritmen en neurale netwerken te duiken.

Je hebt waarschijnlijk al een voorproefje gekregen van diep leren met enkele van de bronnen die ik in deel 1 heb genoemd, maar hier zijn enkele echt goede middelen om je toch al kennis te laten maken met neurale netwerken. Ze zullen in ieder geval een goede beoordeling zijn en enkele gaten voor u invullen.

  1. De serie van 3blue1brown die neurale netwerken verklaart
  2. Deeplizard's inleiding tot Deep Learning-afspeellijst

Terwijl je de Andrew Ng Stanford-cursus doorloopt, raad ik aan om fast.ai te bekijken. Ze hebben verschillende praktische videocursussen van hoge kwaliteit die echt kunnen helpen om deze concepten te leren en te versterken. De eerste is Practical Deep Learning voor Coders en de tweede - net vrijgegeven - is Cutting Edge Deep Learning voor Coders, deel 2. Ik heb zoveel dingen opgepikt bij het bekijken en opnieuw bekijken van sommige van deze video's. Een ander verbazingwekkend kenmerk van fast.ai is het communityforum; waarschijnlijk een van de meest actieve AI-forums online.

Diepgaande bibliotheken in Python

Ik vind het een goed idee om een ​​beetje te leren van alle drie deze bibliotheken. Keras is een goede plek om te beginnen, omdat de API eenvoudiger en intuïtiever is gemaakt. Op dit moment gebruik ik bijna volledig PyTorch, wat mijn persoonlijke favoriet is, maar ze hebben allemaal voor- en nadelen. Het is dus goed om in verschillende situaties te kunnen kiezen.

Keras

  • Deeplizard Keras-afspeellijst - Dit kanaal heeft een aantal zeer goede uitleg en voorbeelden. Je kunt de video's gratis volgen of je hebt ook toegang tot de codeboekjes door je te abonneren op Patreon op de $ 3 (USD) -laag.
  • Ik vond ook de documentatie voor Keras behoorlijk goed
  • Datacamp heeft veel goed geschreven tutorials voor ML en Keras zoals deze

Tensorflow

  • De Tensorflow-sectie van het boek "Hands on Machine Learning met Scikit-Learn en Tensorflow" (ook hierboven vermeld)
  • Deeplizard Tensorflow-serie

PyTorch

  • Deeplizard Pytorch-serie
  • Udacity Pytorch Bootcamp - Ik volg momenteel Udacity's Deep Reinforcement Learning nanodegree en ik vond hun PyTorch-gedeelte eerder in de cursus erg goed. Ze gaan het gratis voor het publiek lanceren! Hier zijn enkele van hun PyTorch-notebooks op Github.
  • Fast.ai is ook gebouwd met PyTorch - Je zult deze bibliotheek een beetje leren als je hun cursussen doorloopt.

Blogs & onderzoekspapieren

Ik heb het erg nuttig gevonden om huidig ​​onderzoek te lezen terwijl ik leer. Er zijn tal van hulpmiddelen die helpen bij het maken van gecompliceerde concepten, en de wiskunde erachter, gemakkelijker te verteren. Deze papieren zijn ook veel leuker om te lezen dan je je misschien realiseert.

  1. fast.ai blog
  2. Distill .pub - Machine Learning Research duidelijk uitgelegd
  3. Two Minute Papers - Korte video-uitsplitsingen van AI en andere onderzoeksrapporten
  4. Arvix Sanity - Meer intuïtieve tool om onderzoekspapers te doorzoeken, te sorteren en op te slaan
  5. Deep Learning Papers Roadmap
  6. Machine Learning Subreddit - Ze hebben ‘wat lees je’ discussies over onderzoeksdocumenten
  7. Arxiv Insights - Dit kanaal heeft een aantal geweldige analyses van AI-onderzoeksrapporten

Audio-aanvullend onderwijs

  1. The Data Skeptic - Ze hebben veel goede kortere afleveringen, genaamd [mini] s waar ze betrekking hebben op machine learning-concepten
  2. Software engineering Dagelijks machinaal leren
  3. OCDevel Machine Learning Podcast - ik heb deze al genoemd, maar ik vermeld het opnieuw voor het geval je het gemist hebt

Aanvullende leermiddelen

  • Neurale netwerken en Deep Learning E-book
  • Machine Learning Yearning (gratis ontwerp) door Andrew Ng

Het einde

Klap als dit nuttig was :)

Sociale media: @gwen_faraday

Als je andere bronnen kent die goed zijn, of zie dat ik iets mis, laat dan links achter in de comments. Dank je.