Квадратичная функция 🎯
Открой любой учебник по машинному обучению на главе про линейную регрессию, и очень скоро ты упрёшься в формулу среднеквадратичной ошибки — MSE, mean squared error. И если построить график этой ошибки в зависимости от одного веса модели, произойдёт что-то приятное: получится идеально гладкая чаша. Не хаотичный ландшафт с десятком ям и холмов, а одна-единственная впадина с одной-единственной точкой дна. Это не совпадение и не везение авторов учебника — это математическое свойство квадратичной функции, и именно ему посвящён этот урок.
Квадратичная функция $y = ax^2 + bx + c$ — это парабола: та самая кривая, по которой летит подброшенный мяч, снаряд из пушки или капля воды из фонтана. Но для тебя как для будущего специалиста по данным парабола — это ещё и форма функции потерь, форма регуляризатора, форма профиля ошибки почти в любой простой модели. Понимать параболу — значит понимать, почему градиентный спуск вообще работает: почему он не застревает где попало, а уверенно скатывается в одну и ту же точку независимо от того, откуда начал.
В этом уроке разберём квадратичную функцию с нуля и до практического применения: что означают коэффициенты $a$, $b$, $c$, как найти вершину параболы (тот самый минимум, который ищет градиентный спуск), как направление ветвей связано со знаком $a$, и как построить график по нескольким опорным точкам, не рисуя сотню точек вручную.
Ты узнаешь:
🎯 Что означает каждый коэффициент в $y = ax^2 + bx + c$ и как они меняют форму параболы 🎯 Как находить вершину параболы — и почему это буквально точка, к которой стремится градиентный спуск 🎯 Как направление ветвей и «крутизна» параболы связаны с устойчивостью обучения модели 🎯 Как быстро строить график квадратичной функции по пяти опорным точкам
История: откуда взялась парабола?
Парабола — очень старая кривая, гораздо старше алгебраической записи $y = ax^2+bx+c$. Ещё в III веке до н. э. древнегреческий математик Аполлоний Пергский систематически изучал конические сечения — кривые, которые получаются, если разрезать конус плоскостью под разными углами. Один из таких срезов, сделанный параллельно образующей конуса, и даёт параболу. Аполлоний же придумал для неё название: «парабола» по-гречески означает «приложение» — термин из геометрической техники того времени, но по счастливому совпадению он же означает «сравнение», «сопоставление», что неплохо описывает суть функции: сравнение квадрата расстояния с линейным изменением.
Долгое время парабола оставалась чисто геометрическим объектом — красивой кривой без явной практической пользы. Всё изменилось в XVII веке, когда Галилео Галилей, экспериментируя с брошенными и катящимися телами, доказал: траектория любого тела, брошенного под углом к горизонту (без учёта сопротивления воздуха), — это парабола. Раньше баллистику считали чем-то мистическим, снаряды «знали», куда лететь. Галилей показал: это чистая алгебра, $y = ax^2+bx+c$, где коэффициенты определяются начальной скоростью, углом броска и ускорением свободного падения. С этого момента парабола стала рабочим инструментом артиллеристов, инженеров и физиков.
А в начале XIX века парабола получила совсем неожиданную вторую жизнь. Математики Адриен-Мари Лежандр и Карл Фридрих Гаусс, пытаясь наилучшим образом провести прямую через облако неточных астрономических измерений, изобрели метод наименьших квадратов — и выбрали для этого именно сумму квадратов отклонений, а не, скажем, сумму модулей. Почему квадратов? Потому что сумма квадратов отклонений от параметра модели — это тоже квадратичная функция этого параметра, а значит, у неё гарантированно есть единственный минимум, который можно найти явной формулой. Это тот самый MSE, который сегодня встречается в первой же строчке кода любой учебной модели линейной регрессии на PyTorch или scikit-learn. Гаусс не знал слова «градиентный спуск», но фактически уже тогда понял главное: если твоя функция ошибки — парабола, оптимизация становится управляемой задачей, а не блужданием вслепую.
Коэффициенты a, b и c: что каждый из них значит
Интуиция
Представь себе миску — не абстрактную, а самую обычную, из которой ты ешь суп. У миски есть форма стенок (насколько они крутые или пологие), есть положение самой нижней точки (где именно находится дно) и есть то, на какой высоте относительно стола эта миска стоит. Квадратичная функция $y = ax^2 + bx + c$ описывает ровно такую «миску» на координатной плоскости — только роли распределены между тремя числами.
Коэффициент $a$ отвечает за форму стенок: насколько круто или полого они поднимаются от дна. Коэффициенты $a$ и $b$ вместе определяют, где именно находится самая нижняя (или самая высокая, если миска перевёрнута) точка — дно миски может быть смещено влево или вправо от центра координат. А коэффициент $c$ — это самое простое: значение функции при $x = 0$, то есть высота, на которой парабола пересекает вертикальную ось.
Строгое определение
Определение: Квадратичной функцией называется функция вида
$$y = ax^2 + bx + c$$где $a$, $b$, $c$ — фиксированные числа (коэффициенты), причём $a \neq 0$. Графиком квадратичной функции является парабола.
Роль каждого коэффициента:
- $a$ — коэффициент при $x^2$. Определяет направление ветвей параболы (вверх или вниз) и её «крутизну» — насколько быстро растут значения при удалении от вершины
- $b$ — коэффициент при $x$. Сам по себе не имеет наглядного самостоятельного смысла, но вместе с $a$ определяет положение вершины по горизонтали
- $c$ — свободный член. Это значение функции при $x = 0$, то есть точка пересечения графика с осью $Oy$: координата $(0, c)$
Условие $a \neq 0$ принципиально: если $a = 0$, слагаемое $x^2$ исчезает, и функция превращается в линейную $y = bx + c$ — её график уже не парабола, а прямая.
Примеры с подробным разбором
Пример 1 (простой): Определи коэффициенты функции $y = 5x^2 + 2x - 9$.
Решение:
Сравниваем данную функцию с общим видом $y = ax^2 + bx + c$ и подставляем на место каждой буквы то, что стоит перед соответствующей степенью $x$:
- $a = 5$ (коэффициент при $x^2$)
- $b = 2$ (коэффициент при $x$)
- $c = -9$ (свободный член, знак минус входит в значение)
Ответ: $a = 5$, $b = 2$, $c = -9$.
📌 Частый источник ошибок: знак коэффициента нужно брать вместе со знаком слагаемого. Если бы функция была $y = 5x^2 - 2x - 9$, то $b = -2$, а не $2$.
Пример 2 (средний): Физика свободного падения.
Тело брошено вертикально вверх с начальной скоростью $15$ м/с с высоты $2$ метра. Высота тела в момент времени $t$ (в секундах) описывается функцией:
$$h(t) = -4.9t^2 + 15t + 2$$Определи физический смысл каждого коэффициента.
Решение:
Шаг 1. Смотрим на коэффициент при $t^2$: $a = -4.9$. Это число — половина ускорения свободного падения со знаком минус: $-\dfrac{g}{2} = -\dfrac{9.8}{2} = -4.9$. Минус здесь не случаен: сила тяжести тянет тело вниз, замедляя подъём и ускоряя падение — отсюда и отрицательный коэффициент, отсюда и то, что ветви параболы направлены вниз (движение вверх не может продолжаться вечно).
Шаг 2. Коэффициент при $t$: $b = 15$. Это начальная скорость тела в м/с — та скорость, с которой оно стартовало в момент $t = 0$.
Шаг 3. Свободный член: $c = 2$. Это начальная высота — высота тела в момент $t = 0$, когда бросок только начался. Проверим: $h(0) = -4.9\cdot 0 + 15\cdot 0 + 2 = 2$ ✅.
Шаг 4 (бонус). Найдём высоту через одну секунду: $h(1) = -4.9\cdot 1 + 15\cdot 1 + 2 = -4.9 + 15 + 2 = 12.1$ метра.
Ответ: $a = -4.9$ — половина ускорения свободного падения (со знаком минус), $b = 15$ — начальная скорость, $c = 2$ — начальная высота. Через 1 секунду тело находится на высоте $12.1$ м.
Пример 3 (сложный, ML-контекст): Откуда берутся коэффициенты в MSE loss.
Пусть у тебя простая модель линейной регрессии без смещения: $\hat{y} = wx$, где $w$ — единственный обучаемый параметр. Есть три обучающих примера: $(x_1, y_1) = (1, 3)$, $(x_2, y_2) = (2, 5)$, $(x_3, y_3) = (3, 6)$.
Функция потерь (сумма квадратов ошибок) как функция веса $w$:
$$L(w) = (w\cdot 1 - 3)^2 + (w \cdot 2 - 5)^2 + (w \cdot 3 - 6)^2$$Решение:
Шаг 1. Раскроем каждую скобку по формуле квадрата разности $(u-v)^2 = u^2 - 2uv + v^2$:
$$(w-3)^2 = w^2 - 6w + 9$$$$(2w-5)^2 = 4w^2 - 20w + 25$$
$$(3w-6)^2 = 9w^2 - 36w + 36$$
Шаг 2. Сложим все три выражения, группируя по степеням $w$:
$$L(w) = (1 + 4 + 9)w^2 + (-6 - 20 - 36)w + (9 + 25 + 36)$$$$L(w) = 14w^2 - 62w + 70$$Шаг 3. Сравним с общим видом $y = aw^2 + bw + c$: получили $a = 14$, $b = -62$, $c = 70$.
Шаг 4. Замечаем закономерность. Коэффициент $a = 14 = 1^2 + 2^2 + 3^2$ — это в точности сумма квадратов входных значений $x_i$! И это не случайность: если раскрыть формулу $L(w) = \sum (wx_i - y_i)^2$ в общем виде, получится
$$L(w) = \Big(\sum x_i^2\Big) w^2 - 2\Big(\sum x_i y_i\Big) w + \sum y_i^2$$то есть $a = \sum x_i^2$ всегда. А сумма квадратов вещественных чисел не может быть отрицательной — она равна нулю только если все $x_i$ равны нулю (вырожденный случай, когда данных фактически нет).
Ответ: $a = 14$, $b = -62$, $c = 70$. Коэффициент $a$ в функции потерь MSE — это всегда сумма квадратов входных признаков, а значит $a \geq 0$ гарантированно.
Почему это важно: То, что коэффициент $a$ в MSE-функции потерь равен сумме квадратов ($\geq 0$), — не случайность конкретного примера, а математическая гарантия. Именно поэтому график ошибки при обучении простой линейной модели — это всегда чаша, направленная вверх (или, в вырожденном случае, плоская линия), а не купол и не хаотичная кривая с несколькими впадинами. Это фундамент того, почему градиентный спуск для линейной регрессии всегда находит глобальный минимум, а не застревает в одной из многих «ловушек» — в отличие от сложных нейросетей, где ландшафт ошибки уже не парабола, а нечто гораздо более дикое.
Вершина параболы: точка, которую ищет градиентный спуск
Интуиция
Представь, что ты закатываешь шарик в ту самую миску из предыдущего раздела. Куда бы ты его ни бросил — с левого края, с правого, почти с самого верха, — шарик, теряя энергию на трении, в итоге остановится в одной и той же точке: на дне миски. Это дно и есть вершина параболы.
В машинном обучении происходит буквально то же самое. Алгоритм градиентного спуска стартует с какого-то случайного значения веса модели, а дальше на каждом шаге чуть-чуть подправляет его в сторону уменьшения ошибки — «скатывается вниз» по графику функции потерь. Если этот график — парабола, шарик (то есть вес модели) неизбежно приходит в одну и ту же точку: в вершину. Именно поэтому важно уметь находить координаты вершины руками — это ровно то место, куда «в идеале» должен прийти алгоритм обучения.
Строгое определение
Определение: Вершиной параболы $y = ax^2 + bx + c$ называется точка $(x_0, y_0)$, где
$$x_0 = -\frac{b}{2a}, \qquad y_0 = f(x_0)$$Если $a > 0$, вершина — точка минимума функции (низшая точка параболы). Если $a < 0$, вершина — точка максимума (высшая точка параболы). Прямая $x = x_0$ называется осью симметрии параболы: левая и правая половины графика — зеркальные отражения друг друга относительно этой прямой.
Откуда берётся формула $x_0 = -\dfrac{b}{2a}$? Она получается выделением полного квадрата:
$$y = ax^2 + bx + c = a\left(x^2 + \frac{b}{a}x\right) + c = a\left(x + \frac{b}{2a}\right)^2 - \frac{b^2}{4a} + c$$Выражение в скобках $\left(x + \dfrac{b}{2a}\right)^2$ всегда неотрицательно и обращается в ноль ровно при $x = -\dfrac{b}{2a}$ — именно в этой точке всё выражение (при $a>0$) принимает наименьшее возможное значение. Отсюда и формула вершины, и заодно вершинная форма записи параболы $y = a(x-x_0)^2 + y_0$.
Примеры с подробным разбором
Пример 1 (простой): Найди вершину параболы $y = x^2 - 6x + 8$.
Решение:
Шаг 1. Определяем коэффициенты: $a = 1$, $b = -6$, $c = 8$.
Шаг 2. Находим $x$-координату вершины по формуле:
$$x_0 = -\frac{b}{2a} = -\frac{-6}{2 \cdot 1} = \frac{6}{2} = 3$$Шаг 3. Подставляем $x_0 = 3$ обратно в функцию, чтобы найти $y_0$:
$$y_0 = 3^2 - 6\cdot 3 + 8 = 9 - 18 + 8 = -1$$Ответ: вершина параболы — точка $(3; -1)$. Поскольку $a = 1 > 0$, это точка минимума.
Пример 2 (средний): Максимальная высота полёта мяча.
Мяч подброшен с земли, и его высота описывается функцией $h(t) = -5t^2 + 20t$, где $t$ — время в секундах, $h$ — высота в метрах. Найди максимальную высоту подъёма и момент времени, в который она достигается.
Решение:
Шаг 1. Коэффициенты: $a = -5$, $b = 20$, $c = 0$.
Шаг 2. Находим момент максимума — это $x$-координата вершины:
$$t_0 = -\frac{b}{2a} = -\frac{20}{2\cdot(-5)} = -\frac{20}{-10} = 2$$Шаг 3. Находим саму максимальную высоту, подставляя $t_0 = 2$:
$$h(2) = -5\cdot 2^2 + 20\cdot 2 = -5\cdot 4 + 40 = -20 + 40 = 20$$Ответ: максимальная высота — $20$ метров, достигается через $2$ секунды после броска. Поскольку $a = -5 < 0$, это действительно точка максимума (мяч поднимается, а потом обязательно падает).
Пример 3 (сложный, ML-контекст): Оптимальный вес простой регрессии.
Модель без смещения $\hat{y} = wx$ обучается на трёх примерах: $(1, 2)$, $(2, 3)$, $(4, 9)$. Функция потерь:
$$L(w) = (w-2)^2 + (2w-3)^2 + (4w-9)^2$$Найди оптимальный вес $w^*$, минимизирующий ошибку — то есть найди вершину этой параболы.
Решение:
Шаг 1. Раскроем каждую скобку:
$$(w-2)^2 = w^2 - 4w + 4$$$$(2w-3)^2 = 4w^2 - 12w + 9$$
$$(4w-9)^2 = 16w^2 - 72w + 81$$
Шаг 2. Сложим:
$$L(w) = (1+4+16)w^2 + (-4-12-72)w + (4+9+81) = 21w^2 - 88w + 94$$Шаг 3. Находим вершину — это и есть оптимальный вес:
$$w^* = -\frac{b}{2a} = -\frac{-88}{2 \cdot 21} = \frac{88}{42} = \frac{44}{21} \approx 2.095$$Ответ: оптимальный вес $w^* \approx 2.095$. Это ровно то значение, к которому в теории должен сойтись градиентный спуск, запущенный с любого начального $w$ — например, с $w=0$ или с $w=100$: он «скатится» в одну и ту же точку, потому что $a = 21 > 0$ и вершина у параболы ровно одна.
Почему это важно: Когда ты видишь в коде обучения что-то вроде for epoch in range(100): w = w - lr * gradient, это буквально пошаговое приближение к вершине параболы функции потерь. Формула вершины $x_0 = -b/(2a)$, которую ты только что использовал вручную, для простых моделей (линейная регрессия по одному признаку) даёт точное аналитическое решение задачи обучения — без единого шага градиентного спуска. Именно на этом принципе основан метод наименьших квадратов, изобретённый Гауссом и Лежандром: если функция ошибки квадратичная, минимум можно вычислить одной формулой, а не искать его итерациями.
Направление ветвей и коэффициент a: форма параболы
Интуиция
Вернёмся к аналогии с холмами. Если ты когда-нибудь спускался на лыжах, ты знаешь: есть пологие склоны, по которым можно катиться медленно и безопасно, а есть почти отвесные, по которым скорость нарастает пугающе быстро. Коэффициент $a$ в квадратичной функции — это в точности «крутизна склона» параболы. Чем больше $|a|$ (модуль $a$, независимо от знака), тем круче и уже парабола — тем быстрее растут значения функции при удалении от вершины. Чем $|a|$ ближе к нулю, тем парабола более пологая и широкая.
А знак $a$ определяет, «миска» перед нами или «купол»: положительный $a$ — миска с дном-минимумом (как чаша, из которой шарик никуда не выкатится), отрицательный $a$ — купол с вершиной-максимумом (как холм, с которого шарик обязательно скатится).
Строгое определение
Определение: Если $a > 0$, ветви параболы направлены вверх, и функция имеет точку минимума. Если $a < 0$, ветви направлены вниз, и функция имеет точку максимума. Величина $|a|$ определяет «крутизну» параболы: чем больше $|a|$, тем быстрее растут (или убывают) значения функции при удалении от вершины, тем уже график. Чем меньше $|a|$, тем график шире (положе).
Примеры с подробным разбором
Пример 1 (простой): Сравни ширину графиков $y = x^2$, $y = 4x^2$ и $y = 0.25x^2$.
Решение:
Шаг 1. У всех трёх функций $b = 0$, $c = 0$ — вершина у всех в точке $(0,0)$, и все они направлены вверх ($a > 0$ во всех случаях). Разница только в коэффициенте $a$.
Шаг 2. Посчитаем значение каждой функции в одной и той же точке, например при $x = 2$:
- $y = x^2$: $y(2) = 4$
- $y = 4x^2$: $y(2) = 16$
- $y = 0.25x^2$: $y(2) = 1$
Шаг 3. Интерпретируем. При одном и том же $x = 2$ функция с $a = 4$ «улетела» выше всех — её график самый узкий и крутой. Функция с $a = 0.25$ выросла меньше всего — её график самый широкий и пологий.
Ответ: самая узкая парабола — у $y = 4x^2$ ($a = 4$, наибольший по модулю), самая широкая — у $y = 0.25x^2$ ($a = 0.25$, наименьший по модулю).
Пример 2 (средний): Направление ветвей в задаче на прибыль.
Прибыль компании от цены товара описывается функцией $P(x) = -0.5x^2 + 20x - 50$, где $x$ — цена в условных единицах, $P$ — прибыль в тысячах рублей. Определи направление ветвей и найди цену, при которой прибыль максимальна.
Решение:
Шаг 1. Коэффициент $a = -0.5 < 0$ — ветви направлены вниз. Это логично для задачи о прибыли: если цена слишком низкая, прибыль мала (или отрицательна из-за издержек), если цена слишком высокая — никто не покупает, прибыль снова падает. Где-то посередине — оптимум, единственный максимум.
Шаг 2. Находим вершину:
$$x_0 = -\frac{20}{2\cdot(-0.5)} = -\frac{20}{-1} = 20$$Шаг 3. Находим максимальную прибыль:
$$P(20) = -0.5\cdot 20^2 + 20\cdot 20 - 50 = -0.5\cdot 400 + 400 - 50 = -200 + 400 - 50 = 150$$Ответ: при цене $x = 20$ прибыль максимальна и составляет $150$ тысяч рублей. Ветви параболы направлены вниз, потому что $a = -0.5 < 0$ — экономически это означает, что у прибыли есть верхний предел, который нельзя превысить, просто повышая или понижая цену.
Пример 3 (сложный, ML-контекст): Почему крутизна параболы влияет на выбор learning rate.
Сравним две функции потерь с одинаковым минимумом, но разной «крутизной»:
$$L_1(w) = (w-2)^2, \qquad L_2(w) = 50(w-2)^2$$У обеих минимум в точке $w = 2$ со значением потерь $0$. Разница только в коэффициенте $a$: у $L_1$ он равен $1$, у $L_2$ — $50$.
Решение:
Шаг 1. Найдём производные (градиенты) обеих функций:
$$L_1'(w) = 2(w-2), \qquad L_2'(w) = 100(w-2)$$Шаг 2. Возьмём одну и ту же стартовую точку, например $w = 3$ (на единицу правее минимума), и посчитаем градиент в обоих случаях:
$$L_1'(3) = 2\cdot 1 = 2, \qquad L_2'(3) = 100 \cdot 1 = 100$$Шаг 3. Сделаем один шаг градиентного спуска с одним и тем же learning rate $\eta = 0.1$ по формуле $w_{\text{new}} = w - \eta \cdot L'(w)$:
Для $L_1$: $w_{\text{new}} = 3 - 0.1\cdot 2 = 3 - 0.2 = 2.8$ — шаг небольшой, аккуратно приближаемся к минимуму $w=2$.
Для $L_2$: $w_{\text{new}} = 3 - 0.1\cdot 100 = 3 - 10 = -7$ — гигантский перелёт мимо минимума в противоположную сторону!
Ответ: одна и та же скорость обучения ($\eta = 0.1$) прекрасно работает для пологой параболы $L_1$ и полностью разваливает обучение для крутой параболы $L_2$: вместо аккуратного спуска к минимуму получается «перелёт» на $-7$, ещё дальше от минимума, чем стартовая точка.
Почему это важно: В реальном обучении нейросетей у разных весов (или разных признаков, если они не нормализованы) могут быть очень разные по «крутизне» направления функции потерь — как будто в одном направлении миска пологая, а в другом почти отвесная. Именно поэтому нормализация признаков (приведение их к одному масштабу) — это не formalность, а способ сделать все «ветви» параболоида примерно одинаково крутыми, чтобы один и тот же learning rate одинаково хорошо работал по всем направлениям. Коэффициент $a$, который в школе выглядит как абстрактная буква в формуле, на практике определяет, взорвётся обучение модели или сойдётся плавно.
Построение графика по опорным точкам
Интуиция
Представь навигатор в машине: он не показывает тебе бесконечно много точек маршрута, а отмечает несколько ключевых — «поворот через 200 м», «финиш через 5 км». Зная эти несколько опорных точек, ты прекрасно понимаешь весь маршрут, даже не видя каждую точку пути.
Построение параболы работает так же. Вместо того чтобы считать значение функции в 20 случайных точках, достаточно найти пять содержательных: вершину (самая важная точка — центр симметрии), точку пересечения с осью $Oy$ и симметричную ей точку по другую сторону от оси симметрии, и точки пересечения с осью $Ox$ (если они есть). Через эти опорные точки парабола проводится одним плавным движением руки.
Строгое определение
Определение (опорные точки параболы): Для построения графика квадратичной функции $y = ax^2+bx+c$ достаточно найти следующие характерные точки:
- Вершину $(x_0, y_0)$, где $x_0 = -\dfrac{b}{2a}$
- Ось симметрии — прямую $x = x_0$
- Точку пересечения с осью $Oy$ — $(0, c)$ — и симметричную ей точку относительно оси симметрии
- Точки пересечения с осью $Ox$ (корни уравнения $ax^2+bx+c=0$), которые существуют только если дискриминант $D = b^2-4ac \geq 0$
Алгоритм построения:
- Определи коэффициенты $a$, $b$, $c$ и знак $a$ (направление ветвей)
- Найди вершину $(x_0, y_0)$ и проведи ось симметрии $x = x_0$
- Найди точку пересечения с $Oy$: $(0, c)$, и отметь симметричную ей точку по другую сторону оси
- Вычисли дискриминант $D = b^2-4ac$. Если $D \geq 0$ — найди точки пересечения с $Ox$
- Соедини все найденные точки плавной кривой, симметричной относительно оси $x = x_0$
Примеры с подробным разбором
Пример 1 (простой): Построй график $y = x^2 - 4x + 3$.
Решение:
Шаг 1. Коэффициенты: $a=1$, $b=-4$, $c=3$. Ветви вверх, так как $a=1>0$.
Шаг 2. Вершина: $x_0 = -\dfrac{-4}{2\cdot 1} = 2$, $y_0 = 2^2 - 4\cdot 2 + 3 = 4-8+3 = -1$. Вершина: $(2; -1)$. Ось симметрии: $x=2$.
Шаг 3. Точка пересечения с $Oy$: $(0; 3)$. Она находится на $2$ единицы левее оси симметрии, значит симметричная ей точка — на $2$ единицы правее: $(4; 3)$.
Шаг 4. Дискриминант: $D = (-4)^2 - 4\cdot 1\cdot 3 = 16-12=4 > 0$, есть два корня:
$$x = \frac{4 \pm \sqrt{4}}{2} = \frac{4\pm 2}{2} \implies x=3 \text{ или } x=1$$Точки пересечения с $Ox$: $(1; 0)$ и $(3; 0)$.
Шаг 5. Соединяем точки $(0;3)$, $(1;0)$, $(2;-1)$, $(3;0)$, $(4;3)$ плавной кривой.
Ответ: парабола с вершиной $(2;-1)$ (минимум), пересекает $Ox$ в точках $(1;0)$ и $(3;0)$, пересекает $Oy$ в точке $(0;3)$.
Пример 2 (средний): Построй график $y = -2x^2 + 4x + 6$.
Решение:
Шаг 1. Коэффициенты: $a=-2$, $b=4$, $c=6$. Ветви вниз, так как $a=-2<0$.
Шаг 2. Вершина: $x_0 = -\dfrac{4}{2\cdot(-2)} = -\dfrac{4}{-4} = 1$, $y_0 = -2\cdot 1^2 + 4\cdot 1 + 6 = -2+4+6=8$. Вершина: $(1;8)$ — это максимум.
Шаг 3. Точка пересечения с $Oy$: $(0;6)$, на $1$ единицу левее оси симметрии $x=1$. Симметричная точка — на $1$ единицу правее: $(2;6)$.
Шаг 4. Дискриминант: $D=4^2-4\cdot(-2)\cdot 6 = 16+48=64$, $\sqrt{64}=8$.
$$x = \frac{-4\pm 8}{2\cdot(-2)} = \frac{-4\pm 8}{-4}$$$x = \dfrac{4}{-4}=-1$ или $x=\dfrac{-12}{-4}=3$. Проверим проще: разделим уравнение $-2x^2+4x+6=0$ на $-2$: $x^2-2x-3=0$, раскладываем на множители $(x-3)(x+1)=0$, значит $x=3$ или $x=-1$. Точки: $(-1;0)$ и $(3;0)$.
Шаг 5. Соединяем точки $(-1;0)$, $(0;6)$, $(1;8)$, $(2;6)$, $(3;0)$ плавной кривой-куполом.
Ответ: парабола с вершиной $(1;8)$ (максимум), пересекает $Ox$ в точках $(-1;0)$ и $(3;0)$.
Пример 3 (сложный, ML-контекст): Построй график функции потерь $L(w) = 2w^2 - 8w + 11$ и интерпретируй его.
Решение:
Шаг 1. Коэффициенты: $a=2$, $b=-8$, $c=11$. Ветви вверх ($a>0$) — это функция потерь, у неё должен быть минимум, а не максимум, и действительно он есть.
Шаг 2. Вершина: $w_0 = -\dfrac{-8}{2\cdot 2} = \dfrac{8}{4}=2$, $L(2) = 2\cdot 4 - 16 + 11 = 8-16+11=3$. Вершина: $(2;3)$.
Шаг 3. Точка пересечения с осью (при $w=0$): $(0;11)$. Симметричная ей точка относительно $w=2$: $(4;11)$ (проверка: $L(4)=2\cdot16-32+11=32-32+11=11$ ✅).
Шаг 4. Дискриминант: $D = (-8)^2-4\cdot 2\cdot 11 = 64-88=-24 < 0$. Действительных корней нет — график не пересекает ось $w$ (ось абсцисс) нигде.
Шаг 5. Соединяем $(0;11)$, $(2;3)$, $(4;11)$ плавной кривой, не касающейся горизонтальной оси.
Ответ: парабола с минимумом в точке $(2;3)$, минимальная достижимая ошибка — $3$, а не $0$, поскольку дискриминант отрицателен.
Почему это важно: Отрицательный дискриминант в контексте функции потерь — не абстрактная алгебра, а конкретный практический факт: минимальная ошибка модели никогда не станет нулевой, сколько бы ты ни обучал модель. Это нормально и ожидаемо, если данные содержат шум или модель принципиально не может идеально описать зависимость (например, линейная модель пытается описать нелинейные данные). Умение прочитать это прямо по коэффициентам функции потерь — до всякого обучения — экономит часы бесполезных попыток «дообучить до нуля» то, что нулевой ошибки достичь не может.
Практика: 30 заданий
Базовые (задания 1-10)
Задание 1: Определи коэффициенты $a$, $b$, $c$ для функции $y = 3x^2 - 5x + 2$.
Задание 2: Найди вершину параболы $y = x^2 - 4x + 3$.
Задание 3: Определи направление ветвей и найди точку пересечения с осью $Oy$ для $y = -2x^2 + 6x - 1$.
Задание 4: Вычисли значения функции $y = 2x^2 - 3x + 1$ при $x = 0$, $x=1$, $x=2$.
Задание 5: Найди точки пересечения параболы $y = x^2 - 5x + 6$ с осью $Ox$.
Задание 6: Найди ось симметрии параболы $y = -x^2 + 8x - 12$.
Задание 7: Какая парабола уже: $y = x^2$ или $y = 5x^2$? Обоснуй ответ.
Задание 8: Для модели $\hat{y} = wx$ с одним обучающим примером $(x=4, y=10)$ функция потерь $L(w) = (4w-10)^2$. Раскрой скобки и определи коэффициенты $a$, $b$, $c$ полученной квадратичной функции.
Задание 9: Найди точку пересечения с осью $Oy$ для функции $y = 0.5x^2 + 3x - 7$.
Задание 10: Есть ли у параболы $y = x^2 - 2x + 5$ точки пересечения с осью $Ox$?
Средние (задания 11-20)
Задание 11: Преобрази $y = 2x^2 - 12x + 7$ к вершинной форме $y=a(x-h)^2+k$, выделив полный квадрат.
Задание 12: Мяч брошен вертикально вверх, высота задана функцией $h(t) = -5t^2+20t+1$ (в метрах). Найди максимальную высоту и время её достижения.
Задание 13: Прибыль компании $P(x) = -3x^2+60x-200$. Найди значение $x$, при котором прибыль максимальна, и саму максимальную прибыль.
Задание 14: Найди квадратичную функцию, график которой проходит через точки $(0;1)$, $(1;4)$, $(2;11)$.
Задание 15: Сравни вершины парабол $y=x^2-4x+7$ и $y=x^2-4x+2$. Что изменилось, а что осталось прежним?
Задание 16: Модель $\hat{y}=wx$ обучается на данных $(1,2)$ и $(2,3)$. Функция потерь $L(w)=(w-2)^2+(2w-3)^2$. Найди оптимальный вес $w$ и минимальное значение потерь.
Задание 17: При каком значении параметра $a$ парабола $y=ax^2-4x+1$ касается оси $Ox$ (то есть имеет ровно один корень)?
Задание 18: Вершина параболы находится в точке $(2;-3)$, график проходит через точку $(0;5)$. Найди уравнение параболы в стандартном виде.
Задание 19: Парабола имеет ветви, направленные вниз, вершину-максимум в точке $(3;10)$ и проходит через точку $(5;-6)$. Найди коэффициент $a$.
Задание 20: Сравни функции потерь $L_1(w)=(w-4)^2$ и $L_2(w)=3(w-4)^2$. Найди значения обеих при $w=5$ и объясни разницу.
Продвинутые (задания 21-30)
Задание 21: Найди все значения параметра $a$, при которых уравнение $ax^2-4x+1=0$ имеет два различных действительных корня.
Задание 22: Траектория ракеты описывается функцией $y=-0.1x^2+2x$ ($x$, $y$ в километрах). На каком расстоянии от точки запуска ракета достигнет максимальной высоты и какой будет эта высота?
Задание 23: Модель $\hat{y}=2w+1$ (свободный член фиксирован) обучается на единственном примере $(x=2, y=7)$. Функция потерь $L(w) = (2w+1-7)^2$. Найди оптимальный вес.
Задание 24: Найди корни уравнения $3x^2-x-2=0$.
Задание 25: Найди точки пересечения графиков $f(x)=x^2-2x+1$ и $g(x)=-x^2+4x-3$.
Задание 26: Из проволоки длиной $40$ м нужно сделать прямоугольную ограду максимальной площади. Найди оптимальные размеры и максимальную площадь.
Задание 27: Регуляризованная (ridge) функция потерь: $L(w)=(w-3)^2+w^2$ (обычная ошибка плюс штраф за величину веса). Найди оптимальный вес и сравни его с оптимумом без регуляризации ($w=3$).
Задание 28: Найди квадратичную функцию с корнями $x=-1$ и $x=5$, график которой проходит через точку $(2;-9)$.
Задание 29: Для линейной регрессии $\hat{y}=wx$ на данных $(1,2)$, $(2,3)$, $(3,5)$ докажи, что функция потерь $L(w)=\sum(wx_i-y_i)^2$ — парабола с ветвями вверх, и найди оптимальный вес.
Задание 30: Отладка решения. Студент решал задачу: найти вершину параболы $y=3x^2-12x+5$. Вот его решение — найди и исправь ошибку.
a = 3, b = -12, c = 5
x0 = b / (2a) = -12 / 6 = -2 ← студент забыл минус перед b!
y0 = 3·(-2)² - 12·(-2) + 5 = 12 + 24 + 5 = 41
Ответ студента: вершина (-2; 41)
Частые ошибки
❌ Ошибка 1: «При $a < 0$ парабола направлена влево»
Неправильно: думать, что знак $a$ определяет горизонтальное направление ветвей.
Правильно: при $a<0$ ветви направлены вниз (по вертикали), а не влево. Парабола никогда не «смотрит» вбок — она всегда симметрична относительно вертикальной прямой.
Почему важно: эта ошибка сразу и полностью искажает форму графика при построении — вместо купола или чаши получается что-то, чего у квадратичной функции просто не бывает.
❌ Ошибка 2: «Вершина всегда находится в точке $(0, c)$»
Неправильно: путать точку пересечения с осью $Oy$ и вершину параболы.
Правильно: $(0, c)$ — это точка пересечения графика с осью $Oy$ (значение при $x=0$). Вершина находится в точке $\left(-\dfrac{b}{2a},\ f\!\left(-\dfrac{b}{2a}\right)\right)$ и совпадает с $(0,c)$ только в частном случае, когда $b=0$.
Почему важно: в задачах оптимизации (максимум прибыли, минимум ошибки) именно вершина — искомый ответ. Спутав её с точкой $(0,c)$, получишь совершенно неверный результат.
❌ Ошибка 3: «Забыли минус перед формулой вершины»
Неправильно: $x_0 = \dfrac{b}{2a}$ (без минуса) — классическая описка, разобранная в задаче 30.
Правильно: $x_0 = -\dfrac{b}{2a}$. Минус — неотъемлемая часть формулы.
Почему важно: пропущенный минус даёт координату вершины с неверным знаком — вершина «переезжает» на противоположную сторону оси $Oy$, и всё дальнейшее построение графика рушится.
❌ Ошибка 4: «Чем больше $a$, тем шире парабола»
Неправильно: считать, что увеличение $|a|$ делает параболу шире.
Правильно: всё наоборот — чем больше $|a|$, тем уже парабола (она круче растёт). Чем $|a|$ ближе к нулю, тем парабола шире.
Почему важно: в контексте ML это напрямую влияет на интуицию про learning rate — крутая («узкая») функция потерь требует меньшего шага обучения, иначе градиентный спуск «перелетит» через минимум (см. пример из раздела про коэффициент $a$).
❌ Ошибка 5: Путают знак при переходе к вершинной форме $y=a(x-h)^2+k$
Неправильно: для $y=(x+3)^2$ решить, что сдвиг вершины — в точку $x=3$.
Правильно: $(x+3)^2 = (x-(-3))^2$, поэтому $h=-3$, и вершина находится в точке $x=-3$, а не $x=3$. Знак внутри скобки — противоположный координате вершины.
Почему важно: это одна из самых частых ошибок при переходе между стандартной и вершинной формами записи, особенно когда формулу восстанавливают «по памяти», не выделяя полный квадрат аккуратно.
❌ Ошибка 6: Делают выводы о числе корней, не вычислив дискриминант
Неправильно: предполагать «на глаз», что у параболы есть два пересечения с осью $Ox$, просто потому что похожая парабола их имела.
Правильно: всегда вычисляй $D=b^2-4ac$ явно: $D>0$ — два корня, $D=0$ — один (касание), $D<0$ — корней нет.
Почему важно: в ML-контексте это тот самый сигнал: если дискриминант функции потерь (по одному параметру) отрицателен, минимальная ошибка модели принципиально больше нуля — сколько ни обучай, до нуля не дойдёшь, и это стоит знать заранее, а не выяснять сотней бесполезных эпох обучения.
Главное запомнить
✅ Общий вид: $y = ax^2+bx+c$, где $a\neq0$. График — парабола.
✅ Роль коэффициентов: $a$ — направление ветвей и крутизна, $b$ — вместе с $a$ определяет положение вершины, $c$ — точка пересечения с осью $Oy$: $(0,c)$.
✅ Формула вершины: $x_0=-\dfrac{b}{2a}$, $y_0=f(x_0)$. Ось симметрии — прямая $x=x_0$.
✅ Направление ветвей: $a>0$ — вверх, есть минимум; $a<0$ — вниз, есть максимум.
✅ Крутизна параболы: чем больше $|a|$, тем уже парабола; чем $|a|$ меньше, тем она шире.
✅ Дискриминант $D=b^2-4ac$ определяет число точек пересечения с осью $Ox$: $D>0$ — два корня, $D=0$ — один, $D<0$ — ни одного.
✅ Алгоритм построения графика: вершина → ось симметрии → точка пересечения с $Oy$ и симметричная ей → корни (если $D\geq0$) → плавная кривая.
✅ В машинном обучении: MSE-функция потерь простой линейной модели всегда квадратична по весу, с коэффициентом $a=\sum x_i^2 \geq 0$ — то есть парабола с ветвями вверх и единственным минимумом.
✅ Вершина параболы функции потерь = оптимальный параметр модели, к которому сходится градиентный спуск.
✅ Регуляризация (L2/ridge) добавляет к функции потерь слагаемое вида $\lambda w^2$, что смещает вершину параболы — оптимальный вес — ближе к нулю.
Связь с другими темами курса
Что нужно было знать до этого урока:
- Линейная функция $y=kx+b$ (урок 79) — простейший частный случай зависимости, на фоне которого квадратичная функция вводит новый уровень сложности: не прямая, а кривая с экстремумом
- Квадратные уравнения и дискриминант — без умения решать $ax^2+bx+c=0$ невозможно находить точки пересечения параболы с осью $Ox$
- Координатная плоскость и график функции — базовые навыки нанесения точек и чтения графика
Что изучить дальше:
- Степенная функция (следующий урок) — обобщение идеи $x^2$ на произвольные степени $x^n$
- Производная функции — формула вершины параболы $x_0=-b/(2a)$ на самом деле частный случай более общего правила «производная равна нулю в точке экстремума», которое работает для любых функций, не только квадратичных
- Исследование функции с помощью производной — то, что для параболы делается одной формулой, для сложных функций требует полноценного аппарата анализа
Где это применяется в жизни и в ML:
🚀 Физика и баллистика: траектория любого тела, брошенного под углом (снаряд, мяч, капля воды), — парабола. Коэффициенты определяются начальной скоростью, углом и ускорением свободного падения.
🤖 Машинное обучение: функция потерь MSE для линейной регрессии — квадратичная функция веса модели; её вершина — оптимальные параметры, которые находит либо явная формула (метод наименьших квадратов), либо градиентный спуск.
📉 Регуляризация: L2-регуляризация (ridge) буквально добавляет к параболе функции потерь ещё одну параболу-штраф, сдвигая вершину суммарной параболы к нулю.
💰 Экономика: зависимость прибыли от цены товара — типичная перевёрнутая парабола с единственным максимумом, который ищут методами оптимизации, похожими на поиск вершины.
📡 Инженерия: параболические антенны и рефлекторы (спутниковые тарелки, фары автомобилей, телескопы) используют геометрическое свойство параболы — все лучи, параллельные оси симметрии, после отражения сходятся в одной точке (фокусе).
Интересные факты
💡 Название придумал Аполлоний. Термин «парабола» ввёл древнегреческий математик Аполлоний Пергский в III веке до н. э., изучая конические сечения — задолго до того, как появилась привычная нам алгебраическая запись $y=ax^2+bx+c$.
💡 Гаусс выбрал квадрат неслучайно. Метод наименьших квадратов, изобретённый Гауссом и Лежандром в начале XIX века, минимизирует именно сумму квадратов отклонений — потому что эта сумма как функция параметра модели всегда парабола с единственным минимумом, который можно найти явной формулой, не перебирая варианты.
💡 Фокус параболы — не метафора. У параболы есть особая точка — фокус, — обладающая удивительным свойством: любой луч, идущий параллельно оси симметрии параболы, после отражения от неё обязательно проходит через фокус. Именно поэтому спутниковые антенны, солнечные печи и фары автомобилей делают параболической формы: это единственная форма, которая собирает параллельные лучи в одну точку (или, наоборот, из точки в источнике испускает параллельный пучок).
💡 Одна и та же парабола описывает и полёт мяча, и обучение нейросети. Формула $x_0=-b/(2a)$, которую Галилей мог бы применить к траектории пушечного ядра в XVII веке, сегодня буквально совпадает с точкой, в которую сходится обучение простейшей линейной модели машинного обучения. Математика физического движения и математика оптимизации функции ошибки — в буквальном смысле одна и та же формула.
Лайфхаки и полезные трюки
1. Всегда начинай с вершины. Найдя вершину первой, ты сразу знаешь, минимум перед тобой или максимум, и получаешь центр, от которого удобно откладывать симметричные точки — вместо хаотичного перебора значений $x$.
2. Трюк с симметричными точками. Если знаешь две точки графика с одинаковым $y$ (например, точку пересечения с $Oy$ и её отражение), координата вершины по $x$ — это ровно середина между их $x$-координатами. Не обязательно всегда использовать формулу $-b/(2a)$: иногда быстрее найти середину между двумя известными симметричными точками.
3. Быстрая проверка знака $a$ без вычислений. Посмотри на уравнение боковым зрением: множитель перед $x^2$ со знаком минус — купол (максимум), без минуса — чаша (минимум). Эта проверка занимает секунду и сразу отсекает грубые ошибки в решении.
4. «Шпаргалка» по дискриминанту. $D>0$ — два пересечения с $Ox$, $D=0$ — одно (касание), $D<0$ — ноль пересечений. Запомни это как светофор: зелёный (два корня), жёлтый (один корень, касание), красный (нет корней).
5. В коде — проверяй себя.
import numpy as np
a, b, c = 2, -8, 11
x0 = -b / (2*a)
y0 = a*x0**2 + b*x0 + c
D = b**2 - 4*a*c
print(f"Вершина: ({x0}, {y0})")
print(f"Дискриминант: {D}")
Прежде чем чертить параболу руками на бумаге, проверь вычисления в трёх строчках кода — особенно полезно при работе с большими или дробными коэффициентами.
6. Визуализируй функцию потерь перед обучением. Если модель обучается по одному параметру, за секунды построй график L(w) для нескольких значений w до того, как запускать градиентный спуск: сразу увидишь форму (парабола ли это вообще), примерное положение минимума и его достижимую глубину. Это дешёвая проверка интуиции перед дорогим обучением.
7. Для оценки крутизны используй отношение $|a_1| / |a_2|$. Если сравниваешь функции потерь по разным признакам (или разным весам), отношение коэффициентов $a$ прямо подсказывает, во сколько раз один «склон» круче другого — а значит, насколько по-разному на них подействует один и тот же learning rate.
Парабола — редкий пример математического объекта, который одинаково живёт и в античной геометрии конических сечений, и в баллистике Галилея, и в первой строчке кода твоей будущей модели машинного обучения. Освоив вершину, направление ветвей и опорные точки на бумаге, ты на самом деле уже понимаешь, почему градиентный спуск для простых моделей всегда находит один и тот же ответ — а это понимание останется с тобой, когда параболы сменятся куда более сложными многомерными ландшафтами ошибки в глубоких нейросетях.
Следующий шаг: степенная функция $y=x^n$ — обобщение того, что ты только что освоил, на произвольные степени. Увидишь, что квадратичная функция — лишь один частный случай ($n=2$) из целого семейства.
Понял тему? Закрепи в боте! 🚀
Попрактикуйся на задачах и получи персональные рекомендации от AI
💪 Начать тренировку