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
- 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.
- 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à.
- 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.
- 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
- 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.
- 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.
- 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.
- 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
- 9TensoriCrea e rimodella tensori di PyTorch.
- Crea tensori e controlla forma e tipo.
- Rimodellali, impilali e tagliali.
- Sposta i tensori su una GPU.
- 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.
- 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.
- 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
- 13Immagini come tensoriCarica immagini come tensori e normalizzale.
- Carica un’immagine come canali, altezza e larghezza.
- Ridimensiona e normalizza.
- Mostra un batch come griglia.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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
- 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.
- 26Classificatore audioClassifica brevi clip audio.
- Tratta gli spettrogrammi come immagini.
- Addestra una CNN su di essi.
- Prova con rumore di fondo.
- 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.
- 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
- 29RegolarizzazioneRiduci il sovradattamento con la regolarizzazione: dropout e decadimento dei pesi.
- Aggiungi il dropout.
- Aggiungi il decadimento dei pesi.
- Confronta le curve di validazione.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.