course
Za każdym razem, gdy firma ustala ceny, żeby znaleźć najlepszą marżę zysku, albo model dostraja wagi, żeby zmniejszyć błąd predykcji, w tle działa to samo zadanie rachunku różniczkowego: znajdź najwyższą lub najniższą wartość funkcji. Właśnie o tym są minima i maksima. Szczyty i doliny, które mówią, gdzie funkcja osiąga wartości ekstremalne.
W tym artykule zaczniemy od wyjaśnienia, czym właściwie są ekstrema, rozróżnimy zachowanie lokalne od globalnego, przejdziemy krok po kroku przez ich wyznaczanie za pomocą pochodnych i pokażemy, dlaczego ma to znaczenie w optymalizacji i data science. Jeśli chcesz przećwiczyć te idee praktycznie, nasz kurs Introduction to Optimization in Python obejmuje stronę obliczeniową.
Czym są minima i maksima?
Minimum to najniższa wartość, jaką przyjmuje funkcja; maksimum to najwyższa. Razem nazywamy je ekstremami (lp. ekstremum). Na wykresie są dokładnie tym, czego się spodziewasz: dnem dolin i wierzchołkami szczytów.
Warto mieć od początku jasność w jednej kwestii: ekstremum to wartość funkcji (współrzędna y), a punkt, w którym występuje, to wartość x. „Maksimum jest przy x = 3” różni się od „wartość maksymalna to f(3) = 10”. To rozróżnienie myli ludzi częściej, niż byś sądził, i pojawia się zarówno w zadaniach egzaminacyjnych, jak i na rozmowach rekrutacyjnych.
Nie każda funkcja ma zarówno minimum, jak i maksimum. Prosta nie ma żadnego. Parabola otwierająca się do góry ma minimum, ale nie ma maksimum. Funkcje określone na przedziałach otwartych mogą zbliżać się do wartości ekstremalnych, nigdy ich nie osiągając. Ekstrema nie są gwarantowane; zależą od kształtu funkcji i dziedziny, na której pracujesz.
Lokalne vs. globalne minima i maksima
Zanim zaczniesz szukać ekstremów, warto doprecyzować rozróżnienie, które przewija się przez cały temat: różnicę między ekstremami o znaczeniu lokalnym a tymi o znaczeniu globalnym. To jedna z najważniejszych w praktyce idei w optymalizacji i jednocześnie miejsce, gdzie ludzie najczęściej się gubią.
Różnica sprowadza się do zakresu. Ekstremum lokalne patrzy na małe otoczenie punktu; ekstremum globalne obejmuje całą dziedzinę.
Minimum i maksimum lokalne
Minimum lokalne to punkt, w którym wartość funkcji jest niższa niż wszystkie wartości w pobliżu. Jesteś na dnie doliny, nawet jeśli gdzieś dalej na wykresie jest głębsza. Maksimum lokalne to szczyt wyższy od najbliższego otoczenia, nawet jeśli dalej istnieje wyższy.
Wyobraź sobie szlak z łagodnymi wzgórzami. Każde wzniesienie to maksimum lokalne, a każde obniżenie między wzgórzami to minimum lokalne. Nie musisz widzieć całego szlaku, by je rozpoznać; porównujesz tylko to, co masz w najbliższym otoczeniu.
Minimum i maksimum globalne
Minimum globalne (zwane też bezwzględnym minimum) to najniższa wartość, jaką funkcja przyjmuje w całej dziedzinie. Maksimum globalne (czyli bezwzględne maksimum) to najwyższa. Ekstremum globalne jest zawsze zarazem ekstremum lokalnym, ale nie odwrotnie.
Na tym samym szlaku maksimum globalne to najwyższy punkt całej trasy, nie tylko najwyższe pobliskie wzgórze. Funkcja może mieć wiele ekstremów lokalnych, ale co najwyżej jedną wartość minimum globalnego i jedną wartość maksimum globalnego (choć te wartości mogą występować w wielu punktach).
To rozróżnienie lokalne–globalne nie jest tylko teoretyczne. Pojawia się bezpośrednio w uczeniu maszynowym, gdzie spadek gradientowy może utknąć w minimach lokalnych podczas szukania minimum globalnego. Więcej o tym później.
Jak znaleźć minima i maksima
Wyznaczanie ekstremów przebiega według stałego schematu. Pytasz w gruncie rzeczy: gdzie funkcja przestaje rosnąć i zaczyna maleć, albo odwrotnie? Pochodne dają precyzyjne narzędzie, by na to odpowiedzieć.
Ogólne podejście wygląda tak:
- Oblicz pierwszą pochodną f'(x).
- Znajdź punkty krytyczne, gdzie f'(x) = 0 lub f'(x) nie istnieje.
- Sklasyfikuj każdy punkt krytyczny jako minimum lokalne, maksimum lokalne lub żadne z nich.
- Jeśli pracujesz na przedziale domkniętym, sprawdź też końce przedziału.
- Porównaj wszystkie wartości kandydujące, aby zidentyfikować ekstrema bezwzględne.
Żeby było konkretnie, użyjemy jednej funkcji w całym tekście: f(x) = 2x³ − 9x² + 12x − 4, określonej na przedziale [0, 4].
Punkty krytyczne a ekstrema
Punkt krytyczny funkcji f(x) to każda wartość x w dziedzinie, dla której f'(x) = 0 lub f'(x) jest nieokreślona. To kandydaci na ekstrema, miejsca, gdzie funkcja może zmienić kierunek.
Dlaczego ekstrema pojawiają się w punktach krytycznych? W gładkim szczycie lub dolinie styczna jest pozioma, więc pochodna równa się zeru. Ale nie każdy punkt krytyczny jest ekstremum, i to ma znaczenie. Klasyczny kontrprzykład to f(x) = x³ w x = 0: pochodna jest równa zero, ale funkcja nie zmienia kierunku. Tylko się na chwilę spłaszcza, po czym dalej rośnie. Uwagę wymagają też punkty, w których pochodna nie istnieje. Ostry narożnik, jak w f(x) = |x| przy x = 0, nie ma pochodnej, a jednak właśnie tam leży minimum.
Dla naszego przykładu f'(x) = 6x² − 18x + 12 = 6(x² − 3x + 2) = 6(x − 1)(x − 2). Zerując to, dostajemy punkty krytyczne x = 1 i x = 2. Teraz musimy sprawdzić, co się w nich dzieje.
Jak używać testu pierwszej pochodnej
Test pierwszej pochodnej klasyfikuje punkty krytyczne poprzez sprawdzenie, czy f'(x) zmienia znak. Jeśli funkcja przechodzi od rośnięcia do maleńcia, jesteś na szczycie. Jeśli od maleńcia do rośnięcia, jesteś w dolinie.
Od dodatniego do ujemnego
Gdy f'(x) zmienia się z dodatniego na ujemny, przechodząc przez punkt krytyczny, ten punkt to maksimum lokalne. Funkcja wspinała się do niego, a potem zaczęła opadać.
Od ujemnego do dodatniego
Gdy f'(x) zmienia się z ujemnego na dodatni, funkcja spadała, a potem zaczęła rosnąć. Taki punkt krytyczny to minimum lokalne.
Brak zmiany znaku
Jeśli f'(x) pozostaje dodatnie po obu stronach (albo pozostaje ujemne), punkt krytyczny jest ani minimum, ani maksimum. Funkcja „zawiesiła się”, ale nie odwróciła kierunku, jak f(x) = x³ przy x = 0.
Dla naszej funkcji przetestujmy przedziały wokół x = 1 i x = 2. Wybierz punkty testowe: 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, oraz f'(3) = 6(2)(1) = 12 > 0. W x = 1 pochodna przechodzi z dodatniej w ujemną: maksimum lokalne. W x = 2 przechodzi z ujemnej w dodatnią: minimum lokalne. Wartości funkcji to f(1) = 1 i f(2) = 0.
Test pierwszej pochodnej zawsze działa, ale wymaga wybierania punktów testowych w każdym przedziale, co szybko staje się uciążliwe. Jest szybsza metoda, gdy spełnione są pewne warunki.
Jak używać testu drugiej pochodnej
Test drugiej pochodnej działa, gdy f''(x) ≠ 0 w punkcie krytycznym. Zamiast sprawdzać zmiany znaku w przedziałach, oceniasz drugą pochodną bezpośrednio w punkcie krytycznym.
Idea łączy się z wklęsłością/wypukłością. Jeśli f''(c) > 0, funkcja jest w c „uśmiechnięta” (wypukła w górę), jak miska, więc punkt krytyczny leży na dnie: minimum lokalne. Jeśli f''(c) < 0, funkcja jest „smutna” (wypukła w dół), jak wzgórze, więc punkt krytyczny jest na wierzchołku: maksimum lokalne. Jeśli f''(c) = 0, test nic nie mówi. Trzeba wrócić do testu pierwszej pochodnej.
Dla naszej funkcji f''(x) = 12x − 18. Dla x = 1: f''(1) = 12 − 18 = −6 < 0, co potwierdza maksimum lokalne. Dla x = 2: f''(2) = 24 − 18 = 6 > 0, co potwierdza minimum lokalne. Te same odpowiedzi co wcześniej, ale szybciej. Test drugiej pochodnej nie zawsze zadziała (zawodzi w punktach przegięcia i niektórych zdegenerowanych punktach krytycznych), ale gdy działa, oszczędza czas.
Jak znaleźć minima i maksima bezwzględne na przedziale
Gdy pracujesz na domkniętym przedziale [a, b] z funkcją ciągłą, twierdzenie o wartości ekstremalnej gwarantuje istnienie zarówno maksimum bezwzględnego, jak i minimum bezwzględnego. Nie szukasz na próżno.
Metoda nazywa się metodą przedziału domkniętego:
- Znajdź wszystkie punkty krytyczne f(x) wewnątrz przedziału (a, b).
- Oblicz f(x) w każdym punkcie krytycznym.
- Oblicz f(x) na obu końcach, a i b.
- Największa wartość to maksimum bezwzględne; najmniejsza to minimum bezwzględne.
Dla f(x) = 2x³ − 9x² + 12x − 4 na [0, 4] wiemy już, że punktami krytycznymi są x = 1 i x = 2. Obliczamy wszędzie tam, gdzie trzeba:
f(0) = -4
f(1) = 2 - 9 + 12 - 4 = 1
f(2) = 16 - 36 + 24 - 4 = 0
f(4) = 128 - 144 + 48 - 4 = 28
Minimum bezwzględne to f(0) = −4, a maksimum bezwzględne to f(4) = 28. Zauważ, że maksimum bezwzględne jest na końcu przedziału, a nie w punkcie krytycznym. Dlatego nie możesz pominąć sprawdzenia końców przedziału, i to także najczęstszy błąd. Wrócimy do tego w sekcji o błędach.
Wszystko do tej pory dotyczy funkcji jednej zmiennej. Większość problemów w świecie rzeczywistym obejmuje wiele zmiennych, więc warto zobaczyć, jak to się rozszerza.
Minima i maksima funkcji wielu zmiennych
Dla funkcji f(x, y) punkty krytyczne znajdujesz, zerując obie pochodne cząstkowe: ∂f/∂x = 0 i ∂f/∂y = 0. Punkt krytyczny to teraz para (x, y), a nie pojedyncza wartość. Klasyfikacja staje się trudniejsza, bo pojawia się nowa możliwość: punkty siodłowe, gdzie funkcja wygina się w górę w jednym kierunku, a w dół w innym. Pomyśl o środku chipsa Pringles.
Do klasyfikacji punktów krytycznych wielu zmiennych używasz macierzy Hessego, kwadratowej macierzy drugich pochodnych cząstkowych. Jej wyznacznik i znaki elementów mówią, czy znajdujesz się w minimum lokalnym, maksimum lokalnym, czy w punkcie siodłowym. Nasz poradnik Hessian Matrix omawia mechanikę głębiej i pokazuje, jak łączy się to z krzywizną w wyższych wymiarach.
Minima i maksima w optymalizacji i uczeniu maszynowym
Jeśli pracowałeś z uczeniem maszynowym, już rozwiązywałeś problemy minimizacji. Trenowanie modelu oznacza minimalizację funkcji straty, a funkcja straty to po prostu kolejna funkcja z minimami i maksimami.
Spadek gradientowy to tutaj koń pociągowy. Oblicza pochodną (lub gradient w wielu wymiarach) funkcji straty w bieżących wartościach parametrów, a następnie wykonuje krok w kierunku zmniejszającym stratę. Schodzisz w dół po powierzchni straty, szukając minimum. Nasz poradnik Gradient Descent in Machine Learning omawia cały algorytm.
Tu rozróżnienie lokalne–globalne staje się realnym problemem inżynieryjnym. Dla niekonweksyjnych funkcji straty (które ma większość sieci neuronowych) spadek gradientowy może utknąć w minimach lokalnych zamiast znaleźć minimum globalne. Techniki takie jak harmonogramy współczynnika uczenia, momentum i stochastyczny spadek gradientowy pomagają algorytmowi wydostać się z płytkich minimów lokalnych, choć zagwarantowanie minimum globalnego w problemach niekonweksyjnych pozostaje otwartym wyzwaniem. Nasz poradnik Cost Functions wyjaśnia, jak buduje się te funkcje celu i dlaczego ich kształt ma znaczenie.
Częste błędy przy wyznaczaniu minimów i maksimów
Zakładanie, że każdy punkt krytyczny jest ekstremum
Nie każdy punkt krytyczny daje minimum lub maksimum. Punkty przegięcia, jak x = 0 w f(x) = x³, mają f'(x) = 0, ale brak zmiany kierunku. Zawsze weryfikuj testem pochodnej.
Mylenie ekstremów lokalnych i globalnych
Minimum lokalne to tylko najniższy punkt w otoczeniu. Minimum globalne może być zupełnie gdzie indziej albo na końcu przedziału. Nie kończ po znalezieniu jednego ekstremum lokalnego.
Pomijanie końców przedziału
Na przedziale domkniętym ekstrema bezwzględne mogą wypaść na brzegach. Maksimum bezwzględne w naszym przykładzie było przy x = 4, a nie w żadnym punkcie krytycznym. Pomijanie końców to jeden z najczęstszych błędów w zadaniach z optymalizacji i, założyłbym, źródło większej liczby utraconych punktów niż jakiekolwiek nieporozumienie koncepcyjne.
Zakładanie, że zerowa druga pochodna oznacza brak ekstremum
Gdy f''(c) = 0, test drugiej pochodnej jest niedecydujący. To nie znaczy, że punkt nie jest ekstremum. Rozważ f(x) = x⁴ przy x = 0: f''(0) = 0, ale x = 0 jest wyraźnie minimum. Użyj testu pierwszej pochodnej, gdy test drugiej zawodzi.
Mylenie punktu ekstremum z jego wartością
Wartość ekstremum to f(c), a nie samo c. „Minimum to x = 2”, gdy masz na myśli „wartość minimalna to f(2) = 0”, miesza wejście z wyjściem. W raportach i odpowiedziach egzaminacyjnych potrzebna jest wartość funkcji, nie tylko lokalizacja.
Wnioski
Istnieje wersja tego tematu, która kończy się na „znajdź, gdzie pochodna równa się zeru”. Wiele kursów wprowadzających dokładnie tak robi i zostawia studentów nieprzygotowanych na to, co w praktyce naprawdę się liczy: rozpoznanie, czy znalazłeś minimum lokalne, czy globalne, i zrozumienie, że to bardzo różne rzeczy w zależności od celu.
Sam rachunek jest zwięzły: punkty krytyczne, testy pochodnych, sprawdzenie końców. Dłużej zajmuje oswojenie się z geometrią, która za tym stoi: dlaczego wklęsłość/wypukłość determinuje kształt minimum, dlaczego końce przedziału mogą „przebić” punkty krytyczne, dlaczego spadek gradientowy w sieci neuronowej autentycznie szuka minimum na powierzchni, która może mieć ich tysiące lokalnie.
Jeśli chodzi o implementację, nasz kurs Introduction to Optimization in Python omawia te problemy obliczeniowo z użyciem SciPy i SymPy. Tam połączenie rachunku i kodu staje się namacalne.
Vinod Chugani rozpoczął karierę w Tokio jako najmłodszy w JPMorgan szef działu sprzedaży funduszy hedgingowych, a następnie ustanowił indywidualny rekord sprzedaży w Lehman Brothers, po czym zbudował działającą w 30 krajach firmę dystrybucji elektroniki z przychodami przekraczającymi 100 mln SGD, zanim przeszedł do pracy z danymi. Absolwent ekonomii na Duke i alumn NYC Data Science Academy, był jednym z trzech stypendystów wybranych spośród ponad 100 kandydatów do kursu Hugo Bowne-Andersona Building AI Applications na platformie Maven. Dziś pisze dla DataCamp, KDnuggets, Machine Learning Mastery i Statology na tematy od statystyki po agentową AI oraz mentoruje specjalistów danych w NYC Data Science Academy, mając na koncie ponad 1000 indywidualnych sesji.
FAQs
Jaka jest różnica między minimami a maksimami?
Minimum to najniższa wartość, jaką funkcja osiąga w danym punkcie, a maksimum to najwyższa. Razem nazywają się ekstremami. Funkcja może mieć wiele minimów i maksimów lokalnych, ale minimum globalne (bezwzględne) to pojedyncza najniższa wartość w całej dziedzinie, a maksimum globalne to pojedyncza najwyższa.
Jak znaleźć minima i maksima funkcji?
Weź pierwszą pochodną, przyrównaj ją do zera i rozwiąż względem x, aby znaleźć punkty krytyczne. Następnie użyj testu pierwszej pochodnej (sprawdź zmiany znaku) lub testu drugiej pochodnej (oceń f''(x) w każdym punkcie krytycznym), aby zaklasyfikować każdy z nich jako minimum, maksimum lub żadne z nich. Na przedziale domkniętym oceń też funkcję na końcach przedziału.
Jaka jest różnica między ekstremami lokalnymi a globalnymi?
Ekstremum lokalne to najwyższa lub najniższa wartość w małym otoczeniu punktu. Ekstremum globalne (bezwzględne) to najwyższa lub najniższa wartość w całej dziedzinie funkcji. Każde ekstremum globalne jest też lokalne, ale większość ekstremów lokalnych nie jest globalna.
Czy funkcja może mieć więcej niż jedno minimum globalne?
Funkcja może mieć tylko jedną wartość minimum globalnego, ale ta wartość może występować w wielu punktach. Na przykład f(x) = cos(x) ma wartość minimum globalnego równą −1, która występuje dla x = π, x = 3π, x = −π itd. Wartość minimalna jest unikalna; miejsca jej występowania nie muszą być.
Czym jest punkt krytyczny i czy zawsze jest ekstremum?
Punkt krytyczny to miejsce, gdzie f'(x) = 0 lub f'(x) nie istnieje. To kandydat na ekstremum, ale nie gwarancja. Na przykład f(x) = x³ ma punkt krytyczny w x = 0 (bo f'(0) = 0), ale to punkt przegięcia, a nie ekstremum — funkcja nie zmienia tam kierunku.
Kiedy test drugiej pochodnej zawodzi?
Test drugiej pochodnej jest niedecydujący, gdy f''(c) = 0 w punkcie krytycznym c. W takim przypadku musisz użyć testu pierwszej pochodnej lub przeanalizować pochodne wyższych rzędów. Klasyczny przykład to f(x) = x⁴, gdzie zarówno f'(0) = 0, jak i f''(0) = 0, a jednak x = 0 jest minimum.
Dlaczego końce przedziału mają znaczenie przy szukaniu ekstremów bezwzględnych?
Na przedziale domkniętym [a, b] twierdzenie o wartości ekstremalnej gwarantuje, że funkcja ciągła ma zarówno maksimum, jak i minimum bezwzględne. Mogą one wystąpić w punktach krytycznych albo na końcach przedziału. Ignorowanie końców może sprawić, że przegapisz właściwe ekstremum bezwzględne, co jest jednym z najczęstszych błędów w takich zadaniach.
Jak minima i maksima wykorzystuje się w uczeniu maszynowym?
Trenowanie modelu uczenia maszynowego to problem optymalizacyjny: minimalizujesz funkcję straty (lub równoważnie, maksymalizujesz miarę jakości). Spadek gradientowy i jego warianty znajdują minima funkcji straty, iteracyjnie podążając za ujemnym gradientem. Wyzwanie różnicy między minimami lokalnymi a globalnymi jest bezpośrednio istotne — niekonweksyjne funkcje straty mogą uwięzić algorytmy optymalizacyjne w suboptymalnych minimach lokalnych.
