De beste ressursene jeg brukte for å lære meg maskinlæring

Feltet for maskinlæring blir mer og mer mainstream for hvert år. Med denne veksten kommer mange biblioteker og verktøy for å abstrahere bort noen av de vanskeligste konseptene å implementere for folk som starter.

De fleste vil si at du trenger høyere grad i ML for å jobbe i bransjen. Hvis du elsker å jobbe med data og praktisk matematikk, vil jeg si at dette ikke stemmer. Jeg har ikke fullført college med en maskinlæring eller datagrad, men jeg jobber med ML akkurat nå ved oppstart. Jeg vil dele det jeg pleide å lære og hvordan jeg kom hit i håp om at det vil hjelpe noen andre.

Starter

Jeg kjente Python allerede da jeg begynte, men hvis du ikke gjør det, anbefaler jeg å lære grunnleggende og mellomliggende Python først. Språket er ganske enkelt å lære sammenlignet med andre. Python er også hjemsted for det største datavitenskap / ML-samfunnet, så det er mange verktøy som kan hjelpe når du lærer.

Lær Python: freeCodeCamp Python Crash Course

Med det ute av veien, er det første du bør gjøre å laste ned “The Machine Learning Podcast” av OCDevel (overcast.fm, iTunes) til din favoritt podcast-app. Hør på de første 10–15 episodene. De er veldig flinke til å gi en oversikt over maskinlæringsøkosystemet, og det er også anbefalte ressurser som er koblet på OCDevel-nettstedet.

tooling

Anaconda & Jupyter Notebook - Dette er et must for ML & data science. Følg instruksjonene her for å installere og konfigurere dem.

Visual Studio Code med Python Plugin - Jeg trodde aldri jeg ville anbefale et Microsoft-produkt, men jeg er ærlig imponert over deres open source-forpliktelse i det siste. Dette er nå min favoritt kodeditor, selv for å gjøre noen ting i Python - som feilsøkingskode.

Kaggle.com er det beste stedet å finne datasett når du begynner. Gå videre og registrer deg for en konto og pirke rundt på nettstedet. Du vil legge merke til at det er mange konkurranser for folk i alle erfaringsnivåer og til og med tutorials for å dra med dem (som denne nybegynnervennlige en om Titanic). Disse datasettene vil være svært nyttige å øve på mens du lærer Python-biblioteker.

Python-biblioteker

Dernest er det viktig å lære de vanlige Python-bibliotekene for å jobbe med data: Numpy, Matplotlib, Pandas, Scikit-Learn, etc. Jeg anbefaler at du starter med dette kurset fra datacamp. Den går over noen grunnleggende elementer som du kan hoppe over eller bruke til gjennomgang, og Numpy-delen er en god introduksjon.

Pandas er et must å lære, men det tar også litt tid å forstå siden det gjør så mange ting. Den er bygget på toppen av Numpy og brukes til rengjøring, klargjøring og analyse av data. Den har også innebygde verktøy for ting som visualisering. Jeg brukte mye ressurser på å lære Pandas og øve med det. Her er noen:

  1. Lær Pandaer på Kaggle
  2. Lær Pandas videokurs | Notatbok for kurs
  3. Jupyter Notebook Ekstra eksempler: Grunnleggende | Plotting med Matplotlib & Pandaer | Og mange flere

Etter Pandas kommer Scikit-Learn. Det er her ting begynner å brukes mer på faktiske maskinlæringsalgoritmer. Scikit-Learn er et vitenskapelig Python-bibliotek for maskinlæring.

Den beste ressursen jeg har funnet til nå, er boken "Hands on Machine Learning with Scikit-Learn and Tensorflow". Jeg synes det gjør en veldig god jobb å lære deg trinnvis med praktiske eksempler. Den første halvdelen handler om Scikit-Learn, så jeg gjorde den delen først og kom tilbake til Tensorflow-delen.

Det er mange andre Python-biblioteker som Keras og PyTorch, men jeg vil komme inn på dem senere. Dette er allerede mye å lære :)

Grunt læring

Dette er det første trinnet inn i maskinlæring. Scikit-Learn har grunne læringsfunksjoner som lineær regresjon innebygd i biblioteket. Scikit-Learn-boken som jeg nevner ovenfor, lærer om mange typer vanlige maskinlæringsalgoritmer og lar deg øve med eksempler.

Selv om det er bra, fant jeg det likevel nyttig å også gå gjennom Andrew Ngs maskinlæringskurs fra Stanford. Det er tilgjengelig å bli revidert gratis på Coursera (det er en podcast for dette kurset på iTunes, men det er litt vanskelig å følge og godt over ti år gammelt). Kvaliteten på instruksjonene er utrolig, og det er en av de mest anbefalte ressursene på nettet (det er ikke det enkleste å komme gjennom, og det er grunnen til at jeg anbefaler det her nede).

Begynn å gå langsomt gjennom Andrew Ng-kurset, og ikke bli frustrert hvis du ikke forstår noe. Jeg måtte legge den ned og plukke den opp flere ganger. Jeg tok også Matlab på college, som er språket han bruker på kurset, så jeg hadde ikke problemer med den delen. Men hvis du vil bruke Python i stedet, kan du finne eksemplene oversatt på nettet.

Matte :)

Ja, matte er nødvendig. Imidlertid føler jeg ikke at en intens, matematisk-første tilnærming er den beste måten å lære; det er skremmende for mange mennesker. Som OCDevel antyder i sin podcast (lenket over), bruk mesteparten av tiden din på å lære praktisk maskinlæring og kanskje 15–20% på å studere matematikken.

Jeg tror det første trinnet her er å lære / børste opp statistikk. Det kan være lettere å fordøye og være både morsomt og praktisk. Etter statistikk, vil du definitivt trenge å lære litt lineær algebra og litt kalkulus for å virkelig vite hva som skjer i dyp læring. Dette vil ta litt tid, men her er noen av ressursene som jeg anbefaler for dette.

Statistiske ressurser:

  1. Jeg synes statistikkursene om Udacity er ganske gode. Du kan starte med denne og deretter utforske de andre de tilbyr.
  2. Jeg elsket boka, "Naked Statistics". Den er full av praktiske eksempler og morsom å lese.
  3. Det er også nyttig å forstå Bayesian-statistikk og hvordan den skiller seg fra frekvens- og klassiske modeller. Dette coursera-kurset gjør en god jobb med å forklare disse konseptene - det er også en del 2 av kurset her.

Lineære algebra ressurser:

  1. Boken "Linear Algebra, Step by Step" er utmerket. Det er som en lærebok på videregående / høyskole, men godt skrevet og lett å følge. Det er også mange øvelser for hvert kapittel med svar i ryggen.
  2. Essence of Linear Algebra videoserie - Matteforklaringene fra 3blue1brown er fantastiske. Jeg anbefaler matematisk innhold hans.
  3. Det er en oversikt over lineær algebra i Andrew Ng-kurset også, men jeg tror de to ressursene jeg lister over er litt enklere å bruke for å lære emnet.

Kalkulasjonsressurser:

Jeg hadde tatt noen år med Calculus før, men jeg trengte fortsatt å pusse opp ganske mye. Jeg plukket opp en brukt lærebok for Calc. 1 i en lokal bokhandel for å starte. Her er noen online ressurser som hjalp meg også.

  1. Essence of Calculus videoserie
  2. Forstå kalkulus fra The Great Courses Plus

Annen nyttig matematikk:

  1. Matematisk beslutningstaking fra The Great Courses Plus

Dyp læring

Etter å ha lært litt matematikk og det grunnleggende om datavitenskap og maskinlæring, er det på tide å hoppe inn i flere algoritmer og nevrale nettverk.

Du har sannsynligvis fått en smak av dyp læring allerede med noen av ressursene jeg nevnte i del 1, men her er noen virkelig gode ressurser for å introdusere deg for nevrale nettverk uansett. I det minste vil de være en god anmeldelse og fylle ut noen hull for deg.

  1. 3blue1brown's Series Explaining Neural Networks
  2. Deeplizard's Intro to Deep Learning-spilleliste

Mens du jobber gjennom Andrew Ng Stanford-kurset, anbefaler jeg at du sjekker ut raskt.ai. De har flere høykvalitets, praktiske videokurs som virkelig kan bidra til å lære og sementere disse konseptene. Den første er Practical Deep Learning for Coders og den andre - nettopp utgitt - er Cutting Edge Deep Learning For Coders, Del 2. Jeg plukket opp så mange ting fra å se på og se på noen av disse videoene. Et annet fantastisk trekk ved fast.ai er samfunnsforumet; sannsynligvis et av de mest aktive AI-fora på nettet.

Deep Learning Libraries in Python

Jeg synes det er lurt å lære litt fra alle disse bibliotekene. Keras er et bra sted å starte, ettersom API-en er laget for å være enklere og mer intuitiv. Akkurat nå bruker jeg nesten helt PyTorch, som er min personlige favoritt, men de har alle fordeler og ulemper. Dermed er det bra å kunne velge hvilken man kan velge i forskjellige situasjoner.

Keras

  • Deeplizard Keras Playlist - Denne kanalen har noen alvorlig gode forklaringer og eksempler. Du kan følge med på videoene gratis, eller ha tilgang til kodebøker ved å abonnere på Patreon på $ 3 (USD) -nivået.
  • Jeg synes også dokumentasjonen for Keras var ganske bra
  • Datacamp har mange velskrevne opplæringsprogrammer for ML og Keras som denne

tensorflow

  • Tensorflow-delen av boken, "Hands on Machine Learning with Scikit-Learn and Tensorflow" (nevnt ovenfor også)
  • Deeplizard Tensorflow Series

PyTorch

  • Deeplizard Pytorch Series
  • Udacity Pytorch Bootcamp - Jeg tar for øyeblikket Udacity's Deep Reinforcement Learning nanodegree, og jeg syntes PyTorch-delen deres tidligere på kurset var veldig bra. De er i ferd med å lansere den gratis for publikum! Her er noen av deres PyTorch-notatbøker på Github.
  • Fast.ai er også bygget med PyTorch - Du lærer dette biblioteket noen hvis du går gjennom kursene deres.

Blogger og forskningsartikler

Jeg har funnet det veldig nyttig å lese aktuell forskning når jeg lærer. Det er mange ressurser som hjelper deg med å lage kompliserte konsepter, og regnestykket bak dem, lettere å fordøye. Disse papirene er også mye morsommere å lese, så er du kanskje klar over.

  1. rask.ai-blogg
  2. Destill .pub - Machine Learning Research forklart tydelig
  3. Two Minute Papers - Korte videodistribusjoner av AI og andre forskningsartikler
  4. Arvix Sanity - Mer intuitivt verktøy for å søke gjennom, sortere og lagre forskningsartikler
  5. Deep Learning Papers veikart
  6. Machine Learning Subreddit - De har ‘hva er det du leser’ tråder som diskuterer forskningsartikler
  7. Arxiv Insights - Denne kanalen har noen store fordeler av AI-forskningsartikler

Audio-supplerende utdanning

  1. The Data Skeptic - De har mange gode kortere episoder, kalt [mini] s der de dekker maskinlæringskonsepter
  2. Programvareteknikk Daglig maskinlæring
  3. OCDevel Machine Learning Podcast - Jeg har allerede nevnt denne, men jeg lister den opp igjen i tilfelle du gikk glipp av den

Ytterligere læringsressurser

  • Neural Networks and Deep Learning E-book
  • Machine Learning Yearning (gratis utkast) av Andrew Ng

Slutten

Klapp hvis dette var nyttig :)

Sosiale medier: @gwen_faraday

Hvis du vet om andre ressurser som er gode, eller ser at jeg mangler noe, kan du legge igjen lenker i kommentarene. Takk skal du ha.