Parhaat resurssit, joita käytin koneoppimisen opettamiseen

Koneoppimisen alasta on tulossa yhä enemmän valtavirtaa joka vuosi. Tämän kasvun myötä tulevat monet kirjastot ja työkalut erottamaan joitain vaikeimpia toteutettavia käsitteitä aloittelijoille.

Useimmat ihmiset sanovat, että tarvitset korkeamman tason tutkinnon ML: ssä toimiakseen teollisuudessa. Jos rakastat työskennellä datan ja käytännön matematiikan kanssa, sanoisin, että tämä ei ole totta. En valmistunut korkeakoulusta koneoppimisen tai datan tutkinnolla, mutta työskentelen ML: n kanssa juuri nyt käynnistettäessä. Haluan kertoa, mitä käytin ennen oppimista ja miten pääsin tänne toivoen, että se auttaa joku muu.

Päästä alkuun

Tiesin Pythonin jo aloittaessani, mutta jos et, suosittelen ensin Pythonin perus- ja keskitason oppimista. Kieli on melko helppo oppia muihin verrattuna. Python on myös koti suurimmalle tietojenkäsittely- / ML-yhteisölle, joten oppimisen aikana on paljon työkaluja.

Opi Python: freeCodeCamp Pythonin kaatumiskurssi

Kun tämä on poissa, ensimmäinen asia, jonka sinun pitäisi tehdä, on ladata OCDevelin (Thecast Learning Podcast) OCDeveliltä (overcast.fm, iTunes) suosikki podcast-sovellukseesi. Kuuntele ensimmäiset 10–15 jaksoa. Ne antavat erittäin hyvän yleiskuvan koneoppimisen ekosysteemistä, ja OCDevel-sivustoon on linkitetty myös suositeltuja resursseja.

Työkalut

Anaconda & Jupyter -muistikirja - Nämä ovat välttämättömiä ML- ja datatieteelle. Asenna ja asenna ne noudattamalla näitä ohjeita.

Visual Studio -koodi Python-laajennuksella - en koskaan uskonut suosittelevani Microsoft-tuotetta, mutta olen rehellisesti vaikuttunut heidän avoimen lähdekoodin sitoutumisestaan ​​viime aikoina. Tämä on nyt suosikkikoodieditori, jopa tekemällä joitain asioita Pythonissa - kuten virheenkorjauskoodia.

Kaggle.com on paras paikka löytää tietoaineistoja aloittaessasi. Mene eteenpäin ja rekisteröidy tilille ja pistä sivustoa. Huomaat, että heidän kanssaan on paljon kilpailuja kaiken kokemustason ihmisille ja jopa opetusohjelmia (kuten tämä aloittelijoille sopiva Titanicista). Nämä tietojoukot ovat erittäin hyödyllisiä harjoitellessaan, kun opit Python-kirjastoja.

Python-kirjastot

Seuraavaksi on tärkeää oppia yleiset Python-kirjastot tietojen käsittelyä varten: Numpy, Matplotlib, Pandas, Scikit-Learn jne. Suosittelen aloittamaan tämän kurssin datacampista. Siinä käydään läpi joitain perusteita, jotka voit ohittaa tai käyttää tarkistamiseen, ja Numpy-osa on hyvä intro.

Pandas on opittava, mutta sen ymmärtäminen vie myös jonkin aikaa, koska se tekee niin monia asioita. Se on rakennettu Numpyn päälle ja sitä käytetään tietojen puhdistamiseen, valmisteluun ja analysointiin. Siinä on myös sisäänrakennettuja työkaluja esimerkiksi visualisointiin. Käytin paljon resursseja oppimaan pandoja ja harjoittelemaan niiden kanssa. Tässä on muutama:

  1. Opi pandat Kagglessa
  2. Opi Pandojen videokurssi | Muistikirja kurssille
  3. Jupyter-muistikirjan lisäesimerkit: perusteet | Suunnittelu Matplotlibin ja pandojen kanssa Ja paljon muuta

Pandojen jälkeen tulee Scikit-Learn. Täällä asioita aletaan soveltaa enemmän todellisiin koneoppimisalgoritmeihin. Scikit-Learn on tieteellinen Python-kirjasto koneoppimiseen.

Paras tähän mennessä löytämäni lähde on kirja "Kädet koneoppimisessa Scikit-Learnin ja Tensorflow'n kanssa". Mielestäni se tekee erittäin hyvää työtä opettaa sinulle askel askeleelta käytännön esimerkkien avulla. Ensimmäinen puoli on noin Scikit-Learn, joten tein sen osan ensin ja palasin sitten Tensorflow-osaan.

On monia muita Python-kirjastoja, kuten Keras ja PyTorch, mutta käsittelen niitä myöhemmin. Tätä on jo paljon opittavaa :)

Matala oppiminen

Tämä on ensimmäinen askel koneoppimiseen. Scikit-Learnilla on matalat oppimistoiminnot, kuten lineaarinen regressio kirjastoon. Edellä mainitsemani Scikit-Learn-kirja opettaa monen tyyppisiä yleisiä koneoppimisalgoritmeja ja antaa sinun harjoitella esimerkkien avulla.

Vaikka se onkin hyvä, minusta oli silti hyödyllistä käydä läpi Andrew Ng: n koneoppimiskurssi Stanfordista. Se on saatavana tarkastettavaksi ilmaiseksi Courserassa (tälle kurssille on podcast iTunesissa, mutta sitä on vähän vaikea seurata ja reilusti yli vuosikymmenen vanha). Opetuksen laatu on hämmästyttävä ja se on yksi suositelluimmista resursseista verkossa (se ei ole helpoin saada läpi, minkä vuoksi suosittelen sitä täällä).

Aloita Andrew Ng -kurssin käyminen hitaasti ja älä turhaudu, jos et ymmärrä jotain. Minun piti laittaa se alas ja nostaa se useita kertoja. Otin myös Matlabin yliopistoon, joka on kieli, jota hän käyttää kurssilla, joten minulla ei ollut vaikeuksia tämän osan kanssa. Mutta jos haluat käyttää Pythonia sen sijaan, löydät esimerkit käännetyiksi verkossa.

Matematiikka :)

Kyllä, matematiikka on välttämätöntä. En kuitenkaan tunne, että intensiivinen, matematiikka ensin -lähestymistapa on paras tapa oppia; se on pelottavaa monille ihmisille. Kuten OCDevel ehdottaa podcastissaan (linkitetty yllä), viettää suurimman osan ajastasi käytännön koneoppimiseen ja ehkä 15–20% matematiikan opiskeluun.

Mielestäni ensimmäinen askel tässä on oppia / parantaa tilastoja. Se voi olla helpommin sulava ja hauska ja käytännöllinen. Tilastojen jälkeen sinun on ehdottomasti opittava vähän lineaarista algebraa ja laskelmia, jotta tiedät todella, mitä syvässä oppimisessa tapahtuu. Tämä vie jonkin aikaa, mutta tässä on joitain resursseja, joita suosittelen tähän.

Tilastoresurssit:

  1. Udacityn tilastokurssit ovat mielestäni melko hyviä. Voit aloittaa tällä ja tutkia sitten muita heidän tarjoamiaan.
  2. Rakastin kirjaa "Naked Statistics". Se on täynnä käytännön esimerkkejä ja miellyttävä lukea.
  3. On myös hyödyllistä ymmärtää Bayesin tilastot ja miten ne eroavat frekvenssistä ja klassisesta mallista. Tämä Coursera-kurssi tekee hyvää työtä selittäessään näitä käsitteitä - täällä on myös kurssin osa 2.

Lineaarisen algebran resurssit:

  1. Kirja ”Lineaarinen algebra, askel askeleelta” on erinomainen. Se on kuin lukion / yliopiston oppikirja, mutta hyvin kirjoitettu ja helppo seurata. Kullekin luvulle on myös paljon harjoituksia, joiden vastaukset ovat takana.
  2. Lineaarisen algebran videosarjan olemus - 3blue1brownin matemaattiset selitykset ovat hämmästyttäviä. Suosittelen hänen matematiikan sisältöään.
  3. Myös Andrew Ng -kurssilla on yleiskatsaus lineaarisesta algebrasta, mutta mielestäni yllä lueteltuja kahta resurssia on vähän helpompi käyttää oppia varten.

Laskentaresurssit:

Olin ottanut muutaman vuoden Calculusta aiemmin, mutta minun piti silti harjata melko vähän. Otin käytetyn oppikirjan Calcille. 1 paikallisessa kirjakaupassa aloittaaksesi. Tässä on joitain online-resursseja, jotka auttoivat minua myös.

  1. Essence of Calculus -videosarja
  2. Laskennan ymmärtäminen The Great Courses Plus -sovelluksesta

Muu hyödyllinen matematiikka:

  1. Matemaattinen päätöksenteko suurista kursseista Plus

Syvä oppiminen

Matematiikan, datatieteen ja koneoppimisen perusteiden oppimisen jälkeen on aika siirtyä useampiin algoritmeihin ja hermoverkoihin.

Luultavasti sait maistaa syvää oppimista joillakin resursseilla, jotka mainitsin osassa 1, mutta tässä on joitain todella hyviä resursseja, jotka tutustuttavat sinut hermoverkoihin joka tapauksessa. Ainakin ne ovat hyvä arvostelu ja täyttävät joitain aukkoja sinulle.

  1. 3blue1brownin sarja selittää hermoverkkoja
  2. Deeplizardin esittely syvällisen oppimisen soittolistaan

Kun suoritat Andrew Ng Stanfordin kurssia, suosittelen tarkistaa fast.ai. Heillä on useita laadukkaita, käytännöllisiä videokursseja, jotka voivat todella auttaa oppimaan ja vahvistamaan näitä käsitteitä. Ensimmäinen on käytännön Deep Learning for Coders ja toinen - juuri julkaistu - Cutting Edge Deep Learning For Coders, osa 2. Otin niin paljon asioita katsomalla ja katsomalla uudelleen joitain näistä videoista. Toinen fast.ai: n hämmästyttävä piirre on yhteisön foorumi; luultavasti yksi aktiivisimmista tekoälyfoorumeista verkossa.

Kirjastojen syvällinen oppiminen Pythonissa

Mielestäni on hyvä idea oppia vähän näistä kolmesta kirjastosta. Keras on hyvä paikka aloittaa, koska sen API on tehty yksinkertaisemmaksi ja intuitiivisemmaksi. Tällä hetkellä käytän melkein kokonaan PyTorchia, joka on henkilökohtainen suosikkini, mutta heillä kaikilla on ammattilaisia. Siksi on hyvä pystyä valitsemaan kumpi valitsemaan eri tilanteissa.

Keras

  • Deeplizard Keras Playlist - Tällä kanavalla on joitakin erittäin hyviä selityksiä ja esimerkkejä. Voit seurata videoita yhdessä ilmaiseksi tai käyttää koodikirjamuistikirjoja tilaamalla Patreonin $ 3 (USD) -tasolla.
  • Löysin myös Kerasin dokumentaation melko hyvältä
  • Datacampilla on monia hyvin kirjoitettuja opetusohjelmia ML: lle ja Kerasille, kuten tämä

Tensorflow

  • Kirjan Tensorflow-osio "Kädet koneoppimisessa Scikit-Learnin ja Tensorflow'n kanssa" (mainittu myös edellä)
  • Deeplizard Tensorflow -sarja

PyTorch

  • Deeplizard Pytorch -sarja
  • Udacity Pytorch Bootcamp - Otan tällä hetkellä Udacityn syvävahvistusoppimisen nanokokemusta ja ajattelin heidän PyTorch-osionsa aiemmin kurssilla olevan erittäin hyvä. He ovat aikeissa käynnistää sen ilmaiseksi yleisölle! Tässä on joitain heidän PyTorch-muistikirjojaan Githubissa.
  • Fast.ai on rakennettu myös PyTorchin kanssa - Opit tätä kirjastoa, jos käydät läpi heidän kurssinsa.

Blogit ja tutkimuspaperit

Minusta on ollut erittäin hyödyllistä lukea nykyistä tutkimusta oppimisen aikana. On paljon resursseja, jotka auttavat tekemään monimutkaisia ​​käsitteitä ja niiden takana olevan matematiikan helpommin sulavia. Nämä paperit ovat myös paljon hauskempia lukea, niin saatat ymmärtää.

  1. fast.ai -blogi
  2. Distill .pub - Koneoppimisen tutkimus selitetään selvästi
  3. Two Minute Papers - Lyhyt videoerittely tekoälystä ja muista tutkimuksista
  4. Arvix Sanity - Intuitiivisempi työkalu tutkimuspapereiden hakemiseen, lajitteluun ja tallentamiseen
  5. Deep Learning Papers -suunnitelma
  6. Koneoppiminen Subreddit - Heillä on "mitä sinä luet" -aiheita, joissa keskustellaan tutkimuspaperista
  7. Arxiv Insights - Tällä kanavalla on joitain hienojakoa tekoälyn tutkimuksista

Äänilisäkoulutus

  1. Tietoskeptikko - Heillä on paljon hyviä lyhyempiä jaksoja, nimeltään [mini], joissa ne kattavat koneoppimisen käsitteet
  2. Ohjelmistotuotanto Päivittäinen koneoppiminen
  3. OCDevel Machine Learning Podcast - Mainitsin jo tämän, mutta luetelen sen uudelleen siltä varalta, että unohdit sen

Muita oppimisresursseja

  • Neuroverkot ja syvällisen oppimisen e-kirja
  • Koneoppimisen oppiminen (ilmainen luonnos), kirjoittanut Andrew Ng

Loppu

Taputa jos tästä oli apua :)

Sosiaalinen media: @gwen_faraday

Jos tiedät muita hyviä resursseja tai jos puuttuu jotain, jätä linkit kommentteihin. Kiitos.