AI EducademyAIEducademy
🌳

AI-Fundamenten

🌱
AI Seeds

Begin bij nul

🌿
AI Sprouts

Bouw een fundament

🌳
AI Branches

Pas toe in de praktijk

🏕️
AI Canopy

Ga de diepte in

🌲
AI Forest

Beheers AI

🔨

AI-Meesterschap

✏️
AI Sketch

Begin bij nul

🪨
AI Chisel

Bouw een fundament

⚒️
AI Craft

Pas toe in de praktijk

💎
AI Polish

Ga de diepte in

🏆
AI Masterpiece

Beheers AI

🚀

Carrière Klaar

🚀
Interview Startplatform

Start je reis

🌟
Gedragsinterview Meesterschap

Beheers soft skills

💻
Technische Interviews

Slaag voor de codeerronde

🤖
AI- & ML-interviews

ML-interview meesterschap

🏆
Aanbod & verder

Bemachtig het beste aanbod

Alle programma's bekijken→

Lab

7 experimenten geladen
🧠Neuraal netwerk speeltuin🤖AI of mens?💬Prompt lab🎨Beeldgenerator😊Sentimentanalyse💡Chatbot bouwer⚖️Ethiek simulator
🎯Proef-sollicitatieGa naar het lab→
nav.journeyBlog
🎯
Over ons

AI-onderwijs toegankelijk maken voor iedereen, overal

❓
nav.faq

Common questions answered

✉️
Contact

Get in touch with us

⭐
Open Source

Openbaar gebouwd op GitHub

Begin met leren, het is gratis
AI EducademyAIEducademy

MIT-licentie. Open source

Leren

  • Opleidingen
  • Lessen
  • Lab

Community

  • GitHub
  • Bijdragen
  • Gedragscode
  • Over ons
  • FAQ

Ondersteuning

  • Koop een koffie voor me ☕
  • footer.terms
  • footer.privacy
  • footer.contact
AI & Engineering Opleidingen›🌿 AI Sprouts›Lessen›Verliesfuncties en optimizers
📉
AI Sprouts • Gemiddeld⏱️ 15 min leestijd

Verliesfuncties en optimizers

Verliesfuncties en Optimalisatoren

Backpropagation geeft ons gradiënten - maar gradiënten waarvan? Voordat backprop kan starten, hebben we één enkel getal nodig dat vastlegt hoe fout het model zit. Dat getal komt van een verliesfunctie. Zodra we gradiënten hebben, bepaalt een optimalisator hoe de gewichten worden bijgewerkt. Samen vormen ze de leerlus.

Wat Is een Verliesfunctie?

Een verliesfunctie (ook wel kostenfunctie genoemd) neemt de voorspelling van het model en het juiste antwoord, en geeft een getal terug dat de "fout" meet. Het doel van het trainen is om dit getal te minimaliseren.

Zie het als een golfscore - lager is beter. Een verlies van 0 betekent een perfecte voorspelling.

Een U-vormige curve met verlies op de y-as en gewichtswaarde op de x-as, met een bal die naar het minimum rolt
Trainen is als een bal bergafwaarts laten rollen over het verlieslandschap, op zoek naar het laagste punt.

Verliesfuncties voor Regressie - MSE

Bij het voorspellen van continue waarden (huizenprijzen, temperatuur) gebruiken we Mean Squared Error (MSE):

MSE = (1/n) × Σ(voorspeld - werkelijk)²

Kwadrateren doet twee dingen: het maakt alle fouten positief, en het bestraft grote fouten onevenredig zwaar. Een huisprijs die €100.000 afwijkt heeft een kwadratische fout die 100× erger is dan een afwijking van €10.000.

🤯

MSE dateert uit 1795, toen Carl Friedrich Gauss het bedacht - meer dan twee eeuwen vóór neurale netwerken. Hij gebruikte het om de baan van de asteroïde Ceres te berekenen.

Verliesfuncties voor Classificatie - Cross-Entropy

Bij het voorspellen van categorieën (spam of niet, kat vs. hond) gebruiken we cross-entropy-verlies. Het meet hoe ver de voorspelde kansen van het model afstaan van de werkelijke labels.

Als het juiste antwoord "kat" is en het model zegt 99% kat, dan is het verlies minuscuul. Als het 10% kat zegt, is het verlies enorm. Cross-entropy heeft een nuttige eigenschap: het wordt oneindig ontevreden wanneer het model vol vertrouwen fout zit, wat een sterke gradiënt creëert om de fout te corrigeren.

Binaire cross-entropy is voor tweeklassenprobleem. Categorische cross-entropy behandelt meerdere klassen door kansdistributies te vergelijken.

🧠Snelle check

Waarom is MSE een slechte keuze voor classificatietaken?

Les 7 van 160% voltooid
←Backpropagation

Discussion

Sign in to join the discussion

lessons.suggestEdit

Gradiëntafdaling - Bergafwaarts Rollen

Met een gedefinieerde verliesfunctie kunnen we het verlieslandschap visualiseren - een oppervlak waar elk punt een set gewichten vertegenwoordigt en de hoogte het verlies is. Trainen betekent het diepste dal vinden.

Gradiëntafdaling is het algoritme dat ons daar brengt:

  1. Bereken de gradiënt (helling) op de huidige positie.
  2. Zet een stap in de tegenovergestelde richting (bergafwaarts).
  3. Herhaal.

De grootte van elke stap wordt bepaald door de leersnelheid - misschien wel de belangrijkste hyperparameter in deep learning.

Het Leersnelheidsdilemma

  • Te hoog: Je schiet over het dal heen, stuitert heen en weer of divergeert volledig.
  • Te laag: Je kruipt pijnlijk langzaam vooruit en kan vastlopen in een ondiep lokaal minimum.
  • Precies goed: Je convergeert gestaag naar een goede oplossing.
🤔
Think about it:

Stel je voor dat je in dichte mist een berg afdaalt en alleen de helling direct onder je voeten kunt voelen. Je stapt bergafwaarts, maar je kunt het hele landschap niet zien. Hoe zou je in een klein kuiltje terecht kunnen komen dat niet het diepste dal is? Dit is het lokaal-minimumprobleem.

Varianten van Gradiëntafdaling

Batch Gradiëntafdaling

Berekent de gradiënt op basis van de volledige dataset vóór elke update. Nauwkeurig maar pijnlijk langzaam voor grote datasets - stel je voor dat je elk boek in een bibliotheek opnieuw moet lezen voordat je één spelfout mag corrigeren.

Stochastische Gradiëntafdaling (SGD)

Werkt gewichten bij na elk afzonderlijk voorbeeld. Snel maar lawaaierig - het pad zigzagt wild. Het lawaai kan juist helpen om aan lokale minima te ontsnappen, wat een verrassend voordeel is.

Mini-Batch Gradiëntafdaling

De praktische gulden middenweg. Berekent gradiënten op een kleine batch (doorgaans 32–512 voorbeelden). Brengt snelheid en stabiliteit in balans, en is wat vrijwel alle moderne training gebruikt.

Moderne Optimalisatoren

Gewone SGD heeft beperkingen. Onderzoekers hebben slimmere optimalisatoren ontwikkeld die zich aanpassen terwijl ze werken.

SGD met Momentum

Net als een zware bal die bergafwaarts rolt, bouwt momentum snelheid op in consistente richtingen en dempt oscillaties. Als de gradiënt steeds dezelfde kant op wijst, versnelt momentum. Als de richting steeds verandert, vlakt momentum het af.

AdaGrad

Past de leersnelheid per parameter aan. Vaak bijgewerkte gewichten krijgen kleinere stappen; zelden bijgewerkte gewichten krijgen grotere stappen. Uitstekend voor schaarse data (zoals tekst), maar de leersnelheid kan na verloop van tijd krimpen tot nul.

Adam (Adaptive Moment Estimation)

Combineert momentum en per-parameter adaptieve snelheden. Het houdt lopende gemiddelden bij van zowel de gradiënt (eerste moment) als de gekwadrateerde gradiënt (tweede moment). Adam is de standaardkeuze voor de meeste beoefenaars vandaag.

🧠Snelle check

Welk voordeel heeft Adam ten opzichte van gewone SGD?

Leersnelheidsschema's

In plaats van de leersnelheid vast te zetten, wordt bij moderne training vaak een schema gehanteerd:

  • Stapgewijze afname: Halveer de snelheid elke N epochs.
  • Cosinus-annealing: Laat geleidelijk afnemen volgens een cosinuscurve, soms met warme herstarts.
  • Opwarming: Begin met een kleine snelheid, verhoog geleidelijk en laat dan afnemen. Wordt gebruikt bij Transformer-training.

De intuïtie: neem grote stappen in het begin om breed te verkennen, en daarna kleine stappen om fijn af te stellen.

Gradiënt-Clipping - Vangrails

Soms exploderen gradiënten (zoals we zagen in de les over backpropagation). Gradiënt-clipping beperkt de grootte van de gradiënt vóór de updatestap. Als de gradiënt een drempelwaarde overschrijdt, wordt deze proportioneel verkleind. Dit is standaardpraktijk bij het trainen van RNN's en Transformers.

🧠Snelle check

Wat voorkomt gradiënt-clipping?

🤯

Het artikel over de Adam-optimalisator (Kingma & Ba, 2014) heeft meer dan 150.000 citaties, waardoor het een van de meest geciteerde artikelen in de gehele informatica is.

Belangrijkste Punten

  • Verliesfuncties kwantificeren hoe fout een model zit - MSE voor regressie, cross-entropy voor classificatie.
  • Gradiëntafdaling minimaliseert het verlies door herhaaldelijk een stap te zetten tegengesteld aan de gradiënt.
  • De leersnelheid bepaalt de stapgrootte en is cruciaal om goed in te stellen.
  • Adam is de meestgebruikte optimalisator, die momentum en adaptieve snelheden combineert.
  • Leersnelheidsschema's en gradiënt-clipping zijn essentiële stabilisatoren voor het trainingsproces.
🤔
Think about it:

Als je een model traint en het verlies stopt met dalen na een paar epochs, wat zou je dan als eerste onderzoeken - de leersnelheid, de verliesfunctie of de data? Waarom?


📚 Verder Lezen

  • Andrej Karpathy - A Recipe for Training Neural Networks - Praktische wijsheid over het debuggen van verlies en het kiezen van een optimalisator
  • 3Blue1Brown - Gradient Descent - Prachtige visuele intuïtie over hoe gradiëntafdaling door verlieslandschappen navigeert
  • An Overview of Gradient Descent Optimisation Algorithms (Ruder, 2016) - Uitgebreide vergelijking van SGD, Adam en aanverwanten