Fastai | Come iniziare ?

Perché questa domanda ?

La domanda "Come iniziare con Fastai?" Può sembrare incongrua.

Guarda il primo video, giusto? No.

Ho una doppia esperienza con Fastai. Sono stato inizialmente membro del suo programma International Fellowship (parti 1 e 2) come studente da ottobre 2017. Quindi, con altri colleghi, ho lanciato nel 2018 il primo gruppo di studio di Deep Learning a Brasilia utilizzando il corso Fastai (parte 1, allora oggi parte 2 così come quella sulla ML). Così sono diventato anche istruttore usando il contenuto di Fastai.

È sulla base di questa doppia esperienza con Fastai che pubblico oggi questa guida di avvio per i nuovi partecipanti al nostro corso a Brasilia e per tutti coloro che desiderano iniziare il loro viaggio verso l'intelligenza artificiale (AI) utilizzando il Biblioteca Fastai.

Apprendimento automatico in poche parole

Il giorno in cui il primo bambino con Intelligenza Artificiale arriverà nel mondo non è per domani. Per il momento, ogni intelligenza artificiale deve essere creata dall'uomo ... e per questo abbiamo bisogno di codice!

Al di fuori del robot e della manipolazione genetica, l'IA prende la forma di un algoritmo che deve essere addestrato per l'apprendimento (spesso un modello di reti neurali artificiali).

In pratica, i parametri dell'algoritmo (chiamati anche pesi) inizialmente hanno valori casuali che vengono aggiornati usando osservazioni (chiamate anche esempi) fornite all'algoritmo. Questo metodo è chiamato "apprendimento da un set di dati" o Machine Learning (i metodi di Deep Learning oggi molto popolari e ampiamente utilizzati sono l'apprendimento automatico con una grande profondità di calcoli).

In effetti, ogni osservazione fornita all'algoritmo gli consente di calcolare un risultato predittivo (spesso una probabilità) della natura di questa osservazione, tramite operazioni matematiche eseguite con i suoi parametri (ad esempio, se l'osservazione è un'immagine di un gatto, la previsione risultato deve indicare la classe corrispondente a un gatto). L'errore rispetto al vero valore dell'osservazione consente quindi un aggiornamento dei valori dei parametri (spesso mediante l'uso del metodo di BackPropagation del gradiente dell'errore).

La formazione continuerà quindi con una nuova osservazione e così via.

Librerie per implementare l'apprendimento automatico

Il Machine Learning (ML) deve quindi disporre di dati, capacità computazionale ... e algoritmi. Dobbiamo quindi utilizzare un linguaggio per la codifica al fine di implementare questi algoritmi, addestrarli, testarli e quindi usarli in produzione.

Dall'inizio degli anni 2010, data che segna l'inizio dell'uso su larga scala dell'intelligenza artificiale, il linguaggio Python è diventato il linguaggio per lo sviluppo di algoritmi ML e Deep Learning (DL) nei notebook Jupyter.

Poiché le architetture di questi algoritmi stanno per essere standardizzate, le librerie sono state sviluppate per facilitarne l'uso come TensorFlow (Google) con Keras, quindi PyTorch (Facebook) con Fastai.

Fastai, più che una biblioteca

Fastai è sia una libreria di implementazione di algoritmi ML e DL sia il titolo di un corso iniziato presso il Data Institute dell'Università di San Francisco ed è ora disponibile online (1 corso su ML e 2 corsi su DL).

Ma i suoi creatori Jeremy HOWARD e Rachel THOMAS sono andati oltre. È anche un nuovo metodo di apprendimento dall'alto verso il basso che consente di apprendere facendo, così come una comunità di oltre 10.000 persone oggi (leggi “Avvio di fast.ai” da Jeremy Howard, ottobre 2016).

Ogni corso ha un video scaricabile gratuitamente, thread del forum e quaderni jupyter che attraversano la libreria fastai.

Come iniziare con Fastai? La guida in 4 passaggi

Ho visto troppi partecipanti al nostro corso a Brasilia fermarsi o non essere in grado di prendere davvero il corso sul corso a causa di 4 motivi principali: pitone, quaderni Jupyter, GPU e compiti a casa.

1) Python

Python è il linguaggio di programmazione utilizzato nel corso Fastai e nei suoi quaderni. Se non è essenziale essere uno specialista di pitone per seguire il corso di Fastai, è necessario avere una pratica minima.

Corsi online:

  • Primo taccuino Python
  • Tutorial Python Data Science
  • Corsi Python su Coursera
  • Libro: Deep Learning con Python (François Chollet)

Le seguenti 2 librerie Python sono molto usate nei quaderni Fastai ma puoi impararle durante il corso (non sono prerequisiti).

NumPy

NumPy è il pacchetto fondamentale per l'elaborazione scientifica con Python. Permette operazioni matematiche su array, matrici, vettori e tensori ad alta dimensione come se fossero variabili Python.

Corsi online: Numpy Tutorial e Python Numpy Tutorial.

Pandas

Pandas è una libreria con licenza BSD open source che fornisce strutture dati ad alte prestazioni e di facile utilizzo (es: file CSV) e strumenti di analisi dei dati per il linguaggio di programmazione Python. Panda funziona molto bene con NumPy.

  • Curso de Introdução a Análise de Dados (in portoghese)
  • Corsi online: elenco di tutorial sui panda.

2) Notebook Jupyter

Project Jupyter esiste per sviluppare software open-source, open-standard e servizi per il calcolo interattivo attraverso decine di linguaggi di programmazione e in particolare Python. Utilizzerai un notebook Jupyter per implementare tutti i tuoi algoritmi ML o DL.

Corsi online :

  • 1: 30: 521: Introduzione ai notebook Jupyter
  • Comandi e scorciatoie per notebook Jupyter
    - Comandi e scorciatoie per notebook Jupyter1
    - 28 suggerimenti, trucchi e scorciatoie per Jupyter Notebook
  • Utilizza "Pile jupyter pieghevoli / espandibili" e vari notebook jupyter
  • Una galleria di interessanti quaderni Jupyter: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks1

3) GPU

Una volta che conosci almeno Python e sai come usare un notebook Jupyter, devi installare la libreria Fastai e i suoi notebook su un server con GPU.

Nota: se non si dispone di una GPU NVIDIA locale e se non si desidera utilizzarne una online, è possibile installare Fastai sul computer e utilizzare solo la CPU, ma può richiedere del tempo per ottenere il risultato di allenamento della propria ML / Modello DL ...

Perché una GPU? Ne hai bisogno durante l'allenamento di un algoritmo ML o DL per ridurre i tempi di allenamento. Senza una GPU, non sarai in grado di addestrare "facilmente" un algoritmo ML o DL con milioni di dati.

Oltre all'installazione della CPU locale, hai 2 possibilità: configurare la GPU locale se il tuo computer ne ha una come una GPU NVIDIA, oppure puoi noleggiarne una online usando Google Cloud, Google Colab, PaperSpace, AWS o altri.

Guide online: leggi il paragrafo "GPU (Graphic Processing Unit)" dell'articolo "Deep Learning Brasília - Revisão" o link seguintes.

CPU locale

Leggi il documento README.md ma segui i passaggi seguenti:

  1. installa Anaconda per Windows
  2. Apre il terminale "Anaconda Prompt" (installato da Anaconda) e digita i seguenti comandi in questo terminale.
  3. mkdir fastai (per creare la cartella fastai)
  4. cd fastai (per accedere alla cartella fastai)
  5. git clone https://github.com/fastai/fastai.git (per scaricare i file Fastai inclusi notebook e file per installare l'ambiente virtuale fastai-cpu: pytorch, librerie numpy, panda, bcolz, ecc.)
  6. conda env update -f environment-cpu.yml (IMPORTANTE: utilizzare il file environment-cpu.yml perché si desidera utilizzare la CPU, non una GPU)
  7. conda activate fastai-cpu (per attivare l'ambiente virtuale fastai-cpu)
  8. cd corsi \ ml1 (inserire ad esempio nella cartella ml1)
  9. del fastai (elimina il symlink fastai creato per essere eseguito nell'ambiente bash)
  10. mklink / d fastai .. \ .. \ fastai (crea il link simbolico windows fastai nella cartella fastai che contiene i file della libreria Fastai)
  11. cd .. \ .. (esci dalla cartella ml1 per tornare alla cartella principale creata nel passaggio 3)
  12. jupyter notebook (avvia il notebook jupyter che si aprirà in un browser Web)

"Et voilà": hai la libreria Fastai (e i suoi notebook) installata sul tuo computer con CPU e puoi eseguire tutti i notebook della cartella ml1.

GPU locale

  • Howto: installazione su Windows

GPU online

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

Non dimenticare di spegnere la tua macchina virtuale !!!

4) Compiti

Jeremy Howard parla di 10 ore di lavoro personale per ogni video della sua classe ... ed ha ragione!

In effetti, se vuoi imparare a fare ML e DL e non solo capire i principi, devi PRATICA.

Gli elementi presentati sopra (in sintesi, conoscendo il linguaggio Python e come usare un notebook Jupyter e aver installato la libreria Fastai su una GPU) sono prerequisiti NECESSARI ma non sufficienti.

Per imparare davvero, devi guardare più volte video, eseguire i quaderni di Fastai, studiare le linee di codici, porre domande nel forum di Fastai quando non capisci, rispondere alle domande poste da altri e pubblicare articoli per migliorare la tua comprensione. Questo è un vero apprendimento!

Ancora una parola: ENJOY! :-)