Fastai | Jak zaczac ?

Dlaczego to pytanie ?

Pytanie „jak zacząć od Fastai?” Może wydawać się niestosowne.

Po prostu obejrzyj pierwszy film, prawda? Nie.

Mam podwójne doświadczenie z Fastai. Jako student byłem pierwszym członkiem programu International Fellowship (części 1 i 2) od października 2017 r. Następnie wraz z innymi kolegami uruchomiłem w 2018 r. Pierwszą grupę badawczą Deep Learning in Brasilia, korzystając z kursu Fastai (część 1, dziś część 2, a także ta o ML). Więc zostałem także instruktorem korzystającym z treści Fastai.

Na podstawie tych podwójnych doświadczeń z Fastai opublikowałem dzisiaj ten przewodnik dla nowych uczestników naszego kursu w Brasilii, a także dla wszystkich tych, którzy chcą rozpocząć swoją podróż do sztucznej inteligencji (AI), korzystając z Biblioteka Fastai.

Uczenie maszynowe w kilku słowach

Dzień, w którym pierwsze dziecko ze Sztuczną Inteligencją przyjdzie na świat, nie jest na jutro. Na razie każda sztuczna inteligencja musi być stworzona przez człowieka… i potrzebujemy do tego kodu!

Poza robotem i manipulacją genetyczną sztuczna inteligencja ma postać algorytmu, którego należy się nauczyć (często model sztucznych sieci neuronowych).

W praktyce parametry algorytmu (zwane również wagami) początkowo mają losowe wartości, które są aktualizowane za pomocą obserwacji (zwanych również przykładami) dostarczanych do algorytmu. Ta metoda nazywa się „uczeniem się z zestawu danych” lub uczeniem maszynowym (obecnie bardzo popularnymi i szeroko stosowanymi metodami uczenia głębokiego są uczenie maszynowe z dużą głębią obliczeń).

Rzeczywiście, każda obserwacja dostarczona algorytmowi pozwala mu obliczyć wynik predykcyjny (często prawdopodobieństwo) charakteru tej obserwacji, za pomocą operacji matematycznych wykonanych z jego parametrami (na przykład, jeśli obserwacja jest obrazem kota, predykcyjna wynik musi wskazywać klasę odpowiadającą kotowi). Błąd w odniesieniu do prawdziwej wartości obserwacji pozwala następnie na aktualizację wartości parametrów (często przy użyciu metody BackPropagation gradientu błędu).

Trening będzie kontynuowany od nowej obserwacji i tak dalej.

Biblioteki do wdrożenia uczenia maszynowego

Uczenie maszynowe (ML) ma zatem posiadać dane, zdolności obliczeniowe… i algorytmy. Dlatego musimy używać języka do kodowania w celu wdrożenia tych algorytmów, szkolenia ich, przetestowania, a następnie wykorzystania w produkcji.

Od początku lat 2010., która jest początkiem szerokiego zastosowania AI, język Python stał się językiem rozwoju algorytmów ML i Deep Learning (DL) w notatnikach Jupyter.

Ponieważ architektury tych algorytmów mają się ustandaryzować, opracowano biblioteki ułatwiające ich stosowanie jako TensorFlow (Google) w Keras, a następnie PyTorch (Facebook) w Fastai.

Fastai, więcej niż biblioteka

Fastai to zarówno biblioteka implementacyjna algorytmów ML i DL, jak i tytuł kursu, który rozpoczął się w Data Institute na Uniwersytecie San Francisco i jest teraz dostępny online (1 kurs o ML i 2 kursy o DL).

Ale jego twórcy Jeremy HOWARD i Rachel THOMAS poszli dalej. Jest to również nowa metoda uczenia się odgórnego, która umożliwia uczenie się poprzez działanie, a także społeczność liczącą obecnie ponad 10 000 osób (przeczytaj „Uruchamianie fast.ai” z Jeremy Howard, październik 2016 r.).

Każdy kurs ma darmowy plik wideo, wątek na forum i notesy jupyter biegnące przez bibliotekę fastai.

Jak zacząć od Fastai? Przewodnik w 4 krokach

Widziałem zbyt wielu uczestników naszego kursu w Brasilii, aby albo przestali lub nie byli w stanie naprawdę skorzystać z kursu z 4 głównych powodów: python, zeszyty Jupyter, GPU i zadania domowe.

1) Python

Python to język programowania używany w kursie Fastai i jego notatnikach. Jeśli bycie specjalistą od Pythona nie jest konieczne, aby wziąć udział w kursie Fastai, musisz mieć minimalną praktykę.

Kursy online:

  • Pierwszy notatnik w języku Python
  • Samouczki dotyczące nauki o języku Python
  • Kursy języka Python na Coursera
  • Książka: Deep Learning with Python (François Chollet)

Dwie następujące biblioteki Python są bardzo używane w zeszytach Fastai, ale możesz się ich nauczyć podczas kursu (nie są one wymagane).

NumPy

NumPy to podstawowy pakiet do obliczeń naukowych w Pythonie. Umożliwia operacje matematyczne na tablicach, macierzach, wektorach i tensorach wielowymiarowych, tak jakby były zmiennymi Pythona.

Kursy online: Samouczek Numpy i Samouczek Numpy Python.

Pandy

Pandas to otwarta biblioteka na licencji BSD, zapewniająca wysokowydajne, łatwe w użyciu struktury danych (np. Pliki csv) i narzędzia analizy danych dla języka programowania Python. Pandy działają bardzo dobrze z NumPy.

  • Curso de Introdução a Análise de Dados (em português)
  • Kursy online: lista samouczków na temat pand.

2) Notatnik Jupyter

Projekt Jupyter istnieje w celu opracowania oprogramowania typu open source, otwartych standardów i usług do interaktywnego przetwarzania danych w kilkudziesięciu językach programowania, w szczególności w języku Python. Za pomocą notatnika Jupyter zaimplementujesz wszystkie algorytmy ML lub DL.

Kursy online :

  • 1: 30: 521: Wprowadzenie do notatników Jupyter
  • Polecenia i skróty do notebooków Jupyter
    - Polecenia i skróty notebooka Jupyter 1
    - 28 porad, wskazówek i skrótów do Notatników Jupyter
  • Używaj „Zwijanych / rozwijanych komórek jupyter” w różnych notatnikach
  • Galeria interesujących zeszytów Jupyter: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks1

3) GPU

Gdy znasz przynajmniej Python i umiesz używać notebooka Jupyter, musisz zainstalować bibliotekę Fastai i jej notebooki na serwerze z GPU.

Uwaga: jeśli nie masz lokalnego procesora graficznego NVIDIA i nie chcesz korzystać z niego w trybie online, możesz zainstalować Fastai na komputerze i korzystać tylko z procesora, ale uzyskanie wyniku szkolenia ML może zająć trochę czasu / Model DL…

Dlaczego GPU? Potrzebujesz go podczas szkolenia algorytmu ML lub DL, aby skrócić czas szkolenia. Bez procesora graficznego nie będzie możliwe „łatwe” szkolenie algorytmu ML lub DL z milionami danych.

Oprócz lokalnej instalacji procesora masz dwie możliwości: albo skonfiguruj lokalny procesor graficzny, jeśli Twój komputer ma taki, jak procesor graficzny NVIDIA, lub możesz wypożyczyć online za pomocą Google Cloud, Google Colab, PaperSpace, AWS lub innych.

Przewodniki online: przeczytaj akapit „GPU (Graphic Processing Units)” artykułu „Deep Learning Brasília - Revisão” lub link do sekwencików.

CPU lokalny

Przeczytaj dokument README.md, ale wykonaj następujące czynności:

  1. zainstaluj Anaconda dla Windows
  2. Otwiera terminal „Anaconda Prompt” (który został zainstalowany przez Anacondę) i wpisuje w tym terminalu następujące polecenia.
  3. mkdir fastai (aby utworzyć folder fastai)
  4. cd fastai (aby wejść do folderu fastai)
  5. git clone https://github.com/fastai/fastai.git (aby pobrać pliki Fastai, w tym notebooki i pliki, aby zainstalować środowisko wirtualne fastai-cpu: pytorch, biblioteki numpy, pandy, bcolz itp.)
  6. conda env update -f environment-cpu.yml (WAŻNE: użyj pliku environment-cpu.yml, ponieważ chcesz użyć procesora, a nie GPU)
  7. conda aktywuj fastai-cpu (aby aktywować środowisko wirtualne fastai-cpu)
  8. kursy cd \ ml1 (na przykład wpisz w folderze ml1)
  9. del fastai (usuń dowiązanie symboliczne fastai, które zostało stworzone do działania w środowisku bash)
  10. mklink / d fastai .. \ .. \ fastai (utwórz okno Fastlink z dowiązaniem symbolicznym do folderu fastai zawierającego pliki biblioteki Fastai)
  11. cd .. \ .. (zamknij folder ml1, aby wrócić do katalogu głównego folderu utworzonego w kroku 3)
  12. notatnik jupyter (uruchom notatnik jupyter, który otworzy się w przeglądarce internetowej)

„Et voilà”: masz bibliotekę Fastai (i jej notebooki) zainstalowaną na komputerze z procesorem i możesz uruchamiać wszystkie notebooki z folderu ml1.

GPU lokalny

  • Howto: instalacja w systemie Windows

GPU online

  • Google Cloud Platform (kredyt w wysokości 300 $)
  • Paperspace (kredyt 15 $)
  • Clouderizer + Google Colab (BEZPŁATNIE !!!)
  • Amazon Web Services (AWS)
  • Crestle

Nie zapomnij wyłączyć maszyny wirtualnej !!!

4) Praca domowa

Jeremy Howard opowiada o 10 godzinach osobistej pracy dla każdego filmu swojej klasy… i ma rację!

Rzeczywiście, jeśli chcesz nauczyć się robić ML i DL, a nie tylko rozumieć zasady, musisz PRAKTYKOWAĆ.

Elementy przedstawione powyżej (w skrócie, znając język python i jak korzystać z notatnika Jupyter oraz aby zainstalować bibliotekę Fastai na GPU) są NIEZBĘDNE, ale niewystarczające.

Aby naprawdę się nauczyć, musisz kilkakrotnie oglądać filmy, uruchamiać notesy Fastai, studiować linie kodów, zadawać pytania na forum Fastai, gdy nie rozumiesz, odpowiadać na pytania zadawane przez innych i publikować artykuły w celu lepszego zrozumienia. To jest prawdziwa nauka!

Jeszcze jedno słowo: CIESZ SIĘ! :-)