course
Varje gång ett företag sätter priser för att hitta bästa vinstmarginal, eller en modell justerar sina vikter för att minska prediktionsfelet, pågår samma analysproblem i bakgrunden: hitta funktionens högsta eller lägsta värde. Det är vad minima och maxima handlar om. Topp- och dalpunkterna som visar var en funktion når sina extremvärden.
I den här artikeln börjar vi med vad extremvärden faktiskt betyder, skiljer lokalt från globalt beteende, går igenom hur man hittar dem med derivator och kopplar tillbaka till varför det här spelar roll i optimering och data science. Vill du bygga vidare på idéerna med praktiska övningar täcker vår kurs Introduction to Optimization in Python den beräkningsmässiga sidan.
Vad är minima och maxima?
Ett minimum är det lägsta värde en funktion antar; ett maximum är det högsta. Tillsammans kallas de för extremvärden (singular: extremum). I en graf är de precis vad du förväntar dig: dalbottnar och bergstoppar.
En sak som är värd att hålla isär från början: extremumet är funktionsvärdet (y-koordinaten), medan punkten där det inträffar är x-värdet. ”Maximum är vid x = 3” är något annat än ”maximivärdet är f(3) = 10.” Den här distinktionen snubblar fler över än du tror, och den dyker upp både i tentauppgifter och intervjufrågor.
Alla funktioner har inte både ett minimum och ett maximum. En linje har ingetdera. En uppåtöppnad parabel har ett minimum men inget maximum. Funktioner definierade på öppna intervall kan närma sig extremvärden utan att nå dem. Extremvärden är inte garanterade; de beror på funktionens form och på den definitionsmängd du arbetar med.
Lokala vs. globala minima och maxima
Innan du hittar extremvärden är det värt att klargöra en skillnad som genomsyrar allt som följer: skillnaden mellan extremvärden som är lokalt betydelsefulla och sådana som är globalt betydelsefulla. Det här är en av de mest praktiskt viktiga idéerna i optimering, och också där folk oftast blir förvirrade.
Skillnaden handlar om räckvidd. Ett lokalt extremum ser på ett litet närområde kring en punkt; ett globalt extremum betraktar hela definitionsmängden.
Lokalt minimum och maximum
Ett lokalt minimum är en punkt där funktionsvärdet är lägre än alla närliggande värden. Du är i botten av en dal, även om en djupare dal finns någon annanstans i grafen. Ett lokalt maximum är en topp som är högre än sin omedelbara omgivning, även om en högre topp finns längre bort.
Föreställ dig en vandringsled med mjuka kullar. Varje kulle är ett lokalt maximum, och varje sänka mellan kullarna är ett lokalt minimum. Du behöver inte se hela leden för att identifiera dem; du jämför bara med det som är precis runt dig.
Globalt minimum och maximum
Ett globalt minimum (kallas även absolut minimum) är det enskilt lägsta värde funktionen antar över hela sin definitionsmängd. Globalt maximum (eller absolut maximum) är det enskilt högsta. Ett globalt extremum är alltid också ett lokalt extremum, men inte tvärtom.
På samma vandringsled är det globala maximum den högsta punkten på hela sträckan, inte bara den högsta kullen i närheten. En funktion kan ha många lokala extremvärden men högst ett globalt minimivärde och ett globalt maximivärde (även om dessa värden kan uppträda på flera punkter).
Den här skillnaden mellan lokalt och globalt är inte bara teoretisk. Den syns direkt i maskininlärning, där gradientnedstigning kan fastna i lokala minima när den söker ett globalt. Mer om det senare.
Hur man hittar minima och maxima
Att hitta extremvärden följer en konsekvent process. Du frågar i princip: var slutar funktionen öka och börjar minska, eller tvärtom? Derivator ger dig verktyget för att svara exakt.
Här är det generella tillvägagångssättet:
- Beräkna första derivatan f'(x).
- Hitta de kritiska punkterna, där f'(x) = 0 eller där f'(x) inte existerar.
- Klassificera varje kritisk punkt som lokalt minimum, lokalt maximum eller ingetdera.
- Om du arbetar på ett slutet intervall, kontrollera även ändpunkterna.
- Jämför alla kandidater för att identifiera de absoluta extremvärdena.
Vi använder en funktion genomgående för att hålla det konkret: f(x) = 2x³ − 9x² + 12x − 4, definierad på intervallet [0, 4].
Kritiska punkter och extremvärden
En kritisk punkt för f(x) är varje x-värde i definitionsmängden där f'(x) = 0 eller där f'(x) är odefinierad. Dessa är kandidater för extremvärden, platser där funktionen kan byta riktning.
Varför uppstår extremvärden vid kritiska punkter? Vid en jämn topp eller dal är tangenten horisontell, så derivatan är noll. Men varje kritisk punkt är inte ett extremum, och det spelar roll. Det klassiska motexemplet är f(x) = x³ vid x = 0: derivatan är noll, men funktionen byter inte riktning. Den plattar bara till kort innan den fortsätter uppåt. Punkter där derivatan inte existerar behöver också uppmärksammas. En skarp hörna som i f(x) = |x| vid x = 0 har ingen derivata, men just där ligger minimum.
För vårt exempel är f'(x) = 6x² − 18x + 12 = 6(x² − 3x + 2) = 6(x − 1)(x − 2). Sätter vi detta till noll får vi kritiska punkter vid x = 1 och x = 2. Nu behöver vi ta reda på vad som händer vid var och en.
Hur man använder första derivatans test
Första derivatans test klassificerar kritiska punkter genom att kontrollera om f'(x) byter tecken. Om funktionen går från att öka till att minska är du på en topp. Om den går från att minska till att öka är du i en dal.
Positiv till negativ
När f'(x) byter från positiv till negativ när du passerar en kritisk punkt, är den punkten ett lokalt maximum. Funktionen steg upp till den och gick sedan ner igen.
Negativ till positiv
När f'(x) byter från negativ till positiv föll funktionen och började sedan stiga. Den kritiska punkten är ett lokalt minimum.
Inget teckenbyte
Om f'(x) förblir positiv på båda sidor (eller förblir negativ på båda sidor), är den kritiska punkten varken ett minimum eller ett maximum. Funktionen gjorde en paus men bytte inte riktning, som f(x) = x³ vid x = 0.
För vår funktion testar vi intervallen kring x = 1 och x = 2. Välj testpunkter: f'(0.5) = 6(0.5 − 1)(0.5 − 2) = 6(−0.5)(−1.5) = 4.5 > 0, f'(1.5) = 6(0.5)(−0.5) = −1.5 < 0, och f'(3) = 6(2)(1) = 12 > 0. Vid x = 1 går derivatan från positiv till negativ: lokalt maximum. Vid x = 2 går den från negativ till positiv: lokalt minimum. Funktionsvärdena är f(1) = 1 och f(2) = 0.
Första derivatans test fungerar alltid, men det kräver att du väljer testpunkter i varje intervall, vilket snabbt blir långtråkigt. Det finns en snabbare metod när vissa villkor är uppfyllda.
Hur man använder andra derivatans test
Andra derivatans test fungerar när f''(x) ≠ 0 vid den kritiska punkten. Istället för att kontrollera teckenbyten över intervall utvärderar du andra derivatan direkt vid den kritiska punkten.
Idén hänger ihop med konkavitet. Om f''(c) > 0 är funktionen konkav uppåt vid c, böjd som en skål, så den kritiska punkten ligger i botten: lokalt minimum. Om f''(c) < 0 är funktionen konkav nedåt, böjd som en kulle, så den kritiska punkten ligger på toppen: lokalt maximum. Om f''(c) = 0 säger testet ingenting. Då får du falla tillbaka på första derivatans test.
För vår funktion är f''(x) = 12x − 18. Vid x = 1: f''(1) = 12 − 18 = −6 < 0, vilket bekräftar ett lokalt maximum. Vid x = 2: f''(2) = 24 − 18 = 6 > 0, vilket bekräftar ett lokalt minimum. Samma svar som tidigare, men snabbare. Andra derivatans test fungerar inte alltid (det fallerar vid inflexionspunkter och vissa degenererade kritiska punkter), men när det gör det sparar det tid.
Hur man hittar absoluta minima och maxima på ett intervall
När du arbetar på ett slutet intervall [a, b] med en kontinuerlig funktion garanterar satsen om maximivärden att både ett absolut maximum och ett absolut minimum existerar. Du söker inte förgäves.
Metoden kallas slutna-intervallmetoden:
- Hitta alla kritiska punkter för f(x) inne i intervallet (a, b).
- Utvärdera f(x) vid varje kritisk punkt.
- Utvärdera f(x) vid båda ändpunkterna, a och b.
- Det största värdet är det absoluta maximumet; det minsta är det absoluta minimumet.
För f(x) = 2x³ − 9x² + 12x − 4 på [0, 4] vet vi redan att de kritiska punkterna är x = 1 och x = 2. Utvärdering där det är relevant:
f(0) = -4
f(1) = 2 - 9 + 12 - 4 = 1
f(2) = 16 - 36 + 24 - 4 = 0
f(4) = 128 - 144 + 48 - 4 = 28
Det absoluta minimumet är f(0) = −4, och det absoluta maximumet är f(4) = 28. Notera att det absoluta maximumet ligger vid en ändpunkt, inte vid en kritisk punkt. Därför kan du inte hoppa över kontrollen av ändpunkter, och det är också det vanligaste misstaget folk gör. Vi återkommer till det i avsnittet om fel.
Allt hittills gäller funktioner av en variabel. De flesta verkliga problem involverar flera variabler, så det är värt att se hur detta utvidgas.
Minima och maxima för flervariabelfunktioner
För en funktion f(x, y) hittar du kritiska punkter genom att sätta båda partiella derivatorna till noll: ∂f/∂x = 0 och ∂f/∂y = 0. En kritisk punkt är nu ett par (x, y) i stället för ett enskilt värde. Klassificeringen blir klurigare eftersom det finns en ny möjlighet: sadelpunkter, där funktionen böjer uppåt i en riktning och nedåt i en annan. Tänk på mitten av en Pringles-chip.
För att klassificera flervariabla kritiska punkter använder du Hessianska matrisen, en kvadratisk matris av andraderivator. Determinanten och tecknen på dess element talar om ifall du befinner dig vid ett lokalt minimum, lokalt maximum eller en sadelpunkt. Vår handledning Hessian Matrix går djupare in på mekaniken och visar hur detta kopplar till krökning i högre dimensioner.
Minima och maxima i optimering och maskininlärning
Om du har arbetat med maskininlärning har du redan löst minimiproblem. Att träna en modell innebär att minimera en förlustfunktion, och en förlustfunktion är bara en annan funktion med minima och maxima.
Gradientnedstigning är arbetshästen här. Den beräknar derivatan (eller gradienten i flera dimensioner) av förlustfunktionen vid de aktuella parametervärdena och tar sedan ett steg i riktningen som minskar förlusten. Du går nedför förlustytan och letar efter ett minimum. Vår handledning Gradient Descent in Machine Learning täcker hela algoritmen.
Här blir skillnaden mellan lokalt och globalt ett reellt ingenjörsproblem. För icke-konvexa förlustfunktioner (som de flesta neurala nätverk har) kan gradientnedstigning fastna i lokala minima i stället för att hitta det globala minimumet. Tekniker som inlärningshastighetsscheman, momentum och stokastisk gradientnedstigning hjälper algoritmen att ta sig ur grunda lokala minima, även om det fortfarande är en öppen utmaning att garantera ett globalt minimum i icke-konvexa problem. Vår handledning Cost Functions förklarar hur dessa objektivfunktioner byggs och varför deras form spelar roll.
Vanliga misstag när man hittar minima och maxima
Att anta att varje kritisk punkt är ett extremum
Inte varje kritisk punkt ger ett minimum eller maximum. Inflexionspunkter som x = 0 i f(x) = x³ har f'(x) = 0 men ingen riktningsändring. Verifiera alltid med ett derivattest.
Att förväxla lokala och globala extremvärden
Ett lokalt minimum är bara den lägsta punkten i ett närområde. Det globala minimumet kan finnas någon helt annanstans, eller vid en ändpunkt. Sluta inte efter att du hittat ett lokalt extremum.
Att glömma ändpunkter
På ett slutet intervall kan de absoluta extremvärdena inträffa vid gränserna. Det absoluta maximumet i vårt exempel var vid x = 4, inte vid någon av de kritiska punkterna. Att hoppa över ändpunkterna är ett av de vanligaste felen i optimeringsproblem, och jag vågar påstå att det kostar fler tentapoäng än någon begreppsmässig missuppfattning.
Att anta att noll i andra derivatan betyder inget extremum
När f''(c) = 0 är andra derivatans test inkonklusivt. Det betyder inte att punkten inte är ett extremum. Betrakta f(x) = x⁴ vid x = 0: f''(0) = 0, men x = 0 är uppenbart ett minimum. Använd första derivatans test när andra derivatans test fallerar.
Att förväxla extremumpunkten med dess värde
Extremumets värde är f(c), inte c i sig. ”Minimum är x = 2” när du menar ”minimivärdet är f(2) = 0” blandar ihop indata med utdata. Rapporter och tentasvar behöver funktionsvärdet, inte bara platsen.
Slutsats
Det finns en version av detta ämne som stannar vid ”hitta där derivatan är lika med noll.” Många introduktionskurser gör precis så, och det lämnar studenter oförberedda för den del som faktiskt spelar roll i praktiken: att veta om du har hittat ett lokalt minimum eller ett globalt, och att förstå att de är mycket olika saker beroende på vad du försöker göra.
Kalkylen här är kompakt. Kritiska punkter, derivattester, kontroll av ändpunkter. Det som tar längre tid att internalisera är geometrin under ytan: varför konkavitet avgör formen på ett minimum, varför ändpunkter kan gå före kritiska punkter, varför gradientnedstigning i ett neuralt nätverk verkligen söker ett minimum på en yta som kan ha tusentals lokala sådana.
För implementation täcker vår kurs Introduction to Optimization in Python dessa problem beräkningsmässigt med SciPy och SymPy. Det är där kopplingen mellan analysen och koden blir konkret.
Vinod Chugani inledde sin karriär i Tokyo som JPMorgans yngsta chef för Hedge Fund Sales Desk och satte senare ett individuellt försäljningsrekord på Lehman Brothers, för att därefter bygga upp en elektronikdistributionsverksamhet i 30 länder som passerade 100 miljoner SG$ i intäkter innan han svängde om till data. Med en examen i ekonomi från Duke och som alumn från NYC Data Science Academy var han en av tre stipendiemottagare av över 100 sökande till Hugo Bowne-Andersons kurs Building AI Applications på Maven. Idag skriver han för DataCamp, KDnuggets, Machine Learning Mastery och Statology om ämnen från statistik till agentisk AI, och handleder dataexperter på NYC Data Science Academy med över 1 000 enskilda mentorsessioner bakom sig.
FAQs
Vad är skillnaden mellan minima och maxima?
Ett minimum är det lägsta värde en funktion når vid en given punkt, medan ett maximum är det högsta. Tillsammans kallas de extremvärden. En funktion kan ha flera lokala minima och maxima, men det globala (absoluta) minimumet är det enskilt lägsta värdet över hela definitionsmängden, och det globala maximumet är det enskilt högsta.
Hur hittar man en funktions minima och maxima?
Ta första derivatan, sätt den lika med noll och lös ut x för att hitta kritiska punkter. Använd sedan första derivatans test (kontrollera teckenbyten) eller andra derivatans test (utvärdera f''(x) vid varje kritisk punkt) för att klassificera varje som minimum, maximum eller ingetdera. På ett slutet intervall ska du även utvärdera funktionen vid ändpunkterna.
Vad är skillnaden mellan lokala och globala extremvärden?
Ett lokalt extremum är det högsta eller lägsta värdet i ett litet närområde kring en punkt. Ett globalt (absolut) extremum är det högsta eller lägsta värdet över hela funktionens definitionsmängd. Varje globalt extremum är också ett lokalt extremum, men de flesta lokala är inte globala.
Kan en funktion ha mer än ett globalt minimum?
En funktion kan bara ha ett globalt minimivärde värde, men det värdet kan inträffa vid flera punkter. Till exempel har f(x) = cos(x) ett globalt minimivärde på −1, vilket inträffar vid x = π, x = 3π, x = −π och så vidare. Minimivärdet är unikt; platserna där det inträffar behöver inte vara det.
Vad är en kritisk punkt, och är den alltid ett extremum?
En kritisk punkt är där f'(x) = 0 eller där f'(x) är odefinierad. Det är en kandidat för ett extremum, men inte garanterat ett. Till exempel har f(x) = x³ en kritisk punkt vid x = 0 (eftersom f'(0) = 0), men det är en inflexionspunkt, inte ett extremum — funktionen byter inte riktning där.
När misslyckas andra derivatans test?
Andra derivatans test är inkonklusivt när f''(c) = 0 vid en kritisk punkt c. I så fall behöver du använda första derivatans test eller analysera högre ordningens derivator. Ett klassiskt exempel är f(x) = x⁴, där både f'(0) = 0 och f''(0) = 0, men x = 0 ändå är ett minimum.
Varför spelar ändpunkter roll när man hittar absoluta extremvärden?
På ett slutet intervall [a, b] garanterar satsen om maximivärden att en kontinuerlig funktion har både ett absolut maximum och minimum. Dessa kan inträffa vid kritiska punkter eller vid ändpunkterna. Om du ignorerar ändpunkterna kan du missa det verkliga absoluta extremumet, vilket är ett av de vanligaste misstagen i dessa problem.
Hur används minima och maxima i maskininlärning?
Att träna en maskininlärningsmodell är ett optimeringsproblem: du minimerar en förlustfunktion (eller motsvarande, maximerar en prestandamätare). Gradientnedstigning och dess varianter hittar minima för förlustfunktionen genom att iterativt följa den negativa gradienten. Utmaningen med lokala kontra globala minima är direkt relevant — icke-konvexa förlustfunktioner kan få optimeringsalgoritmer att fastna i suboptimala lokala minima.
