De bedste ressourcer, jeg brugte til at lære mig maskinindlæring

Feltet maskinindlæring bliver mere og mere mainstream hvert år. Med denne vækst kommer mange biblioteker og værktøjer til at fjerne nogle af de sværeste begreber at implementere for folk, der starter.

De fleste mennesker vil sige, at du har brug for en højere grad i ML for at arbejde i branchen. Hvis du elsker at arbejde med data og praktisk matematik, så vil jeg sige, at dette ikke er sandt. Jeg tog ikke college med en maskinlæring eller datagrad, men jeg arbejder med ML lige nu ved opstart. Jeg vil dele, hvad jeg plejede at lære, og hvordan jeg kom her i håb om, at det vil hjælpe en anden.

Kom godt i gang

Jeg kendte Python allerede, da jeg startede, men hvis du ikke gør det, anbefaler jeg, at du først lærer grundlæggende og mellemliggende Python. Sproget er ret let at lære sammenlignet med andre. Python er også hjemsted for det største data science / ML-samfund, så der er masser af værktøjer, der kan hjælpe, når du lærer.

Lær Python: freeCodeCamp Python Crash Course

Med det ude af vejen er det første, du skal gøre, at downloade "The Machine Learning Podcast" af OCDevel (overcast.fm, iTunes) til din yndlings podcast-app. Lyt til de første 10-15 episoder. De er meget gode til at give et overblik over maskinlæringsøkosystemet, og der er også anbefalede ressourcer, der er linket på OCDevel-webstedet.

Værktøj

Anaconda & Jupyter Notebook - Disse er et must for ML & datalogi. Følg instruktionerne her for at installere og konfigurere dem.

Visual Studio-kode med Python-plugin - Jeg troede aldrig, jeg ville anbefale et Microsoft-produkt, men jeg er ærligt imponeret over deres open source-forpligtelse på det seneste. Dette er nu min foretrukne kodeditor, selv for at lave nogle ting i Python-lignende fejlretningskode.

Kaggle.com er det bedste sted at finde datasæt, når du starter. Gå videre og tilmeld dig en konto, og kig rundt på siden. Du vil bemærke, at der er mange konkurrencer for folk på alle oplevelsesniveauer og endda vejledninger, der skal følges med dem (som denne nybegyndervenlige om Titanic). Disse datasæt vil være meget nyttige at øve med, mens du lærer Python-biblioteker.

Python-biblioteker

Dernæst er det vigtigt at lære de almindelige Python-biblioteker til at arbejde med data: Numpy, Matplotlib, Pandas, Scikit-Learn osv. Jeg anbefaler at starte med dette kursus fra datacamp. Det går over nogle grundlæggende, som du kan springe over eller bruge til gennemgang, og Numpy-sektionen er en god introduktion.

Pandaer er et must at lære, men det tager også lidt at forstå, da det gør så mange ting. Den er bygget oven på Numpy og bruges til rengøring, klargøring og analyse af data. Det har også indbyggede værktøjer til ting som visualisering. Jeg brugte en masse ressourcer til at lære pandaer og øve mig med det. Her er et par:

  1. Lær pandaer på Kaggle
  2. Lær Pandas videokursus | Notebook til kursus
  3. Ekstra eksempler på Jupyter Notebook: Grundlæggende | Planlægning med Matplotlib & Pandas | Og mange flere

Efter Pandas kommer Scikit-Learn. Det er her ting begynder at blive brugt mere på faktiske maskinlæringsalgoritmer. Scikit-Learn er et videnskabeligt Python-bibliotek til maskinindlæring.

Den bedste ressource, jeg har fundet til dette hidtil, er bogen "Hands on Machine Learning with Scikit-Learn and Tensorflow". Jeg synes, det gør et meget godt stykke arbejde med at lære dig trin for trin med praktiske eksempler. Den første halvdel handler om Scikit-Learn, så jeg gjorde den del først og kom derefter tilbage til Tensorflow-delen.

Der er mange andre Python-biblioteker som Keras og PyTorch, men jeg vil komme ind på dem senere. Dette er allerede meget at lære :)

Shallow Learning

Dette er det første skridt i maskinindlæring. Scikit-Learn har lave indlæringsfunktioner som lineær regression indbygget i biblioteket. Scikit-Learn-bogen, som jeg nævner ovenfor, lærer om mange typer af almindelige maskinlæringsalgoritmer og giver dig mulighed for at øve dig med eksempler.

Selvom det er godt, fandt jeg det stadig nyttigt at også gennemgå Andrew Ngs Machine Learning-kursus fra Stanford. Det er tilgængeligt for at blive revideret gratis på Coursera (der er en podcast til dette kursus på iTunes, men det er lidt svært at følge og godt over et årti gammel). Undervisningskvaliteten er fantastisk, og det er en af ​​de mest anbefalede ressourcer online (det er ikke den nemmeste at komme igennem, hvorfor jeg anbefaler det hernede).

Start langsomt gennem Andrew Ng-kurset og bliv ikke frustreret, hvis du ikke forstår noget. Jeg var nødt til at lægge den ned og hente den flere gange. Jeg tog også Matlab på college, hvilket er det sprog, han bruger på kurset, så jeg havde ikke problemer med den del. Men hvis du vil bruge Python i stedet, kan du finde eksemplerne oversat online.

Matematik :)

Ja, matematik er nødvendig. Jeg har dog ikke lyst til, at en intens, matematik-første tilgang er den bedste måde at lære på; det er skræmmende for mange mennesker. Som OCDevel foreslår i sin podcast (linket ovenfor), skal du bruge det meste af din tid på at lære praktisk maskinlæring og måske 15–20% på at studere matematik.

Jeg tror, ​​det første skridt her er at lære / uddybe statistikker. Det kan være lettere at fordøje og være både sjovt og praktisk. Efter statistik skal du helt sikkert lære lidt lineær algebra og noget kalkulation for virkelig at vide, hvad der foregår i dyb læring. Dette vil tage noget tid, men her er nogle af de ressourcer, jeg anbefaler til dette.

Statistiske ressourcer:

  1. Jeg synes, at statistikkurserne om Udacity er ret gode. Du kan starte med denne og derefter udforske de andre, de tilbyder.
  2. Jeg elskede bogen "Naked Statistics". Den er fuld af praktiske eksempler og behagelig at læse.
  3. Det er også nyttigt at forstå Bayesianske statistikker, og hvordan det adskiller sig fra frekvensistiske og klassiske modeller. Dette kursus kursus gør et godt stykke arbejde med at forklare disse begreber - der er også en del 2 af kurset her.

Lineære algebra ressourcer:

  1. Bogen "Lineær algebra, trin for trin" er fremragende. Det er som en gymnasium / college lærebog, men velskrevet og let at følge. Der er også masser af øvelser til hvert kapitel med svar bagpå.
  2. Essence of Linear Algebra videoserie - De matematiske forklaringer fra 3blue1brown er fantastiske. Jeg kan varmt anbefale hans matematiske indhold.
  3. Der er også en oversigt over lineær algebra i Andrew Ng-kurset, men jeg synes, at de to ressourcer, jeg nævner ovenfor, er lidt lettere at bruge til at lære emnet.

Kalkulationsressourcer:

Jeg havde taget et par år med beregning før, men jeg havde stadig brug for at børste op lidt. Jeg hentede en brugt lærebog til Calc. 1 i en lokal boghandel for at starte. Her er nogle online ressourcer, der også hjalp mig.

  1. Essence of Calculus videoserier
  2. Forståelse af beregning fra The Great Courses Plus

Anden hjælpsom matematik:

  1. Matematisk beslutningstagning fra The Great Courses Plus

Dyb læring

Efter at have lært noget matematik og det grundlæggende inden for datalogi og maskinindlæring er det tid til at springe ind i flere algoritmer og neurale netværk.

Du har sandsynligvis allerede fået en smag af dyb læring med nogle af de ressourcer, jeg nævnte i del 1, men her er nogle rigtig gode ressourcer til alligevel at introducere dig til neurale netværk. I det mindste vil de være en god anmeldelse og udfylde nogle huller for dig.

  1. 3blue1browns serie, der forklarer neurale netværk
  2. Deeplizard's introduktion til Deep Learning-afspilningsliste

Mens du arbejder gennem Andrew Ng Stanford-kurset, anbefaler jeg, at du tjekker hurtigt.ai. De har flere praktiske videokurser af høj kvalitet, der virkelig kan hjælpe med at lære og cementere disse koncepter. Den første er Practical Deep Learning for Coders, og den anden - netop frigivet - er Cutting Edge Deep Learning For Coders, del 2. Jeg hentede så mange ting fra at se og se igen på nogle af disse videoer. Et andet fantastisk træk ved fast.ai er community forum; sandsynligvis et af de mest aktive AI-fora online.

Deep Learning Libraries i Python

Jeg synes, det er en god idé at lære lidt fra alle disse tre biblioteker. Keras er et godt sted at starte, da API'et er lavet til at være enklere og mere intuitivt. Lige nu bruger jeg næsten udelukkende PyTorch, som er min personlige favorit, men de har alle pro'er og ulemper. Således er det godt at være i stand til hvilken man skal vælge i forskellige situationer.

Keras

  • Deeplizard Keras Playlist - Denne kanal har nogle alvorligt gode forklaringer og eksempler. Du kan følge med videoerne gratis eller også få adgang til kodebøgerne ved at abonnere på Patreon på niveauet $ 3 (USD).
  • Jeg fandt også, at dokumentationen til Keras var ganske god
  • Datacamp har mange velskrevne tutorials til ML og Keras som denne

Tensorflow

  • Tensorflow sektionen af ​​bogen "Hands on Machine Learning with Scikit-Learn and Tensorflow" (også nævnt ovenfor)
  • Deeplizard Tensorflow-serien

PyTorch

  • Deeplizard Pytorch-serien
  • Udacity Pytorch Bootcamp - Jeg tager i øjeblikket Udacity's Deep Reinforcement Learning nanodegree, og jeg syntes, at deres PyTorch-sektion tidligere i kurset var meget god. De er ved at lancere det gratis for offentligheden! Her er nogle af deres PyTorch-notesbøger på Github.
  • Fast.ai er også bygget med PyTorch - Du vil lære dette bibliotek noget, hvis du gennemgår deres kurser.

Blogs & Research Papers

Jeg har fundet det meget nyttigt at læse nuværende forskning, når jeg lærer. Der er masser af ressourcer, der hjælper med at lave komplicerede koncepter, og matematikken bag dem er lettere at fordøje. Disse papirer er også meget sjovere at læse, så kan du indse.

  1. fast.ai blog
  2. Distill .pub - Machine Learning Research forklaret tydeligt
  3. Two Minute Papers - Kort videoopdeling af AI og andre forskningsopgaver
  4. Arvix Sanity - Mere intuitivt værktøj til at søge i, sortere og gemme forskningspapirer
  5. Deep Learning Papers køreplan
  6. Machine Learning Subreddit - De har 'hvad læser du' tråde, der diskuterer forskningspapirer
  7. Arxiv Insights - Denne kanal har nogle store opdelinger af AI-forskningspapirer

Audio-supplerende uddannelse

  1. The Data Skeptic - De har mange gode kortere episoder, kaldet [mini], hvor de dækker maskinindlæringskoncepter
  2. Software Engineering Daglig maskinindlæring
  3. OCDevel Machine Learning Podcast - Jeg har allerede nævnt denne, men jeg nævner den igen bare hvis du savnede den

Yderligere læringsressourcer

  • Neurale netværk og Deep Learning E-bog
  • Machine Learning Yearning (gratis udkast) af Andrew Ng

Slutningen

Venligst klapp, hvis dette var nyttigt :)

Sociale medier: @gwen_faraday

Hvis du kender til andre ressourcer, der er gode, eller ser at jeg mangler noget, skal du efterlade links i kommentarerne. Tak skal du have.