Course
Каждый раз, когда компания устанавливает цены, чтобы найти наилучшую маржу прибыли, или модель подбирает веса, чтобы уменьшить ошибку предсказания, под капотом решается одна и та же задача математического анализа: найти наибольшее или наименьшее значение функции. Именно об этом говорят минимумы и максимумы — о вершинах и впадинах, которые показывают, где функция достигает своих экстремальных значений.
В этой статье мы начнём с того, что на самом деле означают экстремумы, разделим локальное и глобальное поведение, пройдёмся по методам их нахождения с помощью производных и вернёмся к тому, почему всё это важно в оптимизации и дата-сайенсе. Если хотите закрепить идеи на практике, наш курс Introduction to Optimization in Python охватывает вычислительную сторону вопроса.
Что такое минимумы и максимумы?
Минимум — это наименьшее значение, которого достигает функция; максимум — наибольшее. Вместе они называются экстремумами (ед. ч.: экстремум). На графике это ровно то, что вы ожидаете: «днища» впадин и «вершины» пиков.
Важно сразу не путать две вещи: экстремум — это значение функции (координата y), а точка, где оно достигается, — это значение x. «Максимум при x = 3» — это не то же самое, что «максимальное значение равно f(3) = 10». Это различие сбивает с толку чаще, чем можно подумать, и встречается и в экзаменах, и на собеседованиях.
Не у каждой функции есть и минимум, и максимум. У прямой — ни того, ни другого. У параболы, ветви которой направлены вверх, есть минимум, но нет максимума. Функции, заданные на открытых интервалах, могут приближаться к экстремальным значениям, так и не достигая их. Экстремумы не гарантированы; всё зависит от формы функции и рассматриваемой области определения.
Локальные и глобальные минимумы и максимумы
Прежде чем искать экстремумы, важно прояснить одно различие, которое проходит через весь материал далее: разницу между экстремумами, значимыми локально, и экстремумами, значимыми глобально. Это одна из самых практических идей в оптимизации и одновременно источник частых недоразумений.
Разница — в области рассмотрения. Локальный экстремум смотрит на небольшое окрестность точки; глобальный — на всю область определения.
Локальный минимум и максимум
Локальный минимум — это точка, где значение функции меньше всех соседних значений. Вы находитесь на дне впадины, даже если где-то на графике есть впадина глубже. Локальный максимум — это вершина, которая выше своего ближайшего окружения, даже если дальше есть вершина выше.
Представьте пеший маршрут с чередой холмов. Каждая вершина холма — локальный максимум, а каждое понижение между ними — локальный минимум. Видеть весь маршрут не нужно; достаточно сравнить с тем, что непосредственно вокруг.
Глобальный минимум и максимум
Глобальный минимум (также называется абсолютным минимумом) — это единственно наименьшее значение функции на всей области определения. Глобальный максимум (или абсолютный максимум) — единственно наибольшее. Глобальный экстремум всегда является и локальным экстремумом, но не наоборот.
На том же маршруте глобальный максимум — это самая высокая точка всего пути, а не просто ближайший высокий холм. У функции может быть множество локальных экстремумов, но не более одного значения глобального минимума и одного — глобального максимума (хотя эти значения могут достигаться в нескольких точках).
Различие между локальным и глобальным — не просто теория. Оно напрямую проявляется в машинном обучении, где градиентный спуск может «застрять» в локальных минимумах при поиске глобального. Об этом позже.
Как находить минимумы и максимумы
Нахождение экстремумов подчиняется общей схеме. По сути вы спрашиваете: где функция перестаёт возрастать и начинает убывать — или наоборот? Производные дают точный инструмент для ответа.
Общий подход таков:
- Вычислите первую производную f'(x).
- Найдите критические точки, где f'(x) = 0 или f'(x) не существует.
- Классифицируйте каждую критическую точку как локальный минимум, локальный максимум или ни то ни другое.
- Если работаете на замкнутом интервале, проверьте также концы интервала.
- Сравните все кандидатные значения, чтобы определить абсолютные экстремумы.
Мы будем использовать одну функцию на протяжении всего разбора для наглядности: f(x) = 2x³ − 9x² + 12x − 4, заданную на интервале [0, 4].
Критические точки и экстремумы
Критическая точка функции f(x) — это любое значение x из области определения, где f'(x) = 0 или f'(x) не определена. Это кандидаты на экстремумы — места, где функция может менять направление.
Почему экстремумы появляются в критических точках? В гладкой вершине или впадине касательная горизонтальна, значит производная равна нулю. Но не каждая критическая точка — это экстремум, и это важно. Классический контрпример: f(x) = x³ при x = 0 — производная равна нулю, но функция не меняет направление: лишь слегка выравнивается и продолжает расти. Точки, где производной не существует, тоже требуют внимания. Острая вершина, как у f(x) = |x| при x = 0, не имеет производной, и именно там находится минимум.
Для нашего примера f'(x) = 6x² − 18x + 12 = 6(x² − 3x + 2) = 6(x − 1)(x − 2). Приравнивая к нулю, получаем критические точки x = 1 и x = 2. Теперь нужно понять, что происходит в каждой из них.
Как использовать проверку по первой производной
Тест по первой производной классифицирует критические точки, проверяя, меняет ли f'(x) знак. Если функция переходит от возрастания к убыванию — вы на вершине. Если от убывания к возрастанию — вы в впадине.
Положительный к отрицательному
Когда f'(x) меняется с положительного на отрицательный при прохождении через критическую точку, это локальный максимум. Функция поднялась к нему и затем опустилась.
Отрицательный к положительному
Когда f'(x) меняется с отрицательного на положительный, функция падала, а затем начала расти. Такая критическая точка — это локальный минимум.
Без смены знака
Если f'(x) остаётся положительной по обе стороны (или отрицательной по обе стороны), критическая точка — это не ни минимум, ни максимум. Функция сделала паузу, но не развернулась, как у f(x) = x³ при x = 0.
Для нашей функции проверим интервалы вокруг x = 1 и x = 2. Возьмём тестовые точки: 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 и f'(3) = 6(2)(1) = 12 > 0. При x = 1 производная меняется с положительной на отрицательную: локальный максимум. При x = 2 — с отрицательной на положительную: локальный минимум. Значения функции: f(1) = 1 и f(2) = 0.
Тест по первой производной всегда работает, но требует выбирать точки в каждом интервале, что быстро становится утомительным. Есть более быстрый метод при выполнении определённых условий.
Как использовать проверку по второй производной
Тест по второй производной работает, если f''(x) ≠ 0 в критической точке. Вместо проверки смены знака на интервалах вы просто вычисляете вторую производную в самой критической точке.
Идея связана с выпуклостью/вогнутостью графика. Если f''(c) > 0, функция в точке c вогнута вверх, как чаша, значит критическая точка — внизу: это локальный минимум. Если f''(c) < 0, функция вогнута вниз, как холм, и критическая точка — наверху: локальный максимум. Если f''(c) = 0, тест ничего не говорит — нужно вернуться к проверке по первой производной.
Для нашей функции f''(x) = 12x − 18. При x = 1: f''(1) = 12 − 18 = −6 < 0 — подтверждается локальный максимум. При x = 2: f''(2) = 24 − 18 = 6 > 0 — подтверждается локальный минимум. Ответы те же, но быстрее. Тест по второй производной срабатывает не всегда (он «проваливается» в точках перегиба и некоторых вырожденных критических точках), но когда срабатывает — экономит время.
Как найти абсолютные минимумы и максимумы на интервале
Если вы работаете с непрерывной функцией на замкнутом интервале [a, b], теорема о предельных значениях гарантирует существование и абсолютного максимума, и абсолютного минимума. Вы не ищете впустую.
Метод называется методом замкнутого интервала:
- Найдите все критические точки f(x) внутри интервала (a, b).
- Вычислите f(x) в каждой критической точке.
- Вычислите f(x) в концах интервала, a и b.
- Наибольшее значение — абсолютный максимум; наименьшее — абсолютный минимум.
Для f(x) = 2x³ − 9x² + 12x − 4 на [0, 4] мы уже знаем критические точки x = 1 и x = 2. Посчитаем везде, где важно:
f(0) = -4
f(1) = 2 - 9 + 12 - 4 = 1
f(2) = 16 - 36 + 24 - 4 = 0
f(4) = 128 - 144 + 48 - 4 = 28
Абсолютный минимум — f(0) = −4, а абсолютный максимум — f(4) = 28. Обратите внимание: абсолютный максимум находится на конце интервала, а не в критической точке. Поэтому нельзя пропускать проверку концов — это и самая частая ошибка. Дойдём до неё в разделе про ошибки.
Пока всё относилось к функциям одной переменной. Большинство задач из реальной жизни многомерны, поэтому стоит увидеть, как всё это обобщается.
Минимумы и максимумы многомерных функций
Для функции f(x, y) критические точки находят, приравнивая нулю обе частные производные: ∂f/∂x = 0 и ∂f/∂y = 0. Критическая точка теперь — это пара (x, y), а не одно значение. Классификация усложняется, потому что появляется новый тип точек — седловые точки, где функция выгнута вверх в одном направлении и вниз — в другом. Вспомните центр чипса Pringles.
Чтобы классифицировать многомерные критические точки, используют матрицу Гессе — квадратную матрицу вторых частных производных. Её определитель и знаки элементов подсказывают, имеем ли мы локальный минимум, локальный максимум или седловую точку. В нашем учебнике Hessian Matrix эта механика разобрана глубже и показано, как она связана с кривизной в высших измерениях.
Минимумы и максимумы в оптимизации и машинном обучении
Если вы хоть немного занимались машинным обучением, вы уже решали задачи на минимум. Обучение модели — это минимизация функции потерь, а функция потерь — это просто ещё одна функция с минимумами и максимумами.
Градиентный спуск — рабочая лошадка здесь. Он вычисляет производную (или градиент в многомерном случае) функции потерь в текущих параметрах и делает шаг в направлении уменьшения потерь. Идём вниз по поверхности потерь в поисках минимума. Наш учебник Gradient Descent in Machine Learning подробно описывает алгоритм.
Здесь различие локального и глобального превращается в настоящую инженерную проблему. Для невыпуклых функций потерь (которыми обладают большинство нейросетей) градиентный спуск может застрять в локальных минимумах вместо того, чтобы найти глобальный. Приёмы вроде расписаний скорости обучения, импульса (momentum) и стохастического градиентного спуска помогают алгоритму выбраться из неглубоких локальных минимумов, хотя гарантия достижения глобального минимума в невыпуклых задачах остаётся открытым вызовом. Наш учебник Cost Functions объясняет, как устроены эти целевые функции и почему их форма так важна.
Распространённые ошибки при поиске минимумов и максимумов
Предположение, что каждая критическая точка — это экстремум
Не каждая критическая точка даёт минимум или максимум. В точке перегиба, как x = 0 у f(x) = x³, f'(x) = 0, но направления не меняются. Всегда проверяйте тестом по производным.
Путаница между локальными и глобальными экстремумами
Локальный минимум — это лишь самая низкая точка в некоторой окрестности. Глобальный минимум может быть совсем в другом месте или на конце интервала. Не останавливайтесь после нахождения одного локального экстремума.
Забывают про концы интервала
На замкнутом интервале абсолютные экстремумы могут оказаться на границах. В нашем примере абсолютный максимум был при x = 4, а не в критических точках. Пропуск проверки концов — одна из самых частых ошибок в задачах на оптимизацию и, рискну предположить, причина потери большего числа экзаменационных баллов, чем любые концептуальные недопонимания.
Предположение, что нулевая вторая производная означает отсутствие экстремума
Когда f''(c) = 0, тест по второй производной не даёт вывода. Это не значит, что точки экстремума нет. Вспомните f(x) = x⁴ при x = 0: f''(0) = 0, но x = 0 — очевидный минимум. Используйте тест по первой производной, когда второй не срабатывает.
Путаница между точкой экстремума и его значением
Экстремальное значение — это f(c), а не само c. «Минимум — x = 2», когда вы имеете в виду «минимальное значение — f(2) = 0», путает вход и выход. В отчётах и ответах на экзаменах требуется значение функции, а не только местоположение.
Заключение
Есть упрощённая версия этой темы, которая останавливается на «найдите, где производная равна нулю». Многие вводные курсы именно так и делают, оставляя студентов неготовыми к тому, что важно на практике: понимать, нашли ли вы локальный или глобальный минимум, и осознавать, что это принципиально разные вещи в зависимости от задачи.
Сам анализ здесь компактен: критические точки, тесты по производным, проверка концов интервала. Дольше всего усваивается геометрия, стоящая за этим: почему вогнутость определяет форму минимума, почему концы интервала могут «победить» критические точки, почему градиентный спуск в нейросети действительно ищет минимум на поверхности с тысячами локальных минимумов.
Для реализации наш курс Introduction to Optimization in Python рассматривает эти задачи вычислительно с использованием SciPy и SymPy. Здесь связь между анализом и кодом становится осязаемой.
Винод Чугани начал карьеру в Токио как самый молодой руководитель отдела продаж хедж‑фондов в JPMorgan, позже установил индивидуальный рекорд по продажам в Lehman Brothers, затем построил дистрибуционный бизнес электроники в 30 странах с выручкой свыше 100 млн сингапурских долларов, прежде чем переключиться на сферу данных. Выпускник по экономике из Duke и выпускник NYC Data Science Academy, он стал одним из трёх стипендиатов из более чем 100 заявителей на курс Hugo Bowne-Anderson "Building AI Applications" на платформе Maven. Сегодня он пишет для DataCamp, KDnuggets, Machine Learning Mastery и Statology на темы от статистики до агентного ИИ и наставляет специалистов по данным в NYC Data Science Academy, проведя более 1000 индивидуальных сессий.
FAQs
В чём разница между минимумами и максимумами?
Минимум — это наименьшее значение, которого достигает функция в некоторой точке, а максимум — наибольшее. Вместе они называются экстремумами. У функции может быть несколько локальных минимумов и максимумов, но глобальный (абсолютный) минимум — единственное наименьшее значение на всей области определения, а глобальный максимум — единственное наибольшее.
Как находить минимумы и максимумы функции?
Возьмите первую производную, приравняйте её к нулю и решите уравнение относительно x, чтобы найти критические точки. Затем используйте тест по первой производной (проверьте смену знака) или тест по второй производной (вычислите f''(x) в каждой критической точке), чтобы классифицировать их как минимум, максимум или ни то ни другое. На замкнутом интервале также вычислите значение функции в концах интервала.
В чём разница между локальными и глобальными экстремумами?
Локальный экстремум — это наивысшее или наинизшее значение в небольшой окрестности точки. Глобальный (абсолютный) экстремум — наивысшее или наинизшее значение на всей области определения функции. Каждый глобальный экстремум является локальным, но большинство локальных экстремумов не являются глобальными.
Может ли у функции быть более одного глобального минимума?
У функции может быть только одно глобальное минимальное значение, но оно может достигаться в нескольких точках. Например, у f(x) = cos(x) глобальное минимальное значение равно −1, и оно достигается при x = π, x = 3π, x = −π и так далее. Минимальное значение уникально; места его достижения — нет.
Что такое критическая точка и всегда ли это экстремум?
Критическая точка — это место, где f'(x) = 0 или f'(x) не определена. Это кандидат на экстремум, но не гарантия. Например, у f(x) = x³ есть критическая точка при x = 0 (так как f'(0) = 0), но это точка перегиба, а не экстремум — функция там не меняет направление.
Когда тест по второй производной не работает?
Тест по второй производной не даёт вывода, когда f''(c) = 0 в критической точке c. В этом случае нужно использовать тест по первой производной или анализировать производные высших порядков. Классический пример — f(x) = x⁴, где f'(0) = 0 и f''(0) = 0, но x = 0 — минимум.
Почему концы интервала важны при поиске абсолютных экстремумов?
На замкнутом интервале [a, b] теорема о предельных значениях гарантирует, что непрерывная функция имеет и абсолютный максимум, и абсолютный минимум. Они могут находиться как в критических точках, так и на концах интервала. Игнорируя концы, вы можете пропустить настоящий абсолютный экстремум — это одна из самых частых ошибок в таких задачах.
Как минимумы и максимумы используются в машинном обучении?
Обучение модели машинного обучения — это задача оптимизации: вы минимизируете функцию потерь (или, эквивалентно, максимизируете метрику качества). Градиентный спуск и его варианты находят минимумы функции потерь, итеративно двигаясь по направлению отрицательного градиента. Проблема локальных и глобальных минимумов здесь напрямую релевантна: невыпуклые функции потерь могут «захватывать» алгоритмы оптимизации в неоптимальных локальных минимумах.
