Fastai | Kako započeti?

Zašto ovo pitanje ?

Pitanje "Kako započeti s Fastaijem?" Može se činiti neprimjerenim.

Samo pogledaj prvi video, zar ne? Ne.

Imam dvostruko iskustvo sa Fastaijem. Kao student prvi put bio sam član njezinog međunarodnog programa stipendija (dijelovi 1 i 2), a zatim sam s ostalim kolegama pokrenuo 2018. godine prvu studijsku grupu dubokog učenja u Brasiliji koristeći tečaj Fastai (1. dio, onda danas 2. dio kao i onaj o ML-u). Tako sam i ja postao instruktor korištenjem Fastai sadržaja.

Na temelju ovog dvostrukog iskustva s Fastaijem objavljujem danas ovaj početni vodič za nove polaznike našeg tečaja u Brasiliji, kao i za sve one koji žele započeti svoje putovanje umjetnom inteligencijom (AI) koristeći Fastai knjižnica.

Strojno učenje u nekoliko riječi

Dan kada će prva beba s umjetnom inteligencijom doći na svijet nije za sutra. U ovom trenutku svaki AI mora stvoriti čovjek ... i za to nam treba kod!

Izvan robota i genetske manipulacije, AI ima oblik algoritma koji mora biti osposobljen za učenje (često model umjetnih neuronskih mreža).

U praksi, parametri algoritma (koji se nazivaju i utezi) u početku imaju slučajne vrijednosti koje se ažuriraju korištenjem opažanja (koje se također nazivaju primjeri) koje se daju algoritmu. Ova metoda se naziva "učenje iz skupa podataka" ili Strojno učenje (metode dubokog učenja danas su vrlo popularne i naširoko korištene kao Strojno učenje s velikom dubinom izračuna).

Doista, svako promatranje koje daje algoritam omogućava mu da izračuna prediktivni rezultat (često vjerojatnost) prirode ovog promatranja, matematičkim operacijama izvedenim s njegovim parametrima (na primjer, ako je promatranje slika mačke, prediktivna rezultat mora naznačiti klasu koja odgovara mački). Pogreška u odnosu na stvarnu vrijednost opažanja tada omogućava ažuriranje vrijednosti parametara (često primjenom metode BackPropagation of the gradient of error).

Trening će se zatim nastaviti s novim promatranjem i tako dalje.

Knjižnice za provedbu strojnog učenja

Strojno učenje (ML) stoga ima podatke, računski kapacitet… i algoritme. Stoga moramo koristiti jezik za kodiranje da bismo implementirali te algoritme, obučili ih, testirali i zatim upotrijebili u proizvodnji.

Od početka 2010. godine, datuma koji označava početak široke upotrebe AI, jezik Python postao je jezik za razvoj ML i algoritama dubokog učenja (DL) u Jupyterovim bilježnicama.

Budući da će se arhitekture ovih algoritama uskoro standardizirati, razvijene su knjižnice koje će olakšati njihovu upotrebu kao TensorFlow (Google) s Kerasom, a zatim PyTorch (Facebook) s Fastaijem.

Fastai, više od knjižnice

Fastai je i knjižnica za implementaciju ML i DL algoritama, a također je i naziv kolegija koji je započeo na Institutu za podatke Sveučilišta u San Franciscu i koji je sada dostupan putem interneta (1 tečaj o ML i 2 tečaja o DL-u).

Ali njegovi tvorci Jeremy HOWARD i Rachel THOMAS otišli su dalje. To je i nova metoda učenja odozgo prema dolje koja omogućuje učenje radeći, kao i zajednica koja danas broji više od 10 000 ljudi (pročitajte „Pokretanje brzo.ai“ iz Jeremyja Howarda, listopad 2016.).

Svaki tečaj ima videozapise, teme na forumu i bilježnice o jupyteru koje možete besplatno preuzeti putem knjižnice fastai.

Kako započeti s Fastaijem? Vodič u 4 koraka

Vidio sam previše sudionika našeg tečaja u Brasiliji da se zaustave ili da ne mogu zaista iskoristiti prednost tečaja zbog 4 glavna razloga: python, Jupyterove bilježnice, GPU i domaći zadaci.

1) Python

Python je programski jezik koji se koristi u tečaju Fastai i njegovim bilježnicama. Ako nije nužno biti specijalist za pitone da biste slijedili Fastai tečaj, potrebno je imati minimalnu praksu.

Online tečajevi:

  • Prvo Python bilježnica
  • Vodiči za znanost o Python podacima
  • Pitonski tečajevi na Courseri
  • Knjiga: Duboko učenje s Pythonom (François Chollet)

Dvije sljedeće Python knjižnice se vrlo koriste u Fastaiovim bilježnicama, ali možete ih naučiti tijekom tečaja (nisu preduvjet).

NumPy

NumPy je temeljni paket znanstvenog računanja s Python-om. Omogućuje matematičke operacije na nizovima, matricama, vektorima i tenzorima velikih dimenzija kao da su Python varijable.

Online tečajevi: Numpy Tutorial i Python Numpy Tutorial.

pande

Pandas je knjižnica s otvorenim kodom, BSD licencirana biblioteka pruža visoko učinkovite, jednostavne za upotrebu strukture podataka (npr. Datoteke csv) i alate za analizu podataka programskog jezika Python. Pandas vrlo dobro surađuje s NumPy-om.

  • Curso de Introdução a Análise de Dados (em português)
  • Online tečajevi: popis udžbenika o pandama.

2) Jupyterova bilježnica

Projekt Jupyter postoji za razvoj softvera otvorenog koda, otvorenih standarda i usluga za interaktivno računanje na više desetaka programskih jezika, posebno Pythona. Koristite Jupyterovo prijenosno računalo za implementaciju svih svojih ML ili DL algoritama.

Online tečajevi:

  • 1: 30: 521: Uvod u Jupyterove bilježnice
  • Naredbe i prečice za bilježnice Jupyter
    - Naredbe i prečaci Jupyter-ove bilježnice1
    - 28 savjeta, trikova i prečaca za bilježnicu Jupyter Notebook
  • Usar "Sklopive / proširive stanice jupitera" em seus bilježnicama s jupirom
  • Galerija zanimljivih Jupyterovih bilježnica: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks1

3) GPU

Jednom kada znate barem Python i znate kako koristiti Jupyterovu bilježnicu, morate instalirati Fastai knjižnicu i njezine bilježnice na poslužitelj s GPU-om.

Napomena: ako nemate lokalni NVIDIA GPU i ako ga ne želite koristiti putem interneta, možete instalirati Fastai na svoje računalo i koristiti samo svoj CPU, ali tada može proći neko vrijeme dok se rezultat treninga vašeg ML / DL model…

Zašto GPU? Potreban vam je za trening ML ili DL algoritma kako biste smanjili vrijeme treninga. Bez GPU-a nećete moći lako trenirati ML ili DL algoritam s milijunima podataka.

Osim lokalne instalacije CPU-a, imate dvije mogućnosti: ili konfigurirajte svoj lokalni GPU ako vaše računalo ima takvo kao što je NVIDIA GPU ili ga možete unajmiti na mreži pomoću Google Cloud-a, Google Colaba, PaperSpace-a, AWS-a ili drugih.

Internetski vodiči: pročitajte odlomak "GPU (jedinice za grafičku obradu)" članka "Duboko učenje Brazila - Revisão" ili poveznice seguintes.

CPU lokalni

Pročitajte dokument README.md, ali slijedite korake u nastavku:

  1. instalirati Anaconda za Windows
  2. Otvara terminal "Anaconda prompt" (kojeg je instalirala Anaconda) i na ovom terminalu nabraja sljedeće naredbe.
  3. mkdir fastai (za stvaranje mape fastai)
  4. cd fastai (za ulazak u mapu fastai)
  5. git clone https://github.com/fastai/fastai.git (za preuzimanje datoteka Fastai, uključujući bilježnice i datoteke za instaliranje virtualnog okruženja fastai-cpu: pytorch, numpy biblioteke, pande, bcolz, itd.)
  6. conda env update -f environment-cpu.yml (VAŽNO: koristite datoteku environment-cpu.yml jer želite koristiti svoj CPU, a ne GPU)
  7. conda activate fastai-cpu (za aktiviranje virtualnog okruženja fastai-cpu)
  8. cd tečajevi \ ml1 (na primjer unesite u mapu ml1)
  9. del fastai (izbrišite symlink fastai koji je stvoren za pokretanje u bash okruženju)
  10. mklink / d fastai .. \ .. \ fastai (stvorite simlink windows fastai u mapu fastai koja sadrži datoteke knjižnice Fastai)
  11. cd .. \ .. (izlaz iz mape ml1 za povratak na korijen mape stvoren u koraku 3)
  12. jupyter notebook (pokrenite bilježnicu jupyter koja će se otvoriti u web pregledniku)

"Et voilà": na računalu imate instaliranu Fastai knjižnicu (i njezine bilježnice) s CPU-om i možete pokrenuti sve bilježnice mape ml1.

GPU lokalni

  • Kako: instalacija na Windows

GPU online

  • Google Cloud Platform (kredit od 300 $)
  • Paperspace (kredit od 15 $)
  • Clouderizer + Google Colab (BESPLATNO !!!)
  • Web usluge Amazon (AWS)
  • Crestle

Ne zaboravite isključiti svoj virtualni stroj !!!

4) Domaća zadaća

Jeremy Howard govori o 10 sati osobnog rada za svaki video svog razreda ... i u pravu je!

Doista, ako želite naučiti kako raditi ML i DL, a ne samo razumjeti principe, morate PRAKSE.

Elementi predstavljeni gore (sažeto, poznavanje jezika pythona i kako koristiti Jupyterovu bilježnicu i instalirati Fastai knjižnicu na GPU) nužni su preduvjeti, ali nisu dovoljni.

Da biste zaista naučili, morate pogledati nekoliko puta videozapise, pokretati bilježnice Fastai, proučavati retke kodova, postavljati pitanja na forumu Fastai kad ne razumijete, odgovarati na pitanja koja postavljaju drugi i objavljivati ​​članke kako biste poboljšali svoje razumijevanje. Ovo je pravo učenje!

Još jedna riječ: UŽIVAJTE! :-)