Fastai | Hvordan starter man?

Hvorfor dette spørgsmål?

Spørgsmålet "Hvordan man starter med Fastai?" Kan virke inkongruøst.

Bare se den første video, ikke? Ingen.

Jeg har en dobbelt oplevelse med Fastai. Jeg var først medlem af sit International Fellowship-program (del 1 og 2) som studerende fra oktober 2017. Derefter lancerede jeg sammen med andre kolleger i 2018 den første studiegruppe af Deep Learning i Brasilia ved hjælp af Fastai-kurset (del 1, derefter i dag del 2 såvel som den om ML). Så jeg blev også en instruktør ved hjælp af Fastai-indholdet.

Det er på baggrund af denne dobbelte oplevelse med Fastai, at jeg i dag udgiver denne opstartguide for de nye deltagere på vores kursus i Brasilia såvel som for alle dem, der ønsker at begynde deres tur til kunstig intelligens (AI) ved at bruge Fastai bibliotek.

Maskinlæring med få ord

Dagen, hvor den første baby med kunstig intelligens kommer til verden, er ikke i morgen. For øjeblikket skal enhver AI oprettes af mennesker ... og vi har brug for kode til det!

Uden for robot- og genetisk manipulation har AI formen af ​​en algoritme, der skal trænes til at lære (ofte en model for kunstige neurale netværk).

I praksis har parametrene for algoritmen (også kaldet vægte) oprindeligt tilfældige værdier, der opdateres ved hjælp af observationer (også kaldet eksempler), der leveres til algoritmen. Denne metode kaldes "learning from a dataset" eller Machine Learning (metoderne til Deep Learning i dag meget populære og vidt udbredte er Machine Learning med en stor dybde af beregninger).

Faktisk tillader hver observation, der leveres til algoritmen, den at beregne et forudsigeligt resultat (ofte en sandsynlighed) for arten af ​​denne observation, via matematiske operationer, der udføres med dens parametre (for eksempel hvis observationen er et billede af en kat, er det forudsigelige resultatet skal angive den klasse, der svarer til en kat). Fejlen med hensyn til den sande værdi af observationen tillader derefter en opdatering af værdierne for parametrene (ofte ved hjælp af metoden til BackPropagation af gradienten af ​​fejlen).

Træningen fortsætter derefter med en ny observation og så videre.

Biblioteker til implementering af maskinlæring

Machine Learning (ML) skal således have data, computerkapacitet ... og algoritmer. Vi må derfor bruge et sprog til kodning for at implementere disse algoritmer, træne dem, teste dem og derefter bruge dem i produktion.

Siden begyndelsen af ​​2010'erne, den dato, der markerer begyndelsen på den store brug af AI, er Python-sprog blevet sproget for udvikling af ML og Deep Learning (DL) algoritmer i Jupyter-notebooks.

Da arkitekturerne af disse algoritmer er ved at blive standardiseret, er biblioteker blevet udviklet for at gøre det lettere at bruge dem som TensorFlow (Google) med Keras, derefter PyTorch (Facebook) med Fastai.

Fastai, mere end et bibliotek

Fastai er både et implementeringsbibliotek af ML- og DL-algoritmer og også titlen på et kursus, der startede ved Data Institute på University of San Francisco og nu er tilgængeligt online (1 kursus om ML og 2 kursers kursus om DL).

Men dets skabere Jeremy HOWARD og Rachel THOMAS gik videre. Det er også en ny top-down læringsmetode, der tillader læring ved at gøre, såvel som et samfund på mere end 10.000 mennesker i dag (læs "Lancering hurtigt.ai" fra Jeremy Howard, oktober 2016).

Hvert kursus har en frit downloadbar video, forumtråd og jupyter notesbøger, der løber gennem fastai-biblioteket.

Hvordan starter man med Fastai? Vejledningen i 4 trin

Jeg så for mange deltagere på vores kursus i Brasilia enten for at stoppe eller være ude af stand til virkelig at udnytte kurset på grund af 4 hovedårsager: python, Jupyter notebooks, GPU og hjemmearbejde.

1) Python

Python er det programmeringssprog, der bruges i Fastai-kurset og dets notebooks. Hvis det ikke er vigtigt at være en python-specialist for at følge Fastai-kurset, er det nødvendigt at have en minimal praksis.

Online-kurser:

  • Første Python Notebook
  • Python Data Science Tutorials
  • Python-kurser om Coursera
  • Bog: Deep Learning with Python (François Chollet)

De 2 følgende Python-biblioteker er meget brugt i Fastai-notebooks, men du kan lære dem i løbet af kurset (de er ikke forudsætninger).

NumPy

NumPy er den grundlæggende pakke til videnskabelig computing med Python. Det tillader matematiske operationer på arrays, matrixer, vektorer og højdimensionelle tensorer, som om det er Python-variabler.

Online-kurser: Numpy Tutorial og Python Numpy Tutorial.

pandas

Pandas er et open source, BSD-licenseret bibliotek, der leverer højtydende, brugervenlige datastrukturer (eks: csv-filer) og dataanalyseværktøjer til Python-programmeringssprog. Pandas fungerer meget godt med NumPy.

  • Curso de Introdução a Análise de Dados (em Philippines)
  • Online-kurser: liste over tutorials om pandaer.

2) Jupyter notebook

Project Jupyter findes for at udvikle open source-software, open-standards og tjenester til interaktiv computing på tværs af snesevis af programmeringssprog og især Python. Du bruger en Jupyter-notebook til at implementere alle dine ML- eller DL-algoritmer.

Online-kurser:

  • 1: 30: 521: Introduktion til Jupyter notebooks
  • Jupyter Notebook-kommandoer og genveje
    - Jupyter Notebook-kommandoer og genveje1
    - 28 Jupyter Notebook-tip, tricks og genveje
  • Bruger “Sammenfoldelige / udvidelige jupyterceller” em seus jupyter notebooks
  • Et galleri med interessante Jupyter Notebooks: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks1

3) GPU

Når du mindst kender Python og ved, hvordan du bruger en Jupyter-notebook, skal du installere Fastai-biblioteket og dets notebooks på en server med GPU.

Bemærk: Hvis du ikke har en lokal NVIDIA GPU, og hvis du ikke vil bruge en online, kan du installere Fastai på din computer og kun bruge din CPU, men så kan det tage et stykke tid at få træningsresultatet af din ML / DL-model ...

Hvorfor en GPU? Du har brug for det, når du træner en ML- eller DL-algoritme for at reducere træningstiden. Uden en GPU kan du ikke ”træne” en ML- eller DL-algoritme med millioner af data.

Bortset fra den lokale CPU-installation, har du 2 muligheder: enten konfigurerer du din lokale GPU, hvis din computer har en sådan som en NVIDIA GPU, eller du kan leje en online vha. Google Cloud, Google Colab, PaperSpace, AWS eller andre.

Online guider: læs afsnittet “GPU (Grafiske processorenheder)” i artiklen “Deep Learning Brasília - Revisão” ou links seguintes.

CPU lokalt

Læs dokumentet README.md, men følg nedenstående trin:

  1. installer Anaconda til Windows
  2. Åbner terminalen “Anaconda Prompt” (som blev installeret af Anaconda) og cifrer følgende kommandoer i denne terminal.
  3. mkdir fastai (for at oprette mappefastai)
  4. cd fastai (for at åbne mappen fastai)
  5. git klon https://github.com/fastai/fastai.git (for at downloade filerne Fastai inklusive notebooks og filer for at installere det virtuelle fastai-cpu-miljø: pytorch, numpy biblioteker, pandaer, bcolz osv.)
  6. conda env-opdatering -f miljø-cpu.yml (VIGTIGT: brug filen miljø-cpu.yml, fordi du vil bruge din CPU, ikke en GPU)
  7. conda aktivere fastai-cpu (for at aktivere det virtuelle miljø fastai-cpu)
  8. cd-kurser \ ml1 (skriv f.eks. i ml1-mappen)
  9. del fastai (slet symlink-fastai, der blev oprettet til at køre i bash-miljøet)
  10. mklink / d fastai .. \ .. \ fastai (opret symlink windows fastai til mappen fastai, der har filerne i biblioteket Fastai)
  11. cd .. \ .. (forlade mappen ml1 for at vende tilbage til mapperoten oprettet i trin 3)
  12. jupyter notebook (start den jupyter notebook, der åbnes i en webbrowser)

“Et voilà”: du har Fastai-biblioteket (og dets notebooks) installeret på din computer med CPU, og du kan køre alle notebooks i ml1-mappen.

GPU lokalt

  • Sådan: installation på Windows

GPU online

  • Google Cloud Platform (kredit på 300 $)
  • Paperspace (kredit på 15 $)
  • Clouderizer + Google Colab (GRATIS !!!)
  • Amazon Web Services (AWS)
  • Crestle

Glem ikke at slukke din virtuelle maskine !!!

4) Hjemmearbejde

Jeremy Howard taler om 10 timers personlig arbejde for hver video i sin klasse ... og han har ret!

Faktisk, hvis du vil lære at gøre ML og DL og ikke bare forstå principperne, skal du PRAKSIS.

Elementerne præsenteret ovenfor (sammenfattet, at kende pythonsproget og hvordan man bruger en Jupyter-notebook og at have installeret Fastai-biblioteket på en GPU) er Nødvendige forudsætninger, men ikke tilstrækkelige.

For virkelig at lære er du nødt til at se flere gange videoer, køre Fastai-notesbøger, studere kodelinjer, stille spørgsmål i Fastai-forummet, når du ikke forstår, besvare de spørgsmål, der stilles af andre og offentliggøre artikler for at forbedre din forståelse. Dette er ægte læring!

Et ord til: NYT! :-)