Ga naar hoofdinhoud

Zadelpunten in optimalisatie: wat ze zijn en waarom ze ertoe doen

Een praktische, wiskundige kijk op zadelpunten: wat ze onderscheidt van lokale minima en maxima, hoe je er een herkent met gradiënten en de Hessiaan, en waarom ze zo vaak voorkomen in hoogdimensionale optimalisatie en de training van neurale netwerken.
Bijgewerkt 2 okt 2026  · 15 min lezen

Verken met AI

ChatGPTClaudePerplexity

Zelfs als elke partiële afgeleide van je functie nul is, ben je nog niet per se in de buurt van een minimum.

Optimalisatie is het zoeken naar de laagste of hoogste waarde van een functie, en elke methode die je gebruikt, zoekt naar een plek waar de gradiënt vlak is. Maar een vlakke gradiënt garandeert niet dat je de beste oplossing hebt gevonden. Soms betekent het dat de functie in de ene richting stijgt en in een andere richting daalt, precies op hetzelfde punt.

Dat punt heet een zadelpunt: het gaat omlaag in de ene richting, omhoog in de andere, en is rondom vlak. Zadelpunten herkennen is belangrijk, omdat je algoritme daar kan blijven hangen en een vlakke gradiënt kan verwarren met een echt minimum.

In dit artikel laat ik je zien hoe je een zadelpunt wiskundig herkent en waarom het optimalisatie-algoritmen vaak in de war brengt.

Wat is een zadelpunt?

Bij een zadelpunt is de gradiënt nul, net als bij een minimum of een maximum. Maar een zadelpunt is geen van beide.

De functie kromt in sommige richtingen omhoog en in andere omlaag, precies op hetzelfde punt. Ga je langs de ene as, dan neemt de waarde toe, en langs een andere as neemt hij af. Dat is het idee achter de naam: het verwijst naar de vorm van een paardenzadel, dat voor en achter omhoog krult en aan de zijkanten omlaag.

Hier is een eenvoudige tweedimensionale functie die ik gebruik om te laten zien hoe dit eruitziet:

Tweedimensionale functie

Tweedimensionale functie

In de oorsprong, (0, 0), zijn beide partiële afgeleiden nul, dus het is een kritisch punt (ook wel stationair punt). Beweeg langs de x-as en f neemt toe door de term x^2. Beweeg langs de y-as en f neemt af door de term -y^2 .

Als je deze functie in 3D plot, kromt het oppervlak in de ene richting omhoog en in de andere omlaag, waardoor de vorm ontstaat waarnaar een zadelpunt is vernoemd.

3D-oppervlakteplot van f(x, y) = x^2 - y^2

Een contourplot van dezelfde functie vertelt vanuit bovenaf hetzelfde verhaal. De contourlijnen rond de oorsprong lijken op hyperbolen, niet op de gesloten lussen die je rond een minimum of maximum zou zien.

Contourplot van f(x, y) = x^2 - y^2

De exacte definitie verschilt een beetje per vakgebied. In multivariabele calculus is een zadelpunt een kritisch punt dat geen lokaal minimum of maximum is. In optimalisatie en speltheorie kan de term iets anders betekenen, gekoppeld aan minimaxproblemen in plaats van aan kromming. Dat onderscheid behandel ik later in dit artikel.

Zadelpunten vs. minima en maxima

Voor je leert hoe je zadelpunten wiskundig identificeert, helpt het om te zien hoe ze zich verhouden tot de andere twee soorten kritische punten.

Lokaal minimum

Bij een lokaal minimum neemt de functie in elke nabije richting toe. Stel je een kom voor: als je vanaf de bodem een stap in welke richting dan ook zet, ga je omhoog. De functie f(x, y) = x2 + y2 gedraagt zich zo.

Lokaal maximum

Bij een lokaal maximum neemt de functie in elke nabije richting af. Het is het spiegelbeeld van een minimum: een koepel in plaats van een kom. De functie f(x, y) = -x2 - y2 daalt in elke richting als je vanaf de oorsprong weg beweegt.

Zadelpunt

Bij een zadelpunt neemt de functie in sommige richtingen toe en in andere af. Dat maakt f(x, y) = x2 - y2, het voorbeeld uit de vorige sectie, tot een zadelpunt in plaats van een minimum of maximum: het gaat omhoog langs de x-as en omlaag langs de y-as, op hetzelfde punt.

Zo vergelijken de drie naast elkaar:

3D-oppervlakteplots naast elkaar van een lokaal minimum, lokaal maximum en zadelpunt

Hoe vind je een zadelpunt

Een zadelpunt vinden komt neer op differentiëren, zoeken waar de afgeleiden nul zijn, en dan kijken hoe de functie rondom dat punt kromt.

Ik gebruik dezelfde functie als net:

Referentiefunctie

Referentiefunctie

Hier is het proces, stap voor stap.

1. Bereken de eerste partiële afgeleiden

Neem de afgeleide van f naar x, waarbij je y als constant beschouwt, en doe hetzelfde voor y:

De eerste partiële afgeleiden berekenen

De eerste partiële afgeleiden berekenen

2. Stel ze gelijk aan nul

Los het punt op waar beide partiële afgeleiden tegelijk nul zijn:

Afgeleiden gelijk aan nul zetten

Afgeleiden gelijk aan nul zetten

Dat geeft x = 0 en y = 0, dus (0, 0) is een kritisch punt. Eerste afgeleiden vertellen je nog niet welk type.

3. Bereken de tweede afgeleiden

Je hebt er drie nodig: de afgeleide van f_x naar x, de afgeleide van f_y naar y, en de gemengde afgeleide:

Tweede afgeleiden

Tweede afgeleiden

4. Classificeer het kritische punt met kromming 

f_xx = 2 is positief, dus f kromt omhoog langs de x-as. f_yy = -2 is negatief, dus f kromt omlaag langs de y-as. De ene richting kromt omhoog, de andere omlaag, op hetzelfde punt – dat is het zadelpunt.

Dit vierstappenproces werkt voor elke tweemaal differentieerbare functie.

In de volgende twee secties formaliseer ik stap 4 met tools die verder gaan dan twee variabelen: de Hessiaan en de tweede-afgeleidentoets.

Hoe de Hessiaan zadelpunten identificeert

De Hessiaan bundelt alle tweede afgeleiden uit de vorige sectie in één object, en is het hulpmiddel dat vertelt of een kritisch punt een minimum, maximum of zadel is.

Voor een tweedimensionale functie ziet de Hessiaan er zo uit:

Hessiaan voor een tweedimensionale functie

Hessiaan voor een tweedimensionale functie

Elk element beschrijft kromming: f_xx en f_yy beschrijven de kromming langs de x- en y-assen, en f_xy beschrijft hoe die twee richtingen op elkaar inwerken. Als je de tweede afgeleiden uit de vorige sectie invult, ziet de Hessiaan voor onze voorbeeldfunctie er zo uit:

Hessiaan voor de referentiefunctie

Hessiaan voor de referentiefunctie

Een matrix op zichzelf vertelt niet veel. Waar het om gaat, zijn de eigenwaarden – de getallen die beschrijven hoe de functie kromt langs een specifieke set richtingen, de eigenvectoren.

  • Een positieve eigenwaarde betekent dat de functie omhoog kromt langs de richting van zijn eigenvector
  • Een negatieve eigenwaarde betekent dat de functie omlaag kromt langs die richting
  • Een mix van positieve en negatieve eigenwaarden betekent dat de functie in sommige richtingen omhoog kromt en in andere omlaag (een zadelpunt)

Omdat de Hessiaan van ons voorbeeld diagonaal is, staan de eigenwaarden gewoon op de diagonaal: 2 en -2. Hun eigenvectoren wijzen langs de x- en y-as, precies de kromming die je zojuist met de hand vond. f kromt omhoog langs x omdat de eigenwaarde daar positief is, en omlaag langs y omdat de eigenwaarde daar negatief is.

De meeste functies hebben geen diagonale Hessiaan, dus komen de eigenvectoren niet netjes overeen met de x- en y-assen, en moet je ze direct oplossen in plaats van ze uit de matrix af te lezen. Maar één positieve en één negatieve eigenwaarde betekent dat je op een zadelpunt staat.

De tweede-afgeleidentoets voor zadelpunten

Je hoeft niet elke keer eigenwaarden met de hand te berekenen. Voor functies van twee variabelen is er een snelkoppeling – de tweede-afgeleidentoets – gebaseerd op de determinant van de Hessiaan.

Hier is de determinant, met dezelfde tweede afgeleiden als net:

De determinant

De determinant

D is de determinant van de Hessiaan, en het teken ervan – gecombineerd met het teken van f_xx – classificeert het kritische punt:

  • D > 0 en f_xx > 0: Lokaal minimum

  • D > 0 en f_xx < 0: Lokaal maximum

  • D < 0: Zadelpunt

  • D = 0: Niet doorslaggevend

Voor ons voorbeeld gelden f_xx = 2, f_yy = -2 en f_xy = 0:

Tweede-afgeleidentoets voor de referentiefunctie

Tweede-afgeleidentoets voor de referentiefunctie

D is negatief, dus de toets bevestigt dat (0, 0) een zadelpunt is.

Deze toets is de eigenwaardenregel uit de vorige sectie, herschreven in een vorm die je kunt berekenen zonder eigenvectoren op te lossen. D is het product van de twee eigenwaarden, en f_xx + f_yy is hun som. Wanneer D negatief is, moeten de eigenwaarden tegengestelde tekens hebben, en dat is precies wat een zadelpunt is. Wanneer D nul is, is minstens één eigenwaarde nul, dus is de kromming in die richting vlak, en kunnen noch de toets noch de eigenwaarden alleen je vertellen wat daar gebeurt.

Zadelpunten in optimalisatie

Alles tot nu toe ging over het identificeren van een zadelpunt als je de functie al hebt. Maar bij optimalisatie zoek je naar het beste punt zonder vooraf te weten waar het is, en gradiëntgebaseerde methoden gebruiken een gradiënt van nul om te bepalen wanneer te stoppen.

Precies daar zorgen zadelpunten voor problemen.

Een gradiëntgebaseerde optimizer beweegt in de richting die de doelfunctie het snelst verlaagt, en gaat door tot de gradiënt dicht bij nul komt. Maar een bijna-nul gradiënt vertelt het algoritme niet of het een minimum of een zadelpunt heeft gevonden.

Richtingen met positieve kromming duwen de functie omhoog, en het algoritme heeft al geleerd dat stappen daarin de situatie verslechteren. De richtingen met negatieve kromming zijn er nog – dat is de uitweg – maar een algoritme dat alleen de gradiënt vertrouwt, kan die missen, omdat precies op een zadelpunt de gradiënt in die richtingen ook bijna nul is.

Hier vertraagt optimalisatie ook.

De grootte van de gradiënt neemt meestal af naarmate je een stationair punt nadert, dus een algoritme dat zijn stappen schaalt met de gradiëntgrootte zet kleine stapjes in de buurt van een zadel, of het nu in de buurt is van het gezochte minimum of niet.

Een stationair punt vinden is niet hetzelfde als een optimalisatie afronden. Je hebt nog steeds een manier nodig om te zien dat een bijna-nul gradiënt bij een zadelpunt hoort en niet bij een minimum, en een manier om de richting te vinden die de doelstelling blijft verbeteren zodra je dat weet.

Zadelpunten in machine learning

De verliesfunctie van een neuraal netwerk is een functie van elk gewicht en elke bias in het netwerk, soms miljoenen of miljarden dimensies. Dat is heel wat anders dan een tweedimensionaal speelgoedvoorbeeld.

In een analyse van hoogdimensionale niet-convexe optimalisatie stellen Dauphin en collega’s dat naarmate het aantal dimensies toeneemt, kritische punten veel vaker zadelpunten zijn dan lokale minima of maxima. Elke dimensie voegt een richting toe waarin de kromming beide kanten op kan, en één richting met negatieve kromming is genoeg om een kritisch punt tot zadelpunt te maken in plaats van een minimum.

Dat is belangrijk tijdens training, omdat gradiëntafdaling alleen de gradiënt ziet waar het zich op dat moment bevindt.

Dicht bij een zadelpunt wordt die gradiënt in elke richting klein – hetzelfde signaal dat je ziet als je een echt minimum nadert. Training kan vertragen of vastlopen in een gebied dat helemaal niet optimaal is, en uit de verliescurve alleen kun je niet afleiden of je in de buurt van een minimum bent of vastzit op een zadelpunt.

Daarom komen zadelpunten zo vaak ter sprake naast lokale minima wanneer mensen het over het trainen van neurale netwerken hebben. Maar het zijn niet de enige hindernis. Wegvallende gradiënten, slecht geconditioneerde kromming en de schaal van de zoekruimte maken hoogdimensionale optimalisatie allemaal lastig.

Hoe optimalisatie-algoritmen omgaan met zadelpunten

Dit betekent niet dat gradiëntgebaseerde training gedoemd is in de buurt van een zadelpunt. Er zijn verschillende technieken die je helpen erdoorheen te komen, elk vanuit een andere invalshoek.

Stochastische gradiëntafdaling

Stochastische gradiëntafdaling berekent de gradiënt op basis van een willekeurige subset van de trainingsdata in plaats van de hele dataset, en die subset verandert bij elke stap.

De ruis die dit introduceert, betekent dat de geschatte gradiënt zelden exact nul is, zelfs in een gebied waar de echte gradiënt dicht bij nul is. Die ruis kan genoeg zijn om de optimizer van een zadelpunt af te duwen en een richting met negatieve kromming in te sturen, in plaats van precies stil te vallen waar de gradiënt verdwijnt.

Momentum

Momentum houdt een voortschrijdend gemiddelde bij van eerdere gradiënten en gebruikt dat, in plaats van alleen de huidige, om de volgende stap te bepalen.

Rond een zadelpunt is dit belangrijk, omdat de optimizer al in een bepaalde richting aankomt, gedragen door de gradiënten van vóórdat hij daar kwam. Die opgebouwde beweging kan hem door de vlakke regio rond het zadel dragen, in plaats van meteen te vertragen zodra de lokale gradiënt bijna nul wordt.

Tweede-ordemethoden

Tweede-ordemethoden gebruiken krommingsinformatie direct.

Door met de Hessiaan of een benadering ervan te werken, kunnen deze methoden rond een kritisch punt het verschil zien tussen richtingen met positieve en negatieve kromming. Dat onderscheid is precies waar een zadelpunt om draait, dus een tweede-ordemethode kan de dalende richting identificeren en daarin stappen, in plaats van elke bijna-nul gradiënt hetzelfde te behandelen.

Zadelpunten vs. gerelateerde concepten

Een paar termen worden vaak genoeg met zadelpunten verward dat ze het vermelden waard zijn.

Zadelpunt vs. lokaal minimum

Een lokaal minimum kromt in elke richting eromheen omhoog, dus het heeft consequent positieve kromming, rondom. Een zadelpunt kromt alleen in sommige richtingen omhoog en in andere omlaag. Zodra je zelfs maar één richting met negatieve kromming vindt, kijk je niet meer naar een minimum.

Zadelpunt vs. lokaal maximum

Andersom voor een lokaal maximum. De kromming blijft in elke richting negatief. Een zadelpunt voegt minstens één richting met positieve kromming toe naast de negatieve.

Zadelpunt vs. buigpunt

Een buigpunt is een eendimensionaal idee. Het is waar een kromme overgaat van hol naar bol, of andersom, langs één enkele variabele.

Een zadelpunt heeft minstens twee variabelen nodig, omdat het hele concept berust op het vergelijken van kromming in verschillende richtingen op hetzelfde punt. Een functie van één variabele kan een buigpunt hebben, maar geen zadelpunt, omdat er geen tweede richting is om de andere kant op te krommen.

Zadelpunt vs. stationair punt

Elk zadelpunt is een stationair punt, omdat de gradiënt daar nul is. Maar omgekeerd geldt dat niet. Een stationair punt is gewoon elk punt waar de gradiënt nul is – het kan een lokaal minimum, een lokaal maximum of een zadelpunt zijn. Je hebt krommingsinformatie uit de Hessiaan of de tweede-afgeleidentoets nodig om te weten welke je hebt.

Hier is een meer visueel overzicht van hoe ze zich verhouden:

  Krommingspatroon Relatie met zadelpunten
Lokaal minimum Positief in elke richting Nooit een zadelpunt
Lokaal maximum Negatief in elke richting Nooit een zadelpunt
Buigpunt Verandering van concaviteit langs één variabele Een ander concept, heeft slechts één variabele nodig
Stationair punt Gradiënt is nul Een zadelpunt is één soort stationair punt

Zadelpunten vergeleken met andere concepten

Zadelpunten in minimax-optimalisatie

Tot nu toe gebruikten we "zadelpunt" om de kromming van een kritisch punt te beschrijven. Er is een tweede, oudere betekenis uit de speltheorie, die ook in moderne machine learning opduikt.

In minimax-optimalisatie minimaliseert de ene speler een functie terwijl de andere die maximaliseert, en een zadelpunt is het paar waarden waarbij geen van beide spelers zijn uitkomst kan verbeteren door alleen zijn eigen zet te veranderen.

Speltheorie gebruikt dit om evenwichtsstrategieën in competitieve spellen te beschrijven. Adversariële optimalisatie leent dezelfde structuur voor problemen waarin één proces zoekt naar het slechtste geval waar een ander proces zich tegen moet verdedigen.

Generative adversarial networks (GAN’s) zijn het beste machine-learningvoorbeeld. Een generator minimaliseert zijn verlies door overtuigende nepdata te produceren, terwijl een discriminator zijn vermogen maximaliseert om echte van nepdata te onderscheiden. Een GAN trainen betekent zoeken naar een zadelpunt in deze minimax-betekenis, ofwel een balans waarbij generator en discriminator elk hun beste reactie op de ander hebben gevonden.

Dit minimax-zadelpunt is verwant aan het zadelpunt als kritisch punt van eerder in dit artikel, maar de twee zijn niet uitwisselbaar.

De versie met kritische punten beschrijft de kromming op één punt van één functie. De minimax-versie beschrijft een evenwicht tussen twee concurrerende doelstellingen. Ze gebruiken hetzelfde woord omdat beide een mix van "omhoog"- en "omlaag"-gedrag omvatten, maar ze verwarren helpt je niet als je een Hessiaan-toets probeert toe te passen op een tweespeler-game.

Veelgemaakte fouten bij werken met zadelpunten

De meeste verwarring rond zadelpunten komt neer op een paar terugkerende fouten. Dit moet je weten.

Aannemen dat een nulgradiënt een minimum betekent

Een nulgradiënt vertelt alleen dat je een kritisch punt hebt gevonden, niet welk type. Controleer de kromming voordat je aanneemt dat je klaar bent, want een zadelpunt heeft ook een nulgradiënt.

Classificeren met alleen eerste afgeleiden

Eerste afgeleiden vinden kritische punten, maar kunnen ze niet classificeren. Je hebt de tweede afgeleiden nodig, via de Hessiaan of de tweede-afgeleidentoets, om minimum, maximum en zadelpunt van elkaar te onderscheiden.

Verschillende richtingen van kromming negeren

Een functie kan langs de x-as omhoog krommen en toch in zijn geheel een zadelpunt zijn, als een andere richting omlaag kromt. Controleer elke richting, of gebruik de eigenwaarden van de Hessiaan, die ze allemaal tegelijk dekken.

Zadelpunten verwarren met buigpunten

Een buigpunt beschrijft een verandering van kromming in één variabele. Een zadelpunt beschrijft gemengde kromming over meerdere variabelen op hetzelfde punt. Ze zijn verwant in het algemene idee, maar ze gelden niet voor hetzelfde type functie, en de wiskunde erachter is niet uitwisselbaar.

Alle betekenissen van "zadelpunt" gelijkstellen

Het zadelpunt als kritisch punt en het minimax-zadelpunt delen een naam, geen definitie. Voordat je een Hessiaan-toets of eigenwaardenargument toepast, controleer welke betekenis hier speelt – speltheorie en adversariële optimalisatie gebruiken de minimax-versie, en die reduceert niet tot een krommingscheck op één enkele functie.

Conclusie

Een zadelpunt kromt in sommige richtingen omhoog en in andere omlaag, op dezelfde coördinaten – daarom is het noch een minimum noch een maximum, ook al gaat de gradiënt er net zo naar nul als bij beide.

Gradiënten vinden het kritische punt. De eigenwaarden van de Hessiaan, of de tweede-afgeleidentoets, vertellen je welk type je hebt. In hoge dimensies is dat onderscheid erg belangrijk, omdat zadelpunten talrijker zijn dan lokale minima, en trainingsalgoritmen zoals SGD en momentum bestaan deels om er voorbij te komen.

Nog één ding om uit elkaar te houden: het minimax-zadelpunt uit de speltheorie en GAN’s deelt de naam maar niet de wiskunde – zorg dus dat je weet naar welke je verwijst.

Als je het idee achter zadelpunten interessant vindt, is onze Deep Learning Track in Python iets voor jou. Naast de theorie gebruik je PyTorch om neurale netwerken te bouwen voor verschillende soorten problemen.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Senior Data Scientist, gevestigd in Kroatië. Top Tech-schrijver met meer dan 700 gepubliceerde artikelen en meer dan 10 miljoen weergaven. Auteur van het boek Machine Learning Automation with TPOT.

FAQs

Wat is een zadelpunt?

Een zadelpunt is een kritisch punt van een functie waar de gradiënt nul is, maar de functie zich niet in een minimum of maximum bevindt. Het kromt in sommige richtingen omhoog en in andere omlaag, op exact dezelfde coördinaten. De naam komt van de vorm van een paardenzadel, dat voor en achter omhoog en aan de zijkanten omlaag krult.

Hoe verschilt een zadelpunt van een lokaal minimum of maximum?

Een lokaal minimum kromt in elke richting eromheen omhoog, en een lokaal maximum kromt in elke richting omlaag. Een zadelpunt combineert de twee: sommige richtingen krommen omhoog, andere omlaag, op hetzelfde punt. Die gemengde kromming sluit zowel een minimum als een maximum uit.

Waarom zijn zadelpunten belangrijk in optimalisatie en machine learning?

Zadelpunten kunnen optimalisatie-algoritmen vertragen of doen vastlopen, omdat de gradiënt in de buurt ervan bijna nul wordt. In hoogdimensionale problemen, zoals de verliesfuncties waarop neurale netwerken trainen, komen zadelpunten veel vaker voor dan lokale minima. Dat is deels de reden waarom trainingsalgoritmen technieken zoals momentum en stochastische gradiëntafdaling gebruiken in plaats van alleen op de ruwe gradiënt te vertrouwen.

Hoe gebruik je de Hessiaan om een zadelpunt te identificeren?

Bereken de tweede partiële afgeleiden van de functie en zet ze in de Hessiaan. Als de eigenwaarden van de Hessiaan zowel positieve als negatieve waarden bevatten, is het punt een zadelpunt. Je kunt het berekenen van eigenwaarden ook overslaan en de tweede-afgeleidentoets gebruiken, die het teken van de determinant van de Hessiaan controleert.

Is een zadelpunt in optimalisatie hetzelfde als een zadelpunt in speltheorie of GAN’s?

Nee, het zijn verwante ideeën, maar niet hetzelfde. De optimalisatieversie beschrijft de kromming op één kritisch punt van één functie. De versie uit de speltheorie en GAN’s beschrijft een evenwicht tussen twee concurrerende doelstellingen, zoals een generator en een discriminator, waarbij geen van beide partijen kan verbeteren door alleen zijn eigen zet te veranderen.

Onderwerpen
Data Science

Leren met DataCamp

Cursus

Introductie tot optimalisatie in Python

4 uur
5.6K
Leer echte optimalisatieproblemen oplossen met SciPy en PuLP van Python, van de basis tot beperkte en complexe optimalisatie.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken