Tutte le lezioni

Corso

IA della decima: Apprendimento profondo e IA multimodale

Costruisci e addestra reti neurali in PyTorch per immagini, testo e suono.

Fai le lezioni in ordine. Alla fine sai calcolare l’uscita di un neurone, confrontare le attivazioni e scrivere un passo in avanti con NumPy. Sai scegliere una perdita, spiegare la discesa del gradiente e la retropropagazione, e scrivere un ciclo completo di addestramento e test in PyTorch. Sai addestrare una CNN a classificare immagini, addestrare un classificatore di sentimenti a distinguere recensioni positive e negative, spiegare come l’attenzione pesa gli altri token e classificare brevi clip audio. Sai ridurre il sovradattamento, mettere a punto un modello preaddestrato su classi nuove, raggruppare gli errori e trovarne la causa, e presentare un monitoraggio della fauna su immagini mai viste.

Come usare queste lezioni

  • Parti dalla lezione segnata Fai questo. Vai avanti quando sai fare da te la riga sotto il titolo.
  • Prima gioca ai Giochi. Poi fai i Quiz. 8 di 10 giuste per passare. Le Schede sono su carta. Le risposte sono in fondo.
  • Ogni lezione si appoggia a quella prima. Tieni appunti di ogni addestramento: le impostazioni, la curva della perdita e il punteggio del test.
  • Le lezioni di codice usano Python e PyTorch in un notebook online gratuito con una GPU. Bastano modelli piccoli e dataset piccoli. Usa solo dataset aperti che ti è permesso usare, e non addestrare mai su foto di persone senza il loro permesso.

Ogni lezione ha giochi, quiz e schede.

0 di 36

Basi delle reti neurali

  1. 1NeuroniCalcola l’uscita di un neurone da ingressi, pesi e bias.
    • Scrivi la somma pesata più il bias.
    • Calcolala a mano per 3 ingressi.
    • Calcolala nel codice con un prodotto scalare.
  2. 2AttivazioniConfronta le attivazioni ReLU, sigmoid e softmax.
    • Disegna ogni attivazione.
    • Spiega perché una rete ha bisogno di un’attivazione non lineare.
    • Usa softmax per trasformare i punteggi in probabilità.
  3. 3Strati e retiImpila gli strati in una rete.
    • Scrivi uno strato come prodotto di matrici.
    • Segui la forma dei dati in ogni strato.
    • Conta i parametri di una rete.
  4. 4Una rete piccolaScrivi un passo in avanti con NumPy per una rete piccola.
    • Costruisci una rete a 2 strati in NumPy.
    • Fai passare un batch di ingressi.
    • Controlla la forma dell’uscita.

Addestrare le reti neurali

  1. 5PerditaScegli una perdita per un compito e calcolala.
    • Usa l’errore quadratico medio per la regressione.
    • Usa l’entropia incrociata per la classificazione.
    • Di’ che cosa significa una perdita che scende.
  2. 6Discesa del gradienteSpiega come i gradienti spostano i pesi in discesa.
    • Trova la pendenza di una curva della perdita.
    • Fai passi con un tasso di apprendimento.
    • Vedi che cosa succede se il tasso è troppo grande o troppo piccolo.
  3. 7RetropropagazioneSegui come l’errore torna indietro attraverso la rete nella retropropagazione.
    • Usa la regola della catena su una rete piccola.
    • Calcola un gradiente a mano.
    • Confrontalo con la differenziazione automatica.
  4. 8Addestra una reteAddestra una rete piccola e traccia la perdita.
    • Addestra con mini-batch.
    • Traccia la perdita di addestramento e di validazione.
    • Fermati quando la perdita di validazione non migliora più.

Framework di apprendimento profondo

  1. 9TensoriCrea e rimodella tensori di PyTorch.
    • Crea tensori e controlla forma e tipo.
    • Rimodellali, impilali e tagliali.
    • Sposta i tensori su una GPU.
  2. 10ModuliCostruisci un modello con i moduli di torch.nn.
    • Crea una sottoclasse di nn.Module.
    • Usa strati Linear e di attivazione.
    • Stampa il modello e il numero di parametri.
  3. 11OttimizzatoriAddestra con gli ottimizzatori SGD e Adam.
    • Usa zero_grad, backward e step.
    • Confronta SGD e Adam su un compito.
    • Usa una pianificazione del tasso di apprendimento.
  4. 12Script di addestramentoScrivi un ciclo completo di addestramento e test.
    • Carica i dati con un DataLoader.
    • Addestra, valida e testa.
    • Salva il modello migliore.

Visione artificiale

  1. 13Immagini come tensoriCarica immagini come tensori e normalizzale.
    • Carica un’immagine come canali, altezza e larghezza.
    • Ridimensiona e normalizza.
    • Mostra un batch come griglia.
  2. 14ConvoluzioniSpiega come un filtro di convoluzione trova i bordi.
    • Fai scorrere a mano un filtro 3×3 su un’immagine.
    • Applica filtri per i bordi nel codice.
    • Spiega stride, padding e pooling.
  3. 15CNNCostruisci una rete neurale convoluzionale, una CNN.
    • Impila strati di convoluzione, attivazione e pooling.
    • Appiattisci e aggiungi una testa di classificazione.
    • Segui le forme attraverso la rete.
  4. 16Classificatore di immaginiAddestra una CNN a classificare immagini.
    • Addestra su un dataset piccolo di immagini.
    • Riporta l’accuratezza sul test.
    • Mostra le immagini classificate male.

Elaborazione del linguaggio naturale

  1. 17TokenizzazioneTrasforma il testo in token e ID con la tokenizzazione.
    • Confronta token di parola e di sottoparola.
    • Costruisci un vocabolario.
    • Riempi le sequenze fino alla stessa lunghezza.
  2. 18EmbeddingSpiega come gli embedding mettono vicine le parole simili.
    • Usa uno strato di embedding.
    • Trova le parole più vicine a una parola.
    • Disegna gli embedding in 2 dimensioni.
  3. 19Modelli di testoCostruisci un modello di testo che legge una sequenza di token.
    • Fai la media degli embedding in un vettore.
    • Usa uno strato ricorrente semplice.
    • Confronta i due.
  4. 20Classificatore di sentimentiAddestra un classificatore di sentimenti a distinguere recensioni positive e negative.
    • Addestra su un dataset di recensioni.
    • Riporta accuratezza, precisione e richiamo.
    • Trova recensioni che lo ingannano, come il sarcasmo.

Transformer

  1. 21AttenzioneSpiega come l’attenzione pesa gli altri token.
    • Spiega query, key e value.
    • Calcola i pesi di attenzione per una frase corta.
    • Di’ perché l’attenzione aiuta il significato a lunga distanza.
  2. 22Blocchi transformerNomina le parti di un blocco transformer.
    • Nomina multi-head attention, feed-forward e strati di normalizzazione.
    • Spiega le connessioni residue.
    • Spiega le codifiche di posizione.
  3. 23Modelli preaddestratiUsa un transformer preaddestrato per un compito.
    • Carica un modello preaddestrato e un tokenizer.
    • Classifica testo con esso.
    • Confrontalo con il tuo classificatore di sentimenti.
  4. 24Mappe di attenzioneLeggi una visualizzazione di una mappa di attenzione.
    • Disegna i pesi di attenzione come mappa di calore.
    • Trova a quali parole un token presta attenzione.
    • Di’ perché l’attenzione non è una spiegazione completa.

Audio e IA multimodale

  1. 25Suono come datiTrasforma il suono in una forma d’onda e in uno spettrogramma.
    • Carica il suono e disegna la sua forma d’onda.
    • Spiega la frequenza di campionamento.
    • Crea uno spettrogramma.
  2. 26Classificatore audioClassifica brevi clip audio.
    • Tratta gli spettrogrammi come immagini.
    • Addestra una CNN su di essi.
    • Prova con rumore di fondo.
  3. 27Input multimodaliSpiega come un modello unisce input multimodali di immagini e testo.
    • Spiega encoder separati per ogni input.
    • Spiega uno spazio di embedding condiviso.
    • Nomina 3 app multimodali.
  4. 28Immagine e testoAbbina immagini a didascalie di testo con un modello preaddestrato.
    • Crea embedding di immagini e didascalie.
    • Ordina le didascalie per ogni immagine.
    • Cerca immagini con una query di testo.

Migliorare il modello

  1. 29RegolarizzazioneRiduci il sovradattamento con la regolarizzazione: dropout e decadimento dei pesi.
    • Aggiungi il dropout.
    • Aggiungi il decadimento dei pesi.
    • Confronta le curve di validazione.
  2. 30Aumento dei datiAggiungi immagini ribaltate e ritagliate al set di addestramento come aumento dei dati.
    • Applica ribaltamenti, ritagli e cambi di colore.
    • Fai l’aumento dei dati solo sul set di addestramento.
    • Misura il cambiamento dell’accuratezza sul test.
  3. 31Apprendimento per trasferimentoMetti a punto un modello preaddestrato su classi nuove con l’apprendimento per trasferimento.
    • Congela gli strati preaddestrati.
    • Sostituisci e addestra la testa.
    • Scongela e metti a punto con un tasso di apprendimento piccolo.
  4. 32Analisi degli erroriRaggruppa gli errori e trova la loro causa.
    • Leggi una matrice di confusione per molte classi.
    • Dividi gli errori in gruppi.
    • Scegli la correzione per il gruppo più grande.

Progetto di apprendimento profondo

  1. 33Dati sulla fauna selvaticaScegli e dividi un dataset aperto di immagini di fauna selvatica.
    • Scegli un dataset aperto di fototrappole o di fauna selvatica.
    • Scegli da 5 a 10 specie.
    • Dividi per luogo così il test è equo.
  2. 34Metti a punto il modelloMetti a punto un classificatore di immagini su classi di fauna selvatica.
    • Metti a punto un modello preaddestrato.
    • Segui l’accuratezza di validazione.
    • Salva il checkpoint migliore.
  3. 35Interfaccia demoCostruisci un’interfaccia demo che mostra le previsioni su immagini caricate.
    • Accetta un’immagine caricata.
    • Mostra le 3 specie in cima e i loro punteggi.
    • Mostra “non so” quando la confidenza è bassa.
  4. 36Monitoraggio intelligente della faunaPresenta l’accuratezza del monitoraggio della fauna su immagini mai viste e gli errori principali.
    • Riporta l’accuratezza su immagini mai viste.
    • Mostra gli errori principali e le loro cause.
    • Di’ che cosa cambieresti dopo.