Alle lessen

Cursus

AI voor de 10e klas: Diep leren en multimodale AI

Bouw en train neurale netwerken in PyTorch voor beelden, tekst en geluid.

Doe de lessen op volgorde. Aan het eind kun je de uitvoer van een neuron berekenen, activaties vergelijken en een voorwaartse doorgang met NumPy schrijven. Je kunt een verlies kiezen, gradiëntdaling en terugpropagatie uitleggen, en een volledige trainings- en testlus in PyTorch schrijven. Je kunt een CNN trainen om afbeeldingen te classificeren, een sentimentclassificator trainen om positieve van negatieve recensies te onderscheiden, uitleggen hoe aandacht andere tokens weegt, en korte audioclips classificeren. Je kunt overfitting verminderen, een voorgetraind model fijn afstemmen op nieuwe klassen, fouten groeperen en hun oorzaak vinden, en een monitor voor wilde dieren presenteren op ongeziene afbeeldingen.

Zo gebruik je deze lessen

  • Begin bij de les met Doe dit. Ga verder als je de regel onder de titel zelf kunt doen.
  • Speel eerst de Spelletjes. Maak daarna de Toets. 8 van 10 goed om te halen. De Werkbladen zijn op papier. De antwoorden staan onderaan.
  • Elke les bouwt voort op de les ervoor. Houd aantekeningen bij elke trainingsrun: de instellingen, de verliescurve en de testscore.
  • De codeerlessen gebruiken Python en PyTorch in een gratis online notebook met een GPU. Kleine modellen en kleine datasets zijn genoeg. Gebruik alleen open datasets die je mag gebruiken, en train nooit op foto’s van mensen zonder hun toestemming.

Elke les heeft spelletjes, een toets en werkbladen.

0 van 36

Basis van neurale netwerken

  1. 1NeuronenBereken de uitvoer van een neuron uit invoer, gewichten en bias.
    • Schrijf de gewogen som plus bias.
    • Bereken die met de hand voor 3 invoeren.
    • Bereken die in code met een inwendig product.
  2. 2ActivatiesVergelijk de activaties ReLU, sigmoid en softmax.
    • Teken elke activatie.
    • Leg uit waarom een netwerk een niet-lineaire activatie nodig heeft.
    • Gebruik softmax om scores in kansen te veranderen.
  3. 3Lagen en netwerkenStapel lagen tot een netwerk.
    • Schrijf een laag als een matrixvermenigvuldiging.
    • Volg de vorm van de data door elke laag.
    • Tel de parameters van een netwerk.
  4. 4Een klein netwerkSchrijf een voorwaartse doorgang met NumPy voor een klein netwerk.
    • Bouw een netwerk met 2 lagen in NumPy.
    • Stuur een batch invoer erdoor.
    • Controleer de vorm van de uitvoer.

Neurale netwerken trainen

  1. 5VerliesKies een verlies voor een taak en bereken het.
    • Gebruik de gemiddelde kwadratische fout voor regressie.
    • Gebruik kruisentropie voor classificatie.
    • Zeg wat een dalend verlies betekent.
  2. 6GradiëntdalingLeg uit hoe gradiënten gewichten bergaf bewegen.
    • Vind de helling van een verliescurve.
    • Zet stappen met een leersnelheid.
    • Zie wat er gebeurt als de leersnelheid te groot of te klein is.
  3. 7TerugpropagatieVolg hoe de fout door terugpropagatie terugstroomt door een netwerk.
    • Gebruik de kettingregel op een klein netwerk.
    • Bereken één gradiënt met de hand.
    • Controleer die met automatische differentiatie.
  4. 8Train een netwerkTrain een klein netwerk en teken het verlies.
    • Train met minibatches.
    • Teken trainingsverlies en validatieverlies.
    • Stop als het validatieverlies niet meer verbetert.

Frameworks voor diep leren

  1. 9TensorenMaak en hervorm PyTorch-tensoren.
    • Maak tensoren en controleer hun vorm en type.
    • Hervorm, stapel en snijd ze.
    • Verplaats tensoren naar een GPU.
  2. 10ModulesBouw een model met modules van torch.nn.
    • Maak een subklasse van nn.Module.
    • Gebruik Linear- en activatielagen.
    • Print het model en het aantal parameters.
  3. 11OptimalisatorenTrain met de optimalisatoren SGD en Adam.
    • Gebruik zero_grad, backward en step.
    • Vergelijk SGD en Adam op één taak.
    • Gebruik een schema voor de leersnelheid.
  4. 12TrainingsscriptSchrijf een volledige trainings- en testlus.
    • Laad data met een DataLoader.
    • Train, valideer en test.
    • Sla het beste model op.

Computerzicht

  1. 13Afbeeldingen als tensorenLaad afbeeldingen als tensoren en normaliseer ze.
    • Laad een afbeelding als kanalen, hoogte en breedte.
    • Schaal en normaliseer hem.
    • Toon een batch als een rooster.
  2. 14ConvolutiesLeg uit hoe een convolutiefilter randen vindt.
    • Schuif met de hand een 3×3-filter over een afbeelding.
    • Pas randfilters toe in code.
    • Leg stride, padding en pooling uit.
  3. 15CNN’sBouw een convolutioneel neuraal netwerk, een CNN.
    • Stapel convolutie-, activatie- en poolinglagen.
    • Vlak af en voeg een classificatielaag toe.
    • Volg de vormen door het netwerk.
  4. 16BeeldclassificatorTrain een CNN om afbeeldingen te classificeren.
    • Train op een kleine beelddataset.
    • Rapporteer de testnauwkeurigheid.
    • Toon afbeeldingen die het fout had.

Natuurlijke taalverwerking

  1. 17TokenisatieZet tekst om in tokens en ID’s met tokenisatie.
    • Vergelijk woordtokens en subwoordtokens.
    • Bouw een woordenlijst.
    • Vul reeksen aan tot dezelfde lengte.
  2. 18EmbeddingsLeg uit hoe embeddings soortgelijke woorden dicht bij elkaar zetten.
    • Gebruik een embeddinglaag.
    • Vind de woorden die het dichtst bij een woord liggen.
    • Teken embeddings in 2 dimensies.
  3. 19TekstmodellenBouw een tekstmodel dat een reeks tokens leest.
    • Middel embeddings tot één vector.
    • Gebruik een eenvoudige recurrente laag.
    • Vergelijk de twee.
  4. 20SentimentclassificatorTrain een sentimentclassificator om positieve van negatieve recensies te onderscheiden.
    • Train op een recensiedataset.
    • Rapporteer nauwkeurigheid, precisie en recall.
    • Vind recensies die het model foppen, zoals sarcasme.

Transformers

  1. 21AandachtLeg uit hoe aandacht andere tokens weegt.
    • Leg query, key en value uit.
    • Bereken aandachtsgewichten voor een korte zin.
    • Zeg waarom aandacht helpt bij betekenis over lange afstand.
  2. 22TransformerblokkenNoem de delen van een transformerblok.
    • Noem multi-head attention, feed-forward en normalisatielagen.
    • Leg residuale verbindingen uit.
    • Leg positiecoderingen uit.
  3. 23Voorgetrainde modellenGebruik een voorgetrainde transformer voor een taak.
    • Laad een voorgetraind model en een tokenizer.
    • Classificeer tekst ermee.
    • Vergelijk het met je eigen sentimentclassificator.
  4. 24AandachtskaartenLees een visualisatie van een aandachtskaart.
    • Teken aandachtsgewichten als een heatmap.
    • Vind naar welke woorden een token kijkt.
    • Zeg waarom aandacht geen volledige uitleg is.

Audio en multimodale AI

  1. 25Geluid als dataZet geluid om in een golfvorm en een spectrogram.
    • Laad geluid en teken de golfvorm.
    • Leg de bemonsteringsfrequentie uit.
    • Maak een spectrogram.
  2. 26AudioclassificatorClassificeer korte audioclips.
    • Behandel spectrogrammen als afbeeldingen.
    • Train er een CNN op.
    • Test met achtergrondruis.
  3. 27Multimodale invoerLeg uit hoe een model multimodale invoer van beelden en tekst samenvoegt.
    • Leg aparte encoders voor elke invoer uit.
    • Leg een gedeelde embeddingruimte uit.
    • Noem 3 multimodale apps.
  4. 28Beeld en tekstKoppel afbeeldingen aan tekstbijschriften met een voorgetraind model.
    • Maak embeddings van afbeeldingen en bijschriften.
    • Rangschik bijschriften voor elke afbeelding.
    • Zoek afbeeldingen met een tekstzoekopdracht.

Het model verbeteren

  1. 29RegularisatieVerminder overfitting met regularisatie: dropout en weight decay.
    • Voeg dropout toe.
    • Voeg weight decay toe.
    • Vergelijk validatiecurves.
  2. 30Data-augmentatieVoeg met data-augmentatie gespiegelde en bijgesneden afbeeldingen toe aan de trainingsset.
    • Pas spiegelingen, bijsnijden en kleurveranderingen toe.
    • Doe data-augmentatie alleen op de trainingsset.
    • Meet de verandering in testnauwkeurigheid.
  3. 31OverdrachtslerenStem door overdrachtsleren een voorgetraind model fijn af op nieuwe klassen.
    • Bevries de voorgetrainde lagen.
    • Vervang de kop en train die.
    • Ontdooi en stem fijn af met een kleine leersnelheid.
  4. 32FoutenanalyseGroepeer fouten en vind hun oorzaak.
    • Lees een verwarringsmatrix voor veel klassen.
    • Sorteer fouten in groepen.
    • Kies de oplossing voor de grootste groep.

Project voor diep leren

  1. 33Gegevens over wilde dierenKies en splits een open beelddataset van wilde dieren.
    • Kies een open dataset van cameravallen of wilde dieren.
    • Kies 5 tot 10 soorten.
    • Splits op locatie zodat de test eerlijk is.
  2. 34Stem het model fijn afStem een beeldclassificator fijn af op klassen van wilde dieren.
    • Stem een voorgetraind model fijn af.
    • Volg de validatienauwkeurigheid.
    • Sla het beste checkpoint op.
  3. 35Demo-interfaceBouw een demo-interface die voorspellingen toont op geüploade afbeeldingen.
    • Accepteer een geüploade afbeelding.
    • Toon de beste 3 soorten en hun scores.
    • Toon “niet zeker” als het vertrouwen laag is.
  4. 36Intelligente monitor voor wilde dierenPresenteer de nauwkeurigheid van de monitor voor wilde dieren op ongeziene afbeeldingen en de belangrijkste fouten.
    • Rapporteer de nauwkeurigheid op ongeziene afbeeldingen.
    • Toon de belangrijkste fouten en hun oorzaken.
    • Zeg wat je daarna zou veranderen.