Fastai | Kako začeti?

Zakaj to vprašanje?

Vprašanje "Kako začeti s Fastajem?" Se morda zdi neprijetno.

Samo poglejte prvi video, kajne? Št.

S Fastajem imam dvojno izkušnjo. Kot študent sem bil prvič član mednarodnega programa štipendiranja (dela 1 in 2) od oktobra 2017. Nato sem z drugimi kolegi leta 2018 sprožil prvo študijsko skupino Globokega učenja v Brasiliji s tečajem Fastai (1. del, potem danes 2. del kot tudi tisti o ML). Tako sem postal tudi inštruktor, ki uporablja vsebino Fastai.

Na podlagi te dvojne izkušnje s Fastaijem danes objavljam ta uvodni vodič za nove udeležence tečaja v Brasilii in za vse tiste, ki želijo začeti potovanje v umetno inteligenco (AI) z uporabo Knjižnica Fastai.

Strojno učenje z nekaj besedami

Dan, ko bo na svet prišel prvi dojenček z umetno inteligenco, ni za jutri. Zaenkrat mora človek ustvariti vsako AI ... in za to potrebujemo kodo!

Zunaj robota in genetske manipulacije ima AI obliko algoritma, ki ga je treba izučiti (pogosto je model umetnih nevronskih mrež).

V praksi imajo parametri algoritma (imenovani tudi uteži) na začetku naključne vrednosti, ki se posodobijo z opazovanji (imenovanimi tudi primeri), ki so na voljo algoritmu. Ta metoda se imenuje "učenje iz nabora podatkov" ali strojno učenje (metode poglobljenega učenja so danes zelo priljubljene in široko uporabljane strojno učenje z veliko globino izračunov).

Vsako opazovanje, ki ga daje algoritem, mu omogoča, da izračuna matematični rezultat (pogosto verjetnost) narave tega opazovanja z matematičnimi operacijami, opravljenimi z njegovimi parametri (na primer, če je opazovanje podoba mačke, predvidevanje rezultat mora navesti razred, ki ustreza mački). Napaka glede na resnično vrednost opazovanja nato omogoča posodobitev vrednosti parametrov (pogosto z uporabo metode BackPropagation naklona napake).

Usposabljanje se bo nato nadaljevalo z novim opazovanjem in tako naprej.

Knjižnice za izvajanje strojnega učenja

Strojno učenje (ML) naj bi tako imelo podatke, računalniško zmogljivost… in algoritme. Zato moramo za kodiranje teh algoritmov uporabiti jezik za kodiranje, jih usposobiti, preizkusiti in nato uporabiti v proizvodnji.

Od začetka leta 2010, datuma, ki pomeni začetek obsežne uporabe AI, je jezik Python postal jezik za razvoj algoritmov ML in Deep Learning (DL) v Jupyterjevih zvezkih.

Ker bodo arhitekture teh algoritmov kmalu standardizirane, so bile razvite knjižnice, da bi olajšale njihovo uporabo kot TensorFlow (Google) s Kerasom, nato PyTorch (Facebook) s Fastai.

Fastai, več kot knjižnica

Fastai je hkrati knjižnica za izvajanje algoritmov ML in DL in tudi naslov tečaja, ki se je začel na Inštitutu za podatke Univerze v San Franciscu in je zdaj na voljo na spletu (1 tečaj o ML in 2 tečaja o DL).

Toda njeni ustvarjalci Jeremy HOWARD in Rachel THOMAS so šli dlje. To je tudi nova metoda učenja od zgoraj navzdol, ki omogoča učenje s početjem, prav tako pa tudi skupnost več kot 10.000 ljudi danes (beri "Zagon hitro.ai" iz Jeremyja Howarda, oktober 2016).

Vsak tečaj ima brezplačno naložljiv videoposnetek, nit na forumu in beležnice, ki potekajo skozi knjižnico Fastai.

Kako začeti s Fastai? Vodnik v 4 korakih

V Brasiliji sem videl preveč udeležencev bodisi, da bi se ustavili ali pa ne bi mogli zares izkoristiti prednosti tečaja zaradi 4 glavnih razlogov: python, Jupyterjevi zvezki, GPU in domače naloge.

1) Python

Python je programski jezik, ki se uporablja v tečaju Fastai in njegovih zvezkih. Če ni nujno, da bi bil specialist pitona, da bi sledil tečaju Fastai, je treba imeti minimalno prakso.

Spletni tečaji:

  • Prvi zvezek Python
  • Vadnice za podatke o podatkih Python
  • Pitonski tečaji na Courseri
  • Knjiga: Globoko učenje s Pythonom (François Chollet)

Dve naslednji knjižnici Python se v zvezkih Fastai zelo uporabljajo, vendar se jih lahko naučite med tečajem (niso predpogoj).

NumPy

NumPy je temeljni paket za znanstveno računalništvo s Python-om. Omogoča matematične operacije na matrikah, matrikah, vektorjih in visoko dimenzionalnih tenzorjih, kot da so spremenljivke Python.

Spletni tečaji: Numpy Tutorial in Python Numpy Tutorial.

Pande

Pandas je odprtokodna knjižnica z licenco BSD, ki zagotavlja visokozmogljive, enostavne podatkovne strukture (npr. Datoteke csv) in orodja za analizo podatkov programskega jezika Python. Pandas zelo dobro sodeluje z NumPy.

  • Curso de Introdução in Análise de Dados (em português)
  • Spletni tečaji: seznam vaj o pandah.

2) zvezek Jupyter

Projekt Jupyter obstaja za razvoj odprtokodne programske opreme, odprtih standardov in storitev za interaktivno računalništvo v več deset programskih jezikih in zlasti v Pythonu. Uporabili boste prenosni računalnik Jupyter za izvajanje vseh svojih ML ali DL algoritmov.

Spletni tečaji:

  • 1: 30: 521: Uvod v Jupyterjeve zvezke
  • Ukazi in bližnjice prenosnega računalnika Jupyter
    - Ukazi prenosnega računalnika Jupyter in bližnjice1
    - 28 nasvetov, trikov in bližnjic za prenosni računalnik Jupyter Notebook
  • Usar »Zložljive / razširljive jupiterske celice« so tudi prenosniki iz jupyterja
  • Galerija zanimivih prenosnikov Jupyter: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks1

3) GPU

Ko poznate vsaj Python in znate uporabljati prenosni računalnik Jupyter, morate namestiti knjižnico Fastai in njene zvezke na strežnik z GPU.

Opomba: če nimate lokalnega NVIDIA GPU-ja in če ga ne želite uporabljati v spletu, lahko v računalnik namestite Fastai in uporabljate samo svoj CPU, vendar lahko traja nekaj časa, da dobite rezultat usposabljanja v svoji ML / DL model…

Zakaj GPU? Potrebujete ga pri usposabljanju algoritma ML ali DL, da zmanjšate čas treninga. Brez GPU-ja ne boste mogli enostavno »trenirati« algoritma ML ali DL z milijoni podatkov.

Poleg lokalne namestitve procesorja imate še dve možnosti: ali konfigurirajte svoj lokalni GPU, če ima vaš računalnik takšen, kot je NVIDIA GPU, ali pa ga lahko najamete v spletu z uporabo Google Cloud, Google Colab, PaperSpace, AWS ali drugih.

Spletni vodniki: preberite odstavek "GPU (grafične procesne enote)" v članku "Globoko učenje Brazilije - Revisão" ali povezave seguintes.

CPU lokalno

Preberite dokument README.md, vendar sledite spodnjim korakom:

  1. namestite Anaconda za Windows
  2. Odpre terminal »Anaconda Prompt« (ki ga je namestila Anaconda) in v ta terminal vpiše naslednje ukaze.
  3. mkdir fastai (za ustvarjanje mape fastai)
  4. cd fastai (za vstop v mapo fastai)
  5. git clone https://github.com/fastai/fastai.git (za prenos datotek Fastai, vključno z zvezki in datotekami za namestitev virtualnega okolja fastai-cpu: pytorch, numpy knjižnice, pande, bcolz itd.)
  6. conda env posodobitev -f environment-cpu.yml (POMEMBNO: uporabite okolje-cpu.yml datoteko, ker želite uporabiti vaš CPU in ne GPU)
  7. conda activate fastai-cpu (za aktiviranje virtualnega okolja fastai-cpu)
  8. cd tečaji \ ml1 (na primer vpišite v mapo ml1)
  9. del fastai (izbrišite symlink fastai, ki je bil ustvarjen za delovanje v bash okolju)
  10. mklink / d fastai .. \ .. \ fastai (ustvarite simlink okna fastai v mapo fastai, ki vsebuje datoteke knjižnice Fastai)
  11. cd .. \ .. (zapustite mapo ml1, da se vrnete v koren mape, ustvarjen v koraku 3)
  12. jupyter notebook (zaženite prenosnik jupyter, ki se odpre v spletnem brskalniku)

"Et voilà": v računalniku imate nameščeno knjižnico Fastai (in njene zvezke) s CPU in lahko zaženete vse zvezke mape ml1.

GPU lokalno

  • Kako: namestitev v sistemu Windows

GPU na spletu

  • Google Cloud Platform (kredit v višini 300 $)
  • Paperspace (kredit 15 $)
  • Clouderizer + Google Colab (BREZPLAČNO)
  • Spletne storitve Amazon (AWS)
  • Crestle

Ne pozabite izklopiti svojega virtualnega stroja !!!

4) Domače naloge

Jeremy Howard govori o 10 urah osebnega dela za vsak video v svojem razredu ... in ima prav!

Če se želite naučiti, kako narediti ML in DL in ne samo razumeti načel, morate PRAKSE.

Zgoraj predstavljeni elementi (če povzamemo, poznavanje jezika python-a in uporabo Jupyterjevega prenosnika ter namestitev knjižnice Fastai na GPU) so nujni predpogoji, vendar ne zadostni.

Če se želite resnično naučiti, morate večkrat gledati videoposnetke, zagnati zvezke Fastai, preučevati vrstice kod, postavljati vprašanja na forumu Fastai, ko ne razumete, odgovarjati na vprašanja drugih in objavljati članke, da boste izboljšali svoje razumevanje. To je resnično učenje!

Še ena beseda: UŽIVAJ! :-)