Curs
IA de 10è: Aprenentatge profund i IA multimodal
Construeix i entrena xarxes neuronals en PyTorch per a imatges, text i so.
Fes les lliçons en ordre. Al final pots calcular la sortida d’una neurona, comparar les activacions ReLU, sigmoide i softmax, i escriure el pas endavant d’una xarxa petita amb NumPy. Pots triar una pèrdua, explicar el descens del gradient i la retropropagació, i escriure un guió amb el bucle complet d’entrenament i prova en PyTorch. Pots entrenar un classificador d’imatges amb una CNN, entrenar un classificador de sentiment per distingir ressenyes positives de negatives, explicar com l’atenció pondera els altres tokens, i classificar clips de so curts. Pots reduir el sobreajust, ajustar un model preentrenat a classes noves, agrupar els errors i trobar-ne la causa, i presentar un monitor intel·ligent de fauna provat amb imatges no vistes.
Com fer servir aquestes lliçons
- Comença a la lliçó que diu Fes això. Passa endavant quan puguis fer tu sol la línia de sota el títol.
- Primer juga als Jocs. Després fes les Proves. 8 de 10 encerts per aprovar. Les Fitxes són en paper. Les respostes són a baix.
- Cada lliçó es basa en l’anterior. Anota cada entrenament: els ajustos, la corba de pèrdua i la puntuació de la prova.
- Les lliçons de codi fan servir Python i PyTorch en un quadern en línia gratuït amb una GPU. N’hi ha prou amb models petits i conjunts petits. Fes servir només conjunts oberts que tinguis permís d’usar, i no entrenis mai amb fotos de persones sense el seu permís.
Cada lliçó té jocs, proves i fitxes.
0 de 36
Fonaments de xarxes neuronals
- 1NeuronesCalcula la sortida d’una neurona a partir d’entrades, pesos i biaix.
- Escriu la suma ponderada més el biaix.
- Calcula-la a mà per a tres entrades.
- Calcula-la en codi amb un producte escalar.
- 2ActivacionsCompara les activacions ReLU, sigmoide i softmax.
- Dibuixa cada activació.
- Explica per què una xarxa necessita una activació no lineal.
- Fes servir softmax per convertir puntuacions en probabilitats.
- 3Capes i xarxesApila capes per formar una xarxa.
- Escriu una capa com una multiplicació de matrius.
- Segueix la forma de les dades a cada capa.
- Compta els paràmetres d’una xarxa.
- 4Una xarxa petitaEscriu el pas endavant d’una xarxa petita amb NumPy.
- Construeix una xarxa de dues capes en NumPy.
- Passa un lot d’entrades per ella.
- Comprova la forma de la sortida.
Entrenament de xarxes neuronals
- 5PèrduaTria una pèrdua per a una tasca i calcula-la.
- Fes servir l’error quadràtic mitjà per a regressió.
- Fes servir l’entropia creuada per a classificació.
- Digues què vol dir que la pèrdua baixi.
- 6Descens del gradientExplica com el descens del gradient mou els pesos pendent avall.
- Troba el pendent d’una corba de pèrdua.
- Fes passos amb una taxa d’aprenentatge.
- Mira què passa si la taxa és massa gran o massa petita.
- 7RetropropagacióSegueix la retropropagació de l’error enrere per la xarxa.
- Fes servir la regla de la cadena en una xarxa minúscula.
- Calcula un gradient a mà.
- Comprova’l amb la diferenciació automàtica.
- 8Entrena una xarxaEntrena una xarxa petita i dibuixa la pèrdua.
- Entrena amb mini-lots.
- Dibuixa la pèrdua d’entrenament i de validació.
- Atura’t quan la pèrdua de validació deixa de millorar.
Biblioteques d’aprenentatge profund
- 9TensorsCrea i canvia la forma de tensors de PyTorch.
- Crea tensors i comprova’n la forma i el tipus.
- Canvia’n la forma, apila’ls i talla’ls.
- Mou tensors a una GPU.
- 10MòdulsConstrueix un model amb mòduls de torch.nn.
- Crea una subclasse de nn.Module.
- Fes servir capes Linear i d’activació.
- Imprimeix el model i el seu nombre de paràmetres.
- 11OptimitzadorsEntrena amb els optimitzadors SGD i Adam.
- Fes servir zero_grad, backward i step.
- Compara SGD i Adam en una tasca.
- Fes servir un calendari de taxa d’aprenentatge.
- 12Guió d’entrenamentEscriu un guió amb el bucle complet d’entrenament i prova.
- Carrega dades amb un DataLoader.
- Entrena, valida i prova.
- Desa el millor model.
Visió per computador
- 13Imatges com a tensorsCarrega imatges com a tensors i normalitza-les.
- Carrega una imatge com a canals, alçada i amplada.
- Canvia’n la mida i normalitza-la.
- Mostra un lot com una graella.
- 14ConvolucionsExplica com un filtre de convolució troba vores.
- Llisca un filtre 3×3 sobre una imatge a mà.
- Aplica filtres de vores en codi.
- Explica stride, padding i pooling.
- 15CNNConstrueix una xarxa neuronal convolucional, una CNN.
- Apila capes de convolució, activació i pooling.
- Aplana i afegeix un cap classificador.
- Segueix les formes per la xarxa.
- 16Classificador d’imatgesEntrena un classificador d’imatges amb una CNN.
- Entrena amb un conjunt petit d’imatges.
- Informa de l’exactitud a la prova.
- Mostra imatges que ha classificat malament.
Processament del llenguatge natural
- 17TokenitzacióFes la tokenització: converteix el text en tokens i identificadors.
- Compara tokens de paraula i de subparaula.
- Construeix un vocabulari.
- Omple les seqüències fins a la mateixa llargada.
- 18EmbeddingsExplica com els embeddings acosten les paraules semblants.
- Fes servir una capa d’embedding.
- Troba les paraules més properes a una paraula.
- Dibuixa embeddings en dues dimensions.
- 19Models de textConstrueix un model de text que llegeix una seqüència de tokens.
- Fes la mitjana d’embeddings en un sol vector.
- Fes servir una capa recurrent simple.
- Compara les dues.
- 20Classificador de sentimentEntrena un classificador de sentiment per distingir ressenyes positives de negatives.
- Entrena amb un conjunt de ressenyes.
- Informa d’exactitud, precisió i exhaustivitat.
- Troba ressenyes que l’enganyen, com el sarcasme.
Transformers
- 21AtencióExplica com l’atenció pondera els altres tokens.
- Explica les consultes, les claus i els valors.
- Calcula els pesos d’atenció d’una frase curta.
- Digues per què l’atenció ajuda amb el significat a llarga distància.
- 22Blocs transformerAnomena les parts d’un bloc transformer.
- Anomena l’atenció multicap, la capa feed-forward i les capes de normalització.
- Explica les connexions residuals.
- Explica les codificacions de posició.
- 23Models preentrenatsFes servir un model preentrenat transformer per a una tasca.
- Carrega un model preentrenat i un tokenitzador.
- Classifica text amb ell.
- Compara’l amb el teu propi model de sentiment.
- 24Mapes d’atencióLlegeix un mapa d’atenció.
- Dibuixa els pesos d’atenció com un mapa de calor.
- Troba a quines paraules atén un token.
- Digues per què l’atenció no és una explicació completa.
Àudio i IA multimodal
- 25El so com a dadesConverteix el so en una forma d’ona i un espectrograma.
- Carrega àudio i dibuixa’n la forma d’ona.
- Explica la freqüència de mostreig.
- Fes un espectrograma.
- 26Classificador d’àudioClassifica clips de so curts amb un classificador d’àudio.
- Tracta els espectrogrames com imatges.
- Entrena una CNN amb ells.
- Prova amb soroll de fons.
- 27Entrades multimodalsExplica com un model combina entrades multimodals d’imatges i text.
- Explica codificadors separats per a cada entrada.
- Explica un espai d’embeddings compartit.
- Anomena tres aplicacions multimodals.
- 28Imatge i textAparella imatge i text: uneix imatges amb peus de foto amb un model preentrenat.
- Obtén embeddings d’imatges i de peus de foto.
- Ordena els peus de foto de cada imatge.
- Cerca imatges amb una consulta de text.
Millora del model
- 29RegularitzacióRedueix el sobreajust amb regularització: dropout i decaïment dels pesos.
- Afegeix dropout.
- Afegeix decaïment dels pesos.
- Compara les corbes de validació.
- 30Augment de dadesFes augment de dades: afegeix imatges girades i retallades al conjunt d’entrenament.
- Aplica girs, retalls i canvis de color.
- Augmenta només el conjunt d’entrenament.
- Mesura el canvi en l’exactitud de la prova.
- 31Aprenentatge per transferènciaFes servir l’aprenentatge per transferència per ajustar un model preentrenat a classes noves.
- Congela les capes preentrenades.
- Substitueix i entrena el cap.
- Descongela i ajusta amb una taxa d’aprenentatge petita.
- 32Anàlisi d’errorsFes una anàlisi d’errors: agrupa els errors i troba’n la causa.
- Llegeix una matriu de confusió de moltes classes.
- Ordena els errors en grups.
- Tria la correcció per al grup més gran.
Projecte d’aprenentatge profund
- 33Dades de faunaTria i divideix un conjunt obert d’imatges de fauna.
- Tria un conjunt obert de càmeres trampa o de fauna.
- Tria de cinc a deu espècies.
- Divideix per lloc perquè la prova sigui justa.
- 34Ajusta el modelAjusta el model classificador d’imatges a classes de fauna.
- Ajusta un model preentrenat.
- Segueix l’exactitud de validació.
- Desa el millor punt de control.
- 35Interfície de demostracióConstrueix una interfície de demostració que mostra prediccions d’imatges pujades.
- Accepta una imatge pujada.
- Mostra les tres espècies principals i les seves puntuacions.
- Mostra «no n’estic segur» quan la confiança és baixa.
- 36Monitor intel·ligent de faunaPresenta un monitor intel·ligent de fauna: l’exactitud en imatges no vistes i els errors principals.
- Informa de l’exactitud en imatges no vistes.
- Mostra els errors principals i les seves causes.
- Digues què canviaries després.