🔴 Сложный ⏱️ 55 минут

Правила дифференцирования

📋 Содержание урока

Правила дифференцирования ⚙️

Три урока подряд мы считали производные честно: брали приращение, делили на $h$, устремляли $h$ к нулю. Так были добыты шесть формул — производные константы, $x$, $x^2$, $x^3$, $\frac{1}{x}$ и $\sqrt{x}$. На каждую ушло по половине страницы выкладок. А теперь представь, что тебе нужна производная функции $f(x) = \dfrac{3x^4 - 2x^2 + 7}{x^2 + 1}$. По определению это подстановка $(x+h)$ в обе части дроби, приведение к общему знаменателю, раскрытие четвёртой степени бинома и сокращение — минут двадцать аккуратной работы, из которых девятнадцать уйдёт на алгебру, а не на математику.

Так работать нельзя, и математики поняли это сразу. Вместо того чтобы каждый раз лезть в определение, они один раз выяснили, как производная реагирует на арифметику: что происходит с ней при сложении функций, при умножении, при делении, при возведении в степень. Получилось полдюжины правил. И дальше любая функция, собранная из простых кусочков арифметическими операциями, дифференцируется механически — как раскладывается на множители число или как компилятор разбирает выражение на дерево операций.

Именно «механически» — ключевое слово этого урока. То, что мы сегодня выведем, не просто экономит время на контрольной. Это ровно тот набор правил, который зашит внутрь PyTorch, TensorFlow и JAX. Когда ты пишешь loss.backward(), библиотека не считает никаких пределов и не берёт производные символьно, как в учебнике. Она идёт по графу операций, которые ты выполнил в forward-проходе, и к каждому узлу применяет одно из правил этого урока: к узлу сложения — правило суммы, к узлу умножения — правило произведения, к узлу деления — правило частного, к возведению в степень — правило степени. Сто миллионов параметров, миллиарды операций, ноль пределов. Просто шесть правил, применённых очень много раз.

В этом уроке мы выведем каждое правило из определения — не «запомни формулу», а «смотри, откуда она берётся». Разберём, почему производная произведения устроена странно (совсем не $u'v'$, как хочется), и увидим геометрическую картинку, из которой это становится очевидным. Докажем правило степени сразу тремя способами и растянем его с натуральных показателей на отрицательные и дробные. Научимся дифференцировать многочлены и рациональные функции за секунды. И доберёмся до второй производной — той самой, которая в физике зовётся ускорением, а в машинном обучении отвечает за кривизну и метод Ньютона.

🎯 Ты узнаешь:

  • Как из определения выводятся правила для суммы, разности и константного множителя — и почему они вместе называются линейностью производной
  • Почему $(uv)' = u'v + uv'$, а не $u'v'$, и как это видно на площади растущего прямоугольника
  • Как получить правило частного $\left(\dfrac{u}{v}\right)' = \dfrac{u'v - uv'}{v^2}$ и как не перепутать в нём порядок слагаемых
  • Три независимых доказательства формулы $(x^n)' = nx^{n-1}$ и её распространение на отрицательные и дробные показатели
  • Как за один проход дифференцировать любой многочлен и любую рациональную функцию
  • Что такое вторая и высшие производные, зачем они нужны в физике и в оптимизации
  • Почему автодифференцирование строит граф операций, при чём тут правило произведения в backward-проходе слоя $y = Wx$, и почему численная производная в сто миллионов раз дороже

История: откуда это взялось?

В ноябре 1675 года Готфрид Вильгельм Лейбниц сидел над рукописью, в которой впервые в истории появился знак интеграла и обозначение $dx$. И там же он записал предположение о том, чему равен дифференциал произведения. Записал он — неверно: $d(xy) = dx \cdot dy$. Самая естественная догадка на свете: раз дифференциал суммы равен сумме дифференциалов, почему бы дифференциалу произведения не быть произведением дифференциалов? Через несколько дней Лейбниц вернулся к этой строчке, проверил на конкретном примере, увидел, что не сходится, и вывел правильную формулу — ту самую $d(xy) = x\,dy + y\,dx$, которую мы сегодня будем доказывать. Так что если тебе хочется написать $(uv)' = u'v'$ — ты в хорошей компании: ровно так же ошибся человек, придумавший само понятие дифференциала. Разница лишь в том, что он себя проверил.

Публикация состоялась в 1684 году: статья в лейпцигском журнале «Acta Eruditorum» с длинным названием «Nova methodus pro maximis et minimis» — «Новый метод для нахождения наибольших и наименьших значений». Шесть страниц, на которых были собраны все правила этого урока: дифференциал суммы, разности, произведения, частного и степени. Никаких доказательств Лейбниц не привёл — он писал в жанре «вот рецепт, пользуйтесь», и современники жаловались, что статья скорее загадка, чем изложение. Но рецепт работал, и за десять лет братья Бернулли, а следом Лопиталь превратили эти шесть страниц в целое исчисление. Параллельно и независимо тем же самым владел Исаак Ньютон — его «флюксии» появились раньше, около 1666 года, но опубликованы были позже, и последовавший спор о приоритете на сто лет рассорил английскую и континентальную математику.

Мостик в сегодня оказался неожиданно прямым. В 1964 году программист Роберт Уэнгерт опубликовал заметку на две страницы: если разложить вычисление функции на последовательность элементарных операций и к каждой применить соответствующее правило дифференцирования, компьютер сможет считать производные точно — не приближённо, как при численном дифференцировании, и без символьного раздувания формул. Идею несколько раз забывали и переоткрывали заново; в 1970-х Сеппо Линнаинмаа описал обратный режим, в 1986-м Румельхарт, Хинтон и Уильямс применили его к нейросетям под именем backpropagation, а в 2015-2018 годах он стал сердцем всех фреймворков глубокого обучения. То, что сейчас крутится в каждом дата-центре мира, — это правила Лейбница 1684 года, применённые к графу из миллиардов узлов.


Линейность: сумма, разность и константный множитель

Интуиция: независимые вклады складываются

Представь бассейн, в который льют две трубы. Первая даёт 30 литров в минуту, вторая — 20. Сколько прибывает всего? Пятьдесят литров в минуту — тут даже думать не о чем. Скорости просто складываются, потому что трубы не мешают друг другу: каждая приносит свою воду независимо.

С производными то же самое. Если $y = u(x) + v(x)$, то $y$ — это «суммарный уровень», а $u'$ и $v'$ — скорости, с которыми растут вклады. Раз вклады складываются в каждый момент, складываются и скорости их изменения.

С константным множителем — та же логика, но про масштаб. Если каждый литр из трубы теперь считать в стаканах (умножили на 5), то и скорость подачи вырастет ровно в 5 раз. Постоянный множитель не влияет на характер изменения, он только растягивает шкалу — и потому спокойно выходит за знак производной.

Определение (правило суммы): Если функции $u(x)$ и $v(x)$ дифференцируемы в точке $x$, то их сумма и разность тоже дифференцируемы в этой точке, причём

$$(u \pm v)' = u' \pm v'.$$

Давай разберёмся, откуда это берётся. Возьмём $s(x) = u(x) + v(x)$ и запишем разностное отношение — то самое, из урока 133:

$$\frac{s(x+h) - s(x)}{h} = \frac{\big[u(x+h) + v(x+h)\big] - \big[u(x) + v(x)\big]}{h}.$$

Переставим слагаемые в числителе, сгруппировав отдельно всё про $u$ и отдельно всё про $v$:

$$= \frac{\big[u(x+h) - u(x)\big] + \big[v(x+h) - v(x)\big]}{h} = \frac{u(x+h) - u(x)}{h} + \frac{v(x+h) - v(x)}{h}.$$

Слева стоит разностное отношение для суммы, справа — сумма двух разностных отношений. Теперь устремляем $h \to 0$. По теореме о пределе суммы (урок 131) предел суммы равен сумме пределов, если оба предела существуют. Они существуют — это ровно условие дифференцируемости $u$ и $v$. Получаем $s'(x) = u'(x) + v'(x)$. Для разности всё то же самое со знаком минус.

Определение (правило константного множителя): Если функция $u(x)$ дифференцируема в точке $x$, а $C$ — постоянное число, то

$$(C \cdot u)' = C \cdot u'.$$

Вывод ещё короче:

$$\frac{C\,u(x+h) - C\,u(x)}{h} = C \cdot \frac{u(x+h) - u(x)}{h} \xrightarrow[h \to 0]{} C \cdot u'(x),$$

потому что постоянный множитель выносится за знак предела.

Два этих правила вместе математики называют линейностью производной и записывают одной формулой:

$$\big(\alpha u + \beta v\big)' = \alpha u' + \beta v'$$

для любых чисел $\alpha, \beta$. Слово «линейность» тут не украшение: производная — это оператор, который действует на функции, и он ведёт себя так же, как умножение на матрицу действует на векторы. Если тебе это пока ни о чём не говорит — просто запомни, что сумма и константа проходят сквозь штрих беспрепятственно. Дальше выяснится, что произведение и частное так не умеют.

Примеры с разбором

Пример 1 (простой). Найти производную $f(x) = x^3 + x^2$.

Обе производные слагаемых мы добыли в уроке 133 по определению: $(x^3)' = 3x^2$ и $(x^2)' = 2x$. По правилу суммы:

$$f'(x) = (x^3)' + (x^2)' = 3x^2 + 2x.$$

Заметь, сколько работы это сэкономило: считать по определению производную $x^3 + x^2$ — значит раскрывать $(x+h)^3 + (x+h)^2$ и сокращать. Мы же просто сложили два готовых ответа.

Пример 2 (средний). Найти производную $f(x) = 5x^3 - 2x^2 + 7x - 4$.

Шаг 1. Разбиваем на слагаемые по правилу суммы и разности:

$$f'(x) = (5x^3)' - (2x^2)' + (7x)' - (4)'.$$

Шаг 2. В каждом слагаемом выносим числовой множитель:

$$= 5\,(x^3)' - 2\,(x^2)' + 7\,(x)' - (4)'.$$

Шаг 3. Подставляем известные производные: $(x^3)' = 3x^2$, $(x^2)' = 2x$, $(x)' = 1$, $(4)' = 0$:

$$f'(x) = 5 \cdot 3x^2 - 2 \cdot 2x + 7 \cdot 1 - 0 = 15x^2 - 4x + 7.$$

Свободный член $-4$ исчез бесследно — и это правильно: сдвиг графика вверх или вниз не меняет его наклон ни в одной точке.

Пример 3 (сложный). Найти производную $f(x) = 3\sqrt{x} - \dfrac{4}{x} + \dfrac{x^2}{2}$.

Шаг 1. Приведём каждое слагаемое к виду «число $\times$ известная функция». Третье слагаемое — это $\frac{1}{2} \cdot x^2$, второе — $-4 \cdot \frac{1}{x}$:

$$f(x) = 3 \cdot \sqrt{x} + (-4) \cdot \frac{1}{x} + \frac{1}{2} \cdot x^2.$$

Шаг 2. Применяем линейность:

$$f'(x) = 3 \cdot (\sqrt{x})' - 4 \cdot \left(\frac{1}{x}\right)' + \frac{1}{2} \cdot (x^2)'.$$

Шаг 3. Подставляем табличные значения из урока 133: $(\sqrt{x})' = \dfrac{1}{2\sqrt{x}}$, $\left(\dfrac{1}{x}\right)' = -\dfrac{1}{x^2}$, $(x^2)' = 2x$:

$$f'(x) = 3 \cdot \frac{1}{2\sqrt{x}} - 4 \cdot \left(-\frac{1}{x^2}\right) + \frac{1}{2} \cdot 2x = \frac{3}{2\sqrt{x}} + \frac{4}{x^2} + x.$$

Шаг 4. Проверка знака. Второе слагаемое исходной функции — это $-\frac{4}{x}$, функция убывающая при $x>0$ со знаком минус впереди... получилось $+\frac{4}{x^2}$, то есть положительный вклад. Логично: при $x > 0$ функция $-\frac{4}{x}$ растёт (от $-\infty$ к нулю), значит её производная должна быть положительной. ✅

Ответ: $f'(x) = \dfrac{3}{2\sqrt{x}} + \dfrac{4}{x^2} + x$, при $x > 0$.

Почему это важно

Линейность — это то, что делает возможным разделение труда в дифференцировании. Функция потерь нейросети почти всегда имеет вид суммы: $L = \frac{1}{N}\sum_{i=1}^{N} \ell(y_i, \hat y_i)$ — среднее по всем объектам батча. Правило суммы и константного множителя говорят: градиент такой суммы — это среднее градиентов по отдельным объектам. Отсюда напрямую следует вся идея мини-батчей: можно посчитать градиент на случайной подвыборке, и он будет несмещённой оценкой полного градиента. Без линейности стохастический градиентный спуск был бы невозможен.

То же самое с регуляризацией. Когда к лоссу добавляют штраф $\lambda \|w\|^2$, никто не пересчитывает производную всей конструкции заново — просто к градиенту исходного лосса прибавляют градиент штрафа, $2\lambda w$. Это и есть правило суммы в действии, и именно поэтому в коде оптимизатора weight decay реализуется одной строчкой grad += lambda * w.


Правило произведения

Интуиция: растущий прямоугольник

Представь прямоугольный участок земли. Одна его сторона — $u$, другая — $v$, площадь $S = uv$. Теперь обе стороны начинают расти: за время $h$ первая прибавила $\Delta u$, вторая — $\Delta v$. На сколько выросла площадь?

Нарисуй картинку. К исходному прямоугольнику приросли три куска:

  • горизонтальная полоска вдоль стороны $u$ — её площадь $u \cdot \Delta v$;
  • вертикальная полоска вдоль стороны $v$ — её площадь $v \cdot \Delta u$;
  • маленький угловой квадратик в правом верхнем углу — его площадь $\Delta u \cdot \Delta v$.

То есть $\Delta S = u\,\Delta v + v\,\Delta u + \Delta u\,\Delta v$. Вот здесь и прячется ответ на вопрос, почему производная произведения устроена не так, как хочется. Скорость роста площади — это $\frac{\Delta S}{h}$:

$$\frac{\Delta S}{h} = u \cdot \frac{\Delta v}{h} + v \cdot \frac{\Delta u}{h} + \frac{\Delta u}{h} \cdot \Delta v.$$

Первые два слагаемых при $h \to 0$ дают $u v' + v u'$. А третье — это $u'$, умноженное на $\Delta v$, а $\Delta v$ само стремится к нулю (функция $v$ непрерывна, раз она дифференцируема). Поэтому угловой квадратик исчезает: он второго порядка малости, площадь $\Delta u \cdot \Delta v$ убывает как $h^2$, а делим мы всего на $h$.

Вот это и есть содержательный ответ на вопрос «почему не $u'v'$». Слагаемого $u'v'$ в приросте площади просто нет — вернее, есть, но оно и есть тот самый угловой квадратик, который в пределе умирает. Живут две полоски, и каждая из них — «одна сторона растёт, вторая стоит на месте».

Правило (производная произведения): Если функции $u(x)$ и $v(x)$ дифференцируемы в точке $x$, то их произведение тоже дифференцируемо в этой точке, причём

$$(u v)' = u' v + u v'.$$

🚨 Важнейшее предупреждение урока: $(uv)' \neq u'v'$. Это не описка и не придирка — это самая частая ошибка во всей теме дифференцирования. Проверь на пальцах: $u = x$, $v = x$, произведение $uv = x^2$. Настоящая производная равна $2x$. А $u'v' = 1 \cdot 1 = 1$. Двойка против единицы — совпадение случается только в точке $x = \frac12$. Именно эту ошибку допустил Лейбниц в 1675 году, и он был последним человеком, которому она простительна.

Вывод через предел

Приём, который здесь используется, стоит запомнить отдельно: прибавим и вычтем одно и то же. Он всплывает в анализе постоянно.

Обозначим $p(x) = u(x)\,v(x)$ и запишем разностное отношение:

$$\frac{p(x+h) - p(x)}{h} = \frac{u(x+h)v(x+h) - u(x)v(x)}{h}.$$

В числителе меняются сразу оба множителя, и разделить вклады напрямую не выходит. Вставим посередине искусственное слагаемое $u(x+h)\,v(x)$ — один раз со знаком плюс, один раз со знаком минус, так что сумма не изменится:

$$= \frac{u(x+h)v(x+h) - u(x+h)v(x) + u(x+h)v(x) - u(x)v(x)}{h}.$$

Теперь группируем: в первой паре общий множитель $u(x+h)$, во второй — $v(x)$:

$$= u(x+h) \cdot \frac{v(x+h) - v(x)}{h} + v(x) \cdot \frac{u(x+h) - u(x)}{h}.$$

Осталось перейти к пределу при $h \to 0$. Второй сомножитель первого слагаемого стремится к $v'(x)$, второй сомножитель второго — к $u'(x)$. А множитель $u(x+h)$ стремится к $u(x)$ — вот здесь работает теорема из урока 133: дифференцируемая функция непрерывна. Без неё вывод бы не прошёл. Итого:

$$p'(x) = u(x)v'(x) + v(x)u'(x).$$

Сравни с картинкой про прямоугольник: $u \cdot v'$ — горизонтальная полоска, $v \cdot u'$ — вертикальная. Угловой квадратик остался в пределе. Формула и геометрия говорят ровно одно и то же.

Следствие для трёх множителей. Применив правило дважды, получаем симметричную формулу:

$$(uvw)' = u'vw + uv'w + uvw'.$$

Читается она просто: «дифференцируем по очереди каждый множитель, остальные не трогаем, результаты складываем». Для $n$ множителей будет $n$ слагаемых по тому же принципу.

Примеры с разбором

Пример 1 (простой). Найти производную $f(x) = x^2(x+3)$.

Шаг 1. Назначаем множители: $u = x^2$, $v = x + 3$.

Шаг 2. Считаем производные каждого: $u' = 2x$, $v' = 1$.

Шаг 3. Подставляем в формулу:

$$f'(x) = 2x \cdot (x+3) + x^2 \cdot 1 = 2x^2 + 6x + x^2 = 3x^2 + 6x.$$

Проверка. Раскроем скобки в исходной функции: $f(x) = x^3 + 3x^2$. По линейности $f'(x) = 3x^2 + 6x$ ✅ Сошлось.

Ответ: $f'(x) = 3x^2 + 6x$.

Пример 2 (средний). Найти производную $f(x) = (2x^2 - 1)(3x + 5)$.

Шаг 1. $u = 2x^2 - 1$, $v = 3x + 5$; $u' = 4x$, $v' = 3$.

Шаг 2.

$$f'(x) = 4x(3x+5) + (2x^2-1)\cdot 3.$$

Шаг 3. Раскрываем и приводим подобные:

$$f'(x) = 12x^2 + 20x + 6x^2 - 3 = 18x^2 + 20x - 3.$$

Проверка. Перемножим исходные скобки: $f(x) = 6x^3 + 10x^2 - 3x - 5$, производная $18x^2 + 20x - 3$ ✅

Ответ: $f'(x) = 18x^2 + 20x - 3$.

Обрати внимание: здесь раскрыть скобки было не сложнее, чем применять правило. Так бывает всегда, когда оба множителя — многочлены низкой степени. Правило произведения по-настоящему выигрывает там, где раскрыть скобки нельзя или очень дорого.

Пример 3 (сложный). Найти производную $f(x) = (x^2+1)\sqrt{x}$ при $x > 0$.

Вот случай, где «раскрыть скобки» не проходит: корень с многочленом не перемножишь в столбик.

Шаг 1. $u = x^2 + 1$, $v = \sqrt{x}$. Производные: $u' = 2x$, а $v' = \dfrac{1}{2\sqrt{x}}$ — эту формулу мы честно вывели по определению в уроке 133.

Шаг 2. По правилу произведения:

$$f'(x) = 2x \cdot \sqrt{x} + (x^2+1) \cdot \frac{1}{2\sqrt{x}}.$$

Шаг 3. Приводим к общему знаменателю $2\sqrt{x}$. Первое слагаемое: $2x\sqrt{x} = \dfrac{2x \cdot \sqrt{x} \cdot 2\sqrt{x}}{2\sqrt{x}} = \dfrac{4x^2}{2\sqrt{x}}$ (использовали $\sqrt{x}\cdot\sqrt{x} = x$):

$$f'(x) = \frac{4x^2 + x^2 + 1}{2\sqrt{x}} = \frac{5x^2 + 1}{2\sqrt{x}}.$$

Шаг 4. Проверка другим способом. Внесём корень в скобку: $f(x) = x^2 \cdot x^{1/2} + x^{1/2} = x^{5/2} + x^{1/2}$. Если поверить формуле степени (её мы докажем через два раздела), $f'(x) = \frac52 x^{3/2} + \frac12 x^{-1/2} = \dfrac{5x^2}{2\sqrt{x}} + \dfrac{1}{2\sqrt{x}} = \dfrac{5x^2+1}{2\sqrt{x}}$ ✅ Два независимых пути, один ответ.

Ответ: $f'(x) = \dfrac{5x^2+1}{2\sqrt{x}}$ при $x > 0$.

Почему это важно

Правило произведения — это то место, где производная перестаёт быть «просто линейной операцией» и приобретает характер. Из него растёт всё дальнейшее: правило частного получается из него плюс производная обратной величины, формула степени доказывается индукцией по нему, а интегрирование по частям (уроки 145–150) — это правило произведения, прочитанное справа налево.

В машинном обучении оно встречается буквально в каждом слое. Полносвязный слой — это $y = W x$, произведение матрицы весов на вектор входа. Когда фреймворк считает градиент, он применяет матричную версию того же правила: градиент по $W$ содержит множитель $x$, а градиент по $x$ содержит множитель $W$. «Продифференцировали один множитель, второй оставили» — ровно та же структура $u'v + uv'$, только в матричной записи. Из этого же правила следует, почему в gated-архитектурах (LSTM, GRU, механизм внимания) градиент течёт по двум путям: если $y = g \cdot c$, где $g$ — вентиль, а $c$ — состояние, то градиент уходит и в вентиль, и в состояние. Одно умножение — две ветки в обратном проходе.


Правило частного

Интуиция: доля меняется от двух причин

Представь, что ты следишь за долей рынка своей компании: $D = \dfrac{u}{v}$, где $u$ — твои продажи, $v$ — продажи всего рынка. Доля может вырасти по двум разным причинам: ты стал продавать больше (растёт $u$) или рынок просел (падает $v$). Значит, скорость изменения доли должна складываться из двух вкладов, и вклад знаменателя обязан входить с обратным знаком — рост рынка при неизменных твоих продажах долю уменьшает.

Это уже почти вся формула: в числителе будет $u'v$ (заслуга числителя, со знаком плюс) минус $uv'$ (влияние знаменателя, со знаком минус). Остаётся понять, откуда берётся $v^2$ в знаменателе, и тут работает та же логика: чем больше рынок, тем меньше он шевелится от одного и того же абсолютного прироста. Один делитель $v$ идёт «за само деление», второй — за то, что реакция на изменение знаменателя ослабевает пропорционально его величине.

Правило (производная частного): Если функции $u(x)$ и $v(x)$ дифференцируемы в точке $x$ и $v(x) \neq 0$, то частное $\dfrac{u}{v}$ дифференцируемо в этой точке, причём

$$\left(\frac{u}{v}\right)' = \frac{u'v - uv'}{v^2}.$$

Условие $v(x) \neq 0$ — не формальность. В точке, где знаменатель обращается в ноль, функции просто нет: у $\frac{1}{x}$ в нуле разрыв, никакой производной там быть не может. Формула же имеет право применяться только там, где обе функции определены и знаменатель не занулился.

Вывод через предел

Тот же приём «прибавим и вычтем». Обозначим $q(x) = \dfrac{u(x)}{v(x)}$ и запишем разность через общий знаменатель:

$$q(x+h) - q(x) = \frac{u(x+h)}{v(x+h)} - \frac{u(x)}{v(x)} = \frac{u(x+h)\,v(x) - u(x)\,v(x+h)}{v(x+h)\,v(x)}.$$

Теперь займёмся числителем: вставим в него $\pm\, u(x)v(x)$:

$$u(x+h)v(x) - u(x)v(x) + u(x)v(x) - u(x)v(x+h) = v(x)\big[u(x+h)-u(x)\big] - u(x)\big[v(x+h)-v(x)\big].$$

Делим всё выражение на $h$:

$$\frac{q(x+h)-q(x)}{h} = \frac{v(x)\cdot \dfrac{u(x+h)-u(x)}{h} - u(x)\cdot \dfrac{v(x+h)-v(x)}{h}}{v(x+h)\,v(x)}.$$

При $h \to 0$ в числителе получаем $v(x)u'(x) - u(x)v'(x)$, а в знаменателе $v(x+h) \to v(x)$ (снова по непрерывности), то есть $v(x)^2$. Ровно то, что обещано:

$$q'(x) = \frac{u'(x)v(x) - u(x)v'(x)}{v(x)^2}.$$

Частный случай, который стоит запомнить отдельно. Возьмём $u \equiv 1$, тогда $u' = 0$:

$$\left(\frac{1}{v}\right)' = \frac{0 \cdot v - 1 \cdot v'}{v^2} = -\frac{v'}{v^2}.$$

Проверим на знакомом: $v = x$, $v' = 1$, получаем $\left(\frac{1}{x}\right)' = -\frac{1}{x^2}$ — в точности формула из урока 133, добытая там через предел за полстраницы ✅

Мнемоника: минус не переставишь

Главная опасность правила частного — порядок слагаемых в числителе. В правиле произведения слагаемые складываются, и переставить их местами безобидно: $u'v + uv' = uv' + u'v$. В правиле частного стоит минус, и перестановка меняет знак всего ответа на противоположный. Ошибка в знаке производной — это перепутанные возрастание и убывание, минимум вместо максимума и полностью неверное исследование функции.

Три способа не перепутать, выбирай любой:

  1. По алфавиту и сверху вниз. Числитель начинается с производной верхней функции: «верх штрих на низ, минус верх на низ штрих, всё на низ в квадрате».
  2. Через частный случай. Если сомневаешься, подставь $u = 1$ и посмотри, получилась ли известная формула $-\frac{v'}{v^2}$. При перепутанном порядке выйдет $+\frac{v'}{v^2}$ — и проверка на $\frac{1}{x}$ мгновенно покажет неверный знак.
  3. Через прирост доли. Рост числителя долю увеличивает — значит $u'v$ с плюсом. Рост знаменателя уменьшает — значит $uv'$ с минусом.

Примеры с разбором

Пример 1 (простой). Найти производную $f(x) = \dfrac{x}{x+1}$.

Шаг 1. $u = x$, $v = x+1$; $u' = 1$, $v' = 1$.

Шаг 2.

$$f'(x) = \frac{1 \cdot (x+1) - x \cdot 1}{(x+1)^2} = \frac{x + 1 - x}{(x+1)^2} = \frac{1}{(x+1)^2}.$$

Проверка смысла. Производная всюду положительна — функция возрастает на каждом из интервалов $(-\infty; -1)$ и $(-1; +\infty)$. Это правда: $\frac{x}{x+1} = 1 - \frac{1}{x+1}$, а $-\frac{1}{x+1}$ растёт слева и справа от разрыва ✅

Ответ: $f'(x) = \dfrac{1}{(x+1)^2}$, $x \neq -1$.

Пример 2 (средний). Найти производную $f(x) = \dfrac{2x-1}{x^2+3}$.

Шаг 1. $u = 2x-1$, $v = x^2+3$; $u' = 2$, $v' = 2x$. Знаменатель нигде не обращается в ноль ($x^2+3 \geq 3$), значит формула работает на всей прямой.

Шаг 2.

$$f'(x) = \frac{2(x^2+3) - (2x-1)\cdot 2x}{(x^2+3)^2}.$$

Шаг 3. Раскрываем числитель аккуратно, следя за минусом перед второй скобкой:

$$2x^2 + 6 - (4x^2 - 2x) = 2x^2 + 6 - 4x^2 + 2x = -2x^2 + 2x + 6.$$$$f'(x) = \frac{-2x^2+2x+6}{(x^2+3)^2} = \frac{-2(x^2-x-3)}{(x^2+3)^2}.$$

Ответ: $f'(x) = \dfrac{-2x^2+2x+6}{(x^2+3)^2}$.

Пример 3 (сложный). Найти производную $f(x) = \dfrac{x^2+1}{x^2-1}$ и указать точки, где касательная горизонтальна.

Шаг 1. $u = x^2+1$, $v = x^2-1$; $u' = 2x$, $v' = 2x$. Область определения: $x \neq \pm 1$.

Шаг 2.

$$f'(x) = \frac{2x(x^2-1) - (x^2+1)\cdot 2x}{(x^2-1)^2}.$$

Шаг 3. Не спеши раскрывать — вынеси общий множитель $2x$:

$$= \frac{2x\big[(x^2-1) - (x^2+1)\big]}{(x^2-1)^2} = \frac{2x \cdot (-2)}{(x^2-1)^2} = \frac{-4x}{(x^2-1)^2}.$$

Шаг 4. Касательная горизонтальна там, где $f'(x) = 0$. Дробь равна нулю, когда числитель ноль, а знаменатель нет: $-4x = 0 \Rightarrow x = 0$. Точка $x=0$ в область определения входит, $f(0) = \frac{1}{-1} = -1$.

Шаг 5. Проверка знаком. При $x > 0$ (и $x \neq 1$) производная отрицательна, при $x<0$ — положительна. То есть функция симметрична относительно оси $Oy$ — а она и правда чётная, ведь и числитель, и знаменатель зависят только от $x^2$ ✅

Ответ: $f'(x) = \dfrac{-4x}{(x^2-1)^2}$; горизонтальная касательная одна — в точке $(0; -1)$.

Почему это важно

Правило частного — это инструмент для всего, что записывается как отношение: скорость на единицу чего-то, доля, эффективность, нормированная величина. В машинном обучении отношения повсюду. Batch normalization делит на стандартное отклонение батча, и градиент через эту операцию считается правилом частного — именно поэтому в её обратном проходе появляются «лишние» слагаемые, из-за которых нормализация влияет на градиенты всех объектов батча сразу. Softmax — это дробь $\frac{e^{z_i}}{\sum_j e^{z_j}}$, и характерная формула её производной $p_i(1-p_i)$ добывается именно правилом частного. Метрика $F_1 = \frac{2PR}{P+R}$ — тоже дробь, и если ты хочешь понять, насколько $F_1$ чувствительна к росту precision при фиксированном recall, ты берёшь производную по $P$ по этому самому правилу.


Степень: от натурального показателя к любому

Одна формула на все случаи

К этому моменту у нас накопился зоопарк: $(x)' = 1$, $(x^2)' = 2x$, $(x^3)' = 3x^2$, $\left(\frac1x\right)' = -\frac{1}{x^2}$, $(\sqrt x)' = \frac{1}{2\sqrt x}$. Пять формул, добытых поодиночке. Сейчас выяснится, что это одна формула, записанная пять раз.

Правило (производная степени): Для любого показателя $n$ и любого $x$ из области определения

$$\big(x^n\big)' = n\,x^{n-1}.$$

Правило звучит так: показатель спускается вниз множителем, а сам уменьшается на единицу. Проверим на нашем зоопарке.

  • $n=1$: $(x^1)' = 1\cdot x^0 = 1$ ✅
  • $n=2$: $(x^2)' = 2x^1 = 2x$ ✅
  • $n=3$: $(x^3)' = 3x^2$ ✅
  • $n=-1$: $\left(\frac1x\right)' = (x^{-1})' = -1 \cdot x^{-2} = -\frac{1}{x^2}$ ✅
  • $n=\frac12$: $(\sqrt x)' = \frac12 x^{-1/2} = \frac{1}{2\sqrt x}$ ✅

Пять из пяти. Теперь докажем это по-настоящему — и не для того, чтобы поверить, а чтобы понять, откуда берётся именно такой вид.

Доказательство для натурального $n$: индукция по правилу произведения

База. При $n=1$ формула $(x)' = 1 \cdot x^0 = 1$ верна — это производная из урока 133.

Шаг индукции. Пусть формула доказана для показателя $n$, то есть $(x^n)' = nx^{n-1}$. Запишем следующую степень как произведение: $x^{n+1} = x \cdot x^n$. По правилу произведения:

$$\big(x^{n+1}\big)' = (x)' \cdot x^n + x \cdot \big(x^n\big)' = 1 \cdot x^n + x \cdot n x^{n-1} = x^n + n x^{n} = (n+1)x^{n}.$$

А это и есть формула для показателя $n+1$: множитель спереди равен новому показателю, степень на единицу меньше. Индукция замкнулась — формула верна для всех натуральных $n$. ∎

Красота этого доказательства в том, что оно ничего не считает: вся работа сделана правилом произведения, а индукция просто протаскивает результат через все натуральные числа.

Второй способ, через бином Ньютона. Тот же результат можно получить лобовой атакой из определения:

$$(x+h)^n = x^n + n x^{n-1} h + C_n^2 x^{n-2} h^2 + \dots + h^n.$$

Вычитаем $x^n$, делим на $h$:

$$\frac{(x+h)^n - x^n}{h} = n x^{n-1} + C_n^2 x^{n-2}h + \dots + h^{n-1}.$$

Все слагаемые, кроме первого, содержат множитель $h$ и при $h \to 0$ обращаются в ноль. Остаётся $nx^{n-1}$. Этот вывод объясняет формулу с другой стороны: $nx^{n-1}$ — это коэффициент при первой степени $h$ в разложении, то есть линейная часть приращения. Производная всегда есть коэффициент при линейной части — это самая глубокая формулировка того, что вообще такое производная.

Отрицательные показатели: через правило частного

Пусть $n = -m$, где $m > 0$. Тогда $x^n = \dfrac{1}{x^m}$, и работает частный случай правила частного:

$$\left(\frac{1}{x^m}\right)' = -\frac{(x^m)'}{(x^m)^2} = -\frac{m x^{m-1}}{x^{2m}} = -m\,x^{m-1-2m} = -m\,x^{-m-1}.$$

Подставим обратно $n = -m$: получилось $n \cdot x^{n-1}$, ведь $-m-1 = n-1$. Формула распространилась на все целые отрицательные показатели без единого нового предела. ✅

Осторожно со знаком. При отрицательном показателе новый показатель становится ещё более отрицательным: $(x^{-3})' = -3x^{-4}$, а не $-3x^{-2}$. Вычитание единицы из $-3$ даёт $-4$. Половина ошибок в этой теме — именно здесь: рука по привычке уменьшает модуль вместо того, чтобы уменьшать само число.

Дробные показатели: снова правило произведения

Возьмём $y = x^{1/q}$, где $q$ — натуральное. По определению корня $y^q = x$. Продифференцируем обе части. Слева стоит произведение $q$ одинаковых множителей, и по правилу для нескольких множителей его производная равна $q\,y^{q-1}y'$ (каждый из $q$ множителей по очереди даёт $y'$, остальные $q-1$ остаются на месте). Справа производная равна $1$:

$$q\,y^{q-1}\,y' = 1 \quad \Rightarrow \quad y' = \frac{1}{q\,y^{q-1}} = \frac{1}{q\,\big(x^{1/q}\big)^{q-1}} = \frac{1}{q}\,x^{\frac{1}{q} - 1}.$$

И это опять $n x^{n-1}$ при $n = \frac1q$. ✅

Сверка с уроком 133. При $q = 2$ получаем $(\sqrt x)' = \frac12 x^{-1/2} = \dfrac{1}{2\sqrt x}$ — в точности та формула, которую мы там мучительно выводили домножением на сопряжённое. Тот вывод занимал полстраницы, этот — две строки. ✅

Для кубического корня: $(\sqrt[3]{x})' = \frac13 x^{-2/3} = \dfrac{1}{3\sqrt[3]{x^2}}$.

Общий дробный показатель $\frac{p}{q}$ разбирается той же техникой в связке с цепным правилом — это урок 137. Пока держи в голове факт: формула $(x^n)' = nx^{n-1}$ верна для любого вещественного $n$, и всё, что мы будем делать в этом уроке, ей полностью подчиняется.

Примеры с разбором

Пример 1 (простой). Найти производную $f(x) = x^7$.

Показатель вниз, степень на единицу меньше: $f'(x) = 7x^6$. Тот же механизм работает и для $x^{100}$: производная $100x^{99}$. Считать по определению бином сотой степени никто не будет — и не надо.

Ответ: $f'(x) = 7x^6$.

Пример 2 (средний). Найти производную $f(x) = \dfrac{1}{x^3} + \dfrac{5}{x}$.

Шаг 1. Переписываем всё через степени: $f(x) = x^{-3} + 5x^{-1}$. Это ключевой ход — пока в записи стоят дроби, соблазн применить правило частного велик, а нужды в нём нет.

Шаг 2. По линейности и правилу степени:

$$f'(x) = -3x^{-4} + 5 \cdot (-1) x^{-2} = -3x^{-4} - 5x^{-2}.$$

Шаг 3. Возвращаемся к привычной записи:

$$f'(x) = -\frac{3}{x^4} - \frac{5}{x^2}.$$

Проверка знаком. При $x>0$ обе исходные функции убывают, значит производная обязана быть отрицательной — так и есть ✅

Ответ: $f'(x) = -\dfrac{3}{x^4} - \dfrac{5}{x^2}$, $x \neq 0$.

Пример 3 (сложный). Найти производную $f(x) = \dfrac{2}{x^5} - 3\sqrt{x} + \dfrac{x^3}{4} - \dfrac{1}{2\sqrt{x}}$ при $x>0$.

Шаг 1. Переводим каждое слагаемое в форму «число $\times$ степень»:

$$f(x) = 2x^{-5} - 3x^{1/2} + \tfrac14 x^{3} - \tfrac12 x^{-1/2}.$$

Шаг 2. Дифференцируем почленно:

$$f'(x) = 2 \cdot (-5)x^{-6} - 3 \cdot \tfrac12 x^{-1/2} + \tfrac14 \cdot 3x^{2} - \tfrac12 \cdot \left(-\tfrac12\right) x^{-3/2}.$$

Шаг 3. Считаем коэффициенты, особенно внимательно последний: минус на минус даёт плюс.

$$f'(x) = -10x^{-6} - \tfrac32 x^{-1/2} + \tfrac34 x^{2} + \tfrac14 x^{-3/2}.$$

Шаг 4. Записываем в человеческом виде:

$$f'(x) = -\frac{10}{x^6} - \frac{3}{2\sqrt{x}} + \frac{3x^2}{4} + \frac{1}{4x\sqrt{x}}.$$

Ответ: $f'(x) = -\dfrac{10}{x^6} - \dfrac{3}{2\sqrt{x}} + \dfrac{3x^2}{4} + \dfrac{1}{4x\sqrt{x}}$, $x>0$.

Почему это важно

Формула степени — самый используемый инструмент дифференцирования вообще. Любой многочлен, любая рациональная функция, любой корень сводятся к ней. В прикладных задачах степенные зависимости встречаются постоянно: сопротивление воздуха растёт как $v^2$, площадь как $r^2$, объём как $r^3$, время работы алгоритма как $n^{\log_2 7}$ — и всякий раз, когда нужно понять «на сколько изменится результат, если чуть-чуть подкрутить параметр», ответ даёт $nx^{n-1}$.

В машинном обучении степень с показателем $2$ — это половина всей теории. Квадратичный лосс $\frac12(y-\hat y)^2$, регуляризатор $\|w\|^2 = \sum w_i^2$, дисперсия, расстояние — везде квадрат, а его производная линейна. Именно это делает квадратичные функции удобными: их градиент — линейная функция параметров, и уравнение «градиент равен нулю» решается точно, без итераций. Отсюда и аналитическая формула метода наименьших квадратов. Стоит заменить квадрат на модуль — и производная перестаёт быть непрерывной, аналитическое решение исчезает, приходится идти численно. Разница между «удобным» и «неудобным» лоссом в конечном счёте упирается в поведение $nx^{n-1}$.


Многочлен дифференцируется в уме

Техника: коэффициент вниз, степень минус один

Собери вместе линейность и правило степени — и получишь способ дифференцировать многочлен со скоростью письма. Правило одно, и оно работает на каждом слагаемом независимо:

$$\big(a x^{k}\big)' = a\,k\,x^{k-1}.$$

Словами: старый коэффициент умножаем на показатель, показатель уменьшаем на единицу. Свободный член исчезает (его показатель равен нулю, множитель $0$ съедает всё), линейное слагаемое $ax$ превращается в константу $a$.

Прогоним на длинном примере, не расписывая шаги:

$$f(x) = 4x^5 - 7x^4 + x^3 - 9x^2 + 2x - 11$$$$f'(x) = 20x^4 - 28x^3 + 3x^2 - 18x + 2.$$

Проследи глазами по слагаемым: $4\cdot5=20$, $7\cdot4=28$, $1\cdot3=3$, $9\cdot2=18$, $2\cdot1=2$, $11 \to 0$. Каждый коэффициент умножен на показатель, каждая степень опустилась на ступеньку. Через десяток примеров это делается устно.

Правило (производная многочлена): Производная многочлена степени $n$ есть многочлен степени $n-1$:

$$\big(a_n x^n + a_{n-1}x^{n-1} + \dots + a_1 x + a_0\big)' = n a_n x^{n-1} + (n-1)a_{n-1}x^{n-2} + \dots + a_1.$$

Отсюда сразу два полезных факта для самопроверки. Во-первых, степень падает ровно на единицу — если ты продифференцировал кубический многочлен и получил кубический, где-то ошибка. Во-вторых, количество слагаемых уменьшается ровно на одно, потому что свободный член пропадает, а остальные остаются на местах.

Рациональные функции: два маршрута

Отношение двух многочленов можно дифференцировать двумя способами, и выбирать стоит осознанно.

Маршрут 1 — упростить, потом дифференцировать. Если знаменатель одночлен, деление выполняется почленно и правило частного не нужно вообще:

$$\frac{6x^4 - 3x^2 + x}{3x^2} = 2x^2 - 1 + \frac{1}{3}x^{-1} \quad\Rightarrow\quad \left(\cdot\right)' = 4x - \frac{1}{3}x^{-2} = 4x - \frac{1}{3x^2}.$$

Это в разы быстрее и безопаснее, чем гонять правило частного с квадратом знаменателя.

Маршрут 2 — правило частного. Если знаменатель настоящий многочлен, разделить нацело не выйдет, и приходится честно применять формулу.

Примеры с разбором

Пример 1 (простой). Найти производную $f(x) = x^4 - 5x^2 + 6$ и точки, где касательная горизонтальна.

$f'(x) = 4x^3 - 10x$. Приравниваем к нулю: $2x(2x^2-5)=0$, откуда $x=0$ и $x = \pm\sqrt{2{,}5} \approx \pm 1{,}58$. Три точки — и это ровно то, что видно на графике «двугорбой» чётной функции: два минимума по краям и локальный максимум в нуле.

Ответ: $f'(x) = 4x^3-10x$; горизонтальная касательная при $x=0$ и $x = \pm\sqrt{2{,}5}$.

Пример 2 (средний). Найти производную $f(x) = \dfrac{x^3 + 4x^2 - x}{x}$ и сравнить два маршрута.

Маршрут упрощения. При $x \neq 0$ делим почленно: $f(x) = x^2 + 4x - 1$. Отсюда $f'(x) = 2x + 4$. Пять секунд.

Маршрут правила частного. $u = x^3+4x^2-x$, $v = x$; $u' = 3x^2+8x-1$, $v'=1$:

$$f'(x) = \frac{(3x^2+8x-1)\cdot x - (x^3+4x^2-x)\cdot 1}{x^2} = \frac{3x^3+8x^2-x-x^3-4x^2+x}{x^2} = \frac{2x^3+4x^2}{x^2} = 2x+4.$$

Тот же ответ, впятеро больше работы и вчетверо больше шансов ошибиться. Вывод: смотри на знаменатель до того, как хвататься за формулу.

Ответ: $f'(x) = 2x+4$ при $x \neq 0$.

Пример 3 (сложный). Найти производную $f(x) = \dfrac{3x^4 - 2x^2 + 7}{x^2+1}$ — та самая функция из начала урока, ради которой всё затевалось.

Напомню: по определению это заняло бы минут двадцать. Смотри, сколько занимает сейчас.

Шаг 1. Раскладываем на числитель и знаменатель:

$$u = 3x^4-2x^2+7, \qquad v = x^2+1.$$

Шаг 2. Дифференцируем каждый в уме по технике «коэффициент вниз»:

$$u' = 12x^3 - 4x, \qquad v' = 2x.$$

Знаменатель $x^2+1$ нигде не обращается в ноль, значит правило применимо на всей прямой.

Шаг 3. Подставляем в формулу частного:

$$f'(x) = \frac{(12x^3-4x)(x^2+1) - (3x^4-2x^2+7)\cdot 2x}{(x^2+1)^2}.$$

Шаг 4. Считаем первое произведение:

$$(12x^3-4x)(x^2+1) = 12x^5 + 12x^3 - 4x^3 - 4x = 12x^5 + 8x^3 - 4x.$$

Шаг 5. Считаем второе:

$$(3x^4-2x^2+7)\cdot 2x = 6x^5 - 4x^3 + 14x.$$

Шаг 6. Вычитаем — вот здесь главный риск потерять знак, поэтому расписываем каждое слагаемое:

$$12x^5 + 8x^3 - 4x - 6x^5 + 4x^3 - 14x = 6x^5 + 12x^3 - 18x.$$

Шаг 7. Собираем ответ и выносим общий множитель:

$$f'(x) = \frac{6x^5+12x^3-18x}{(x^2+1)^2} = \frac{6x\,(x^4+2x^2-3)}{(x^2+1)^2} = \frac{6x\,(x^2+3)(x^2-1)}{(x^2+1)^2}.$$

(Разложение сделано подстановкой $t = x^2$: $t^2+2t-3 = (t+3)(t-1)$.)

Шаг 8. Проверки.

  • Чётность. Исходная функция чётная (везде только $x^2$ и $x^4$), значит производная обязана быть нечётной. В ответе стоит нечётный множитель $6x$, умноженный на чётное выражение — нечётность на месте ✅
  • Значение в нуле. $f'(0)=0$. Для чётной функции, гладкой в нуле, это обязано быть так ✅
  • Критические точки. $f'(x)=0$ при $x=0$ и $x = \pm 1$ (множитель $x^2+3$ нулей не даёт). Проверим $x=1$ численно: $f(1) = \frac{3-2+7}{2} = 4$, $f(1{,}1) \approx \frac{8{,}972}{2{,}21} \approx 4{,}060$, $f(0{,}9) \approx \frac{7{,}348}{1{,}81} \approx 4{,}060$. Значение в точке меньше, чем по обе стороны, — это локальный минимум, и производная там действительно ноль ✅

Ответ: $f'(x) = \dfrac{6x(x^2+3)(x^2-1)}{(x^2+1)^2}$.

Двадцать минут превратились в две. Обещание из вступления закрыто.

Почему это важно

Многочлены — рабочая лошадь численных методов. Любую гладкую функцию на маленьком участке приближают многочленом (это будет ряд Тейлора в университетском блоке), и после такой замены задача «найти минимум» становится задачей «решить уравнение $f'(x)=0$ для многочлена». Полиномиальная регрессия, сплайны в графике и шрифтах, кривые Безье в дизайне, интерполяция табличных данных — везде производная многочлена считается миллионы раз в секунду, и считается она ровно техникой «коэффициент вниз, степень минус один».

Отдельная история — скорость. Дифференцирование многочлена степени $n$ требует $n$ умножений, тогда как одно только вычисление значения по схеме Горнера — тоже $n$. То есть производная стоит примерно столько же, сколько само значение функции. Это общий закон, и он неслучаен: автоматическое дифференцирование в обратном режиме даёт градиент по всем параметрам за время порядка двух-трёх вычислений самой функции. Именно поэтому обучение нейросети всего лишь в несколько раз дороже, чем прогон её вперёд.


Высшие производные

Производная производной

Производная $f'(x)$ — сама функция. Значит, её тоже можно продифференцировать. Результат называют второй производной и обозначают $f''(x)$.

Определение: Второй производной функции $f$ называется производная её производной: $f''(x) = \big(f'(x)\big)'$. Аналогично определяются третья $f'''=(f'')'$ и далее $n$-я производная $f^{(n)} = \big(f^{(n-1)}\big)'$.

Обозначений два, и оба живые.

  • По Лагранжу — штрихами: $f'$, $f''$, $f'''$. Начиная с четвёртой штрихи не пишут, а ставят номер в скобках: $f^{(4)}$, $f^{(n)}$. Скобки принципиальны: $f^{4}$ — это функция в четвёртой степени, $f^{(4)}$ — четвёртая производная.
  • По Лейбницу — дробью: $\dfrac{d^2y}{dx^2}$, $\dfrac{d^3y}{dx^3}$, $\dfrac{d^n y}{dx^n}$. Странное расположение двоек (сверху у $d$, снизу у $x$) — след того, что символ означает «дважды применили операцию $\frac{d}{dx}$»: $\left(\frac{d}{dx}\right)^2 y$.

Производные многочлена обнуляются

Возьмём $f(x) = x^4$ и продифференцируем несколько раз подряд:

$$f' = 4x^3, \quad f'' = 12x^2, \quad f''' = 24x, \quad f^{(4)} = 24, \quad f^{(5)} = 0.$$

Дальше — сплошные нули. Это общее правило: у многочлена степени $n$ производная порядка $n+1$ тождественно равна нулю, а производная порядка $n$ равна константе $n!\,a_n$. Каждое дифференцирование срезает одну степень, и через $n$ шагов срезать становится нечего.

Факт полезен как проверка: если ты дифференцируешь кубический многочлен и на четвёртом шаге не получил ноль, ошибка где-то раньше. И он же объясняет, почему $n!$ появляется в формуле Тейлора — коэффициенты там как раз восстанавливаются через $f^{(k)}(0)/k!$.

Физический смысл: ускорение

В уроке 135 мы разобрали, что первая производная координаты по времени — это скорость: $v(t) = s'(t)$. Вторая производная — это производная скорости, то есть ускорение:

$$a(t) = v'(t) = s''(t).$$

И второй закон Ньютона $F = ma$ на самом деле записывается как $F = m\,s''(t)$ — дифференциальное уравнение второго порядка. Вся классическая механика — это утверждение о вторых производных координаты.

Разберём пример. Тело движется по закону $s(t) = t^3 - 6t^2 + 9t$ (метры, секунды).

$$v(t) = 3t^2 - 12t + 9 = 3(t-1)(t-3), \qquad a(t) = 6t - 12.$$

Скорость обращается в ноль при $t=1$ и $t=3$ — тело дважды останавливается и меняет направление. Ускорение равно нулю при $t=2$ — в этот момент тело движется «ровнее всего», скорость проходит через минимум $v(2) = -3$ м/с. При $t=1$ ускорение $a(1) = -6$ м/с², то есть тело тормозится; при $t=3$ ускорение $a(3)=+6$ м/с², тело разгоняется в обратную сторону.

Есть и третья производная — её называют рывком (jerk), и она вполне практична: комфорт в лифте и в поезде определяется не ускорением, а скоростью его изменения. Инженеры проектируют профили разгона так, чтобы рывок был ограничен; отсюда S-образные кривые скорости в лифтах и плавные переходные кривые на железной дороге.

Что вторая производная означает для графика

Короткий анонс. Первая производная отвечает за наклон: $f'>0$ — функция растёт, $f'<0$ — убывает (подробно это уроки 140–141). Вторая отвечает за изгиб: если $f''>0$, наклон увеличивается и график «держит воду» — выпуклый вниз; если $f''<0$, наклон уменьшается, график выпуклый вверх. Точки, где $f''$ меняет знак, называются точками перегиба. Полностью эту тему мы разбираем в уроках 142–143, а сейчас достаточно связки: первая производная — скорость, вторая — ускорение; первая — наклон, вторая — кривизна.

Примеры с разбором

Пример 1 (простой). Найти $f''$ для $f(x) = x^5 - 3x^2$.

$$f'(x) = 5x^4 - 6x, \qquad f''(x) = 20x^3 - 6.$$

Ответ: $f''(x) = 20x^3-6$.

Пример 2 (средний). Найти $f^{(4)}$ для $f(x) = 2x^4 + 7x^3 - x + 5$ и проверить факт про обнуление.

$$f' = 8x^3 + 21x^2 - 1, \quad f'' = 24x^2 + 42x, \quad f''' = 48x + 42, \quad f^{(4)} = 48.$$

Многочлен четвёртой степени: четвёртая производная — константа $48 = 4! \cdot 2$ (где $2$ — старший коэффициент) ✅ Пятая производная равна нулю.

Ответ: $f^{(4)}(x) = 48$.

Пример 3 (сложный). Найти общую формулу $n$-й производной функции $f(x) = \dfrac{1}{x}$.

Шаг 1. Переписываем как степень: $f(x) = x^{-1}$.

Шаг 2. Дифференцируем несколько раз, отслеживая закономерность:

$$f' = -x^{-2}, \quad f'' = 2x^{-3}, \quad f''' = -6x^{-4}, \quad f^{(4)} = 24x^{-5}.$$

Шаг 3. Разбираем структуру. Знак чередуется: минус, плюс, минус, плюс — это множитель $(-1)^n$. Коэффициенты $1, 2, 6, 24$ — это $1!, 2!, 3!, 4!$, то есть $n!$. Показатель на $n$-м шаге равен $-(n+1)$.

$$f^{(n)}(x) = (-1)^n\, n!\, x^{-(n+1)} = \frac{(-1)^n\, n!}{x^{n+1}}.$$

Шаг 4. Проверка. При $n=4$: $(-1)^4 \cdot 24 \cdot x^{-5} = 24x^{-5}$ ✅ При $n=1$: $-1 \cdot 1 \cdot x^{-2} = -\frac{1}{x^2}$ ✅

Ответ: $f^{(n)}(x) = \dfrac{(-1)^n\,n!}{x^{n+1}}$.

Почему это важно

Вторая производная — это то, чем оптимизация отличается от «просто спуска». Градиентный спуск использует только первую производную: он знает направление, но не знает, какой длины сделать шаг. Вторая производная знает кривизну — а значит, может подсказать шаг. Метод Ньютона делает шаг $-\frac{f'(x)}{f''(x)}$ и на хороших функциях сходится за единицы итераций вместо тысяч.

В многомерном случае роль второй производной играет матрица Гессе (гессиан) — таблица всех вторых частных производных. Именно её собственные числа отвечают на вопрос, почему обучение «застревает»: если по одному направлению кривизна огромная, а по другому почти нулевая, поверхность лосса выглядит как узкое длинное ущелье, и обычный градиентный спуск начинает зигзагами колотиться от стенки к стенке. Отношение максимального собственного числа к минимальному называется числом обусловленности, и вся практика подбора learning rate — попытка обойтись без знания этого числа.


ML-контекст: автоматическое дифференцирование

Три способа посчитать производную на компьютере

Прежде чем говорить, как работает autograd, полезно понять, чем он не является. Способов посчитать производную на компьютере три, и выбирают из них не наугад.

Способ 1 — символьный. Компьютер работает с формулой как с текстом и применяет к ней правила этого урока, выдавая новую формулу. Так делают SymPy, Wolfram Mathematica, Maple. Плюс: получается точная формула, которую можно прочитать и проанализировать. Минус: формула раздувается. Продифференцируй символьно произведение десяти функций — правило произведения даст десять слагаемых, в каждом по десять множителей. Для выражения глубиной в сотню слоёв символьная производная не помещается в память. Для нейросети этот путь мёртв.

Способ 2 — численный. Считаем разностное отношение напрямую:

$$f'(x) \approx \frac{f(x+\varepsilon) - f(x-\varepsilon)}{2\varepsilon}.$$

Плюс: работает для любой функции, даже для чёрного ящика, и пишется в одну строчку. Минусов два, и оба фатальны для ML. Первый — точность: при слишком большом $\varepsilon$ формула грубо приближает, при слишком маленьком в числителе вычитаются почти равные числа и всё съедает ошибка округления. Второй — цена: чтобы получить градиент по $N$ параметрам, нужно $2N$ вычислений функции. При $N = 10^8$ и одном прогоне модели за секунду это двести миллионов секунд — больше шести лет на один шаг обучения.

Способ 3 — автоматическое дифференцирование. Компьютер не работает с формулой как с текстом и не подставляет приращения. Он запоминает последовательность выполненных операций и применяет к каждой из них локальное правило дифференцирования, перемножая и складывая уже готовые числа. Результат точен до последнего бита (никаких приближений разностями) и стоит примерно столько же, сколько само вычисление функции. Это и есть то, что делает loss.backward().

Вычислительный граф

Любое выражение, которое считает компьютер, — это дерево (точнее, ориентированный граф) арифметических операций. Возьмём совсем простое:

$$f(a, b, c) = (a + b)\cdot c.$$

Граф выглядит так: два листа $a$ и $b$ входят в узел +, результат $s = a+b$ вместе с листом $c$ входит в узел ×, оттуда выходит $f$. Всего два узла с операциями. Каждый узел знает только своё локальное правило:

  • узел сложения $s = a+b$ знает правило суммы: изменение $s$ равно сумме изменений входов, вклад каждого входа с коэффициентом $1$;
  • узел умножения $f = s\cdot c$ знает правило произведения: вклад входа $s$ идёт с коэффициентом $c$, вклад входа $c$ — с коэффициентом $s$;
  • узел деления $q = u/v$ знает правило частного: коэффициент при $u$ равен $\frac{1}{v}$, при $v$ равен $-\frac{u}{v^2}$;
  • узел возведения в степень $y = u^n$ знает правило степени: коэффициент $nu^{n-1}$.

Обрати внимание: это буквально четыре правила, которые мы вывели выше. Никаких пределов на этом этапе никто не считает — все пределы были посчитаны один раз, людьми, в семнадцатом веке, и зашиты в код каждого узла как готовые формулы.

Вот как выглядит скелет такого узла в псевдокоде — двадцать строк, которые и есть весь «искусственный интеллект» в этой части:

class Mul:
    def forward(self, u, v):
        self.u, self.v = u, v      # запомнили входы
        return u * v

    def backward(self, grad_out):
        # правило произведения, применённое к числам
        return grad_out * self.v, grad_out * self.u

Метод forward считает значение и запоминает входы — именно поэтому обучение сети требует памяти пропорционально числу операций, а не только числу параметров. Метод backward применяет правило произведения: пришедший сверху множитель grad_out раздаётся входам с коэффициентами $v$ и $u$ соответственно.

Forward и backward

По графу можно идти в двух направлениях, и разница между ними — это разница между «обучаем модель за неделю» и «не обучаем никогда».

Прямой режим (forward mode). Идём от входов к выходу и вместе с каждым значением тащим его производную по одной выбранной входной переменной. За один проход получаем производную всех выходов по одному входу. Если входов миллион, нужен миллион проходов.

Обратный режим (reverse mode). Сначала считаем значение функции обычным прямым проходом, запоминая по дороге все промежуточные величины. Потом идём назад от выхода к входам, раздавая по узлам коэффициенты. За один обратный проход получаем производную одного выхода по всем входам сразу.

Функция потерь нейросети — это отображение из ста миллионов параметров в одно число. Именно поэтому все фреймворки используют обратный режим: один прямой проход, один обратный, и градиент по всем параметрам готов. Стоимость — примерно два-три прямых прохода независимо от числа параметров. Сравни с шестью годами у численного дифференцирования.

Разберём наш пример численно. Пусть $a=2$, $b=3$, $c=4$.

Forward: $s = a+b = 5$, $f = s\cdot c = 20$.

Backward: стартуем с $\frac{\partial f}{\partial f} = 1$. Узел умножения раздаёт: $\frac{\partial f}{\partial s} = 1\cdot c = 4$, $\frac{\partial f}{\partial c} = 1\cdot s = 5$. Узел сложения раздаёт полученную четвёрку обоим входам без изменений: $\frac{\partial f}{\partial a} = 4$, $\frac{\partial f}{\partial b} = 4$.

Проверим руками: $f = (a+b)c = ac+bc$, производная по $a$ равна $c = 4$ ✅, по $b$ равна $c=4$ ✅, по $c$ равна $a+b = 5$ ✅ Три верных числа, полученных без единой формулы — только раздачей коэффициентов по узлам.

Как именно перемножаются коэффициенты вдоль длинной цепочки узлов, задаёт цепное правило — главная теорема следующего урока. Там же разбирается, почему при десятках слоёв произведение множителей может уйти в ноль или взорваться. Здесь мы намеренно останавливаемся: правила суммы, произведения, частного и степени — это то, что живёт внутри узла, а цепное правило — то, что связывает узлы между собой. Урок 137.

Гессиан и почему его почти никогда не считают

Вторую производную в многомерном случае мы уже упоминали: это матрица Гессе, таблица всех вторых частных производных $\frac{\partial^2 L}{\partial w_i \partial w_j}$. Проблема очевидна из размеров: при $N$ параметрах в ней $N^2$ чисел.

Прикинь для модели среднего размера, $N = 10^9$. Тогда $N^2 = 10^{18}$ чисел, по четыре байта каждое — четыре эксабайта. Это больше, чем весь объём данных, хранящихся в среднем дата-центре. Даже для скромной модели на миллион параметров гессиан весит четыре терабайта. Хранить его нельзя, обращать (а метод Ньютона требует именно обращения, а это ещё и порядка $N^3$ операций) — тем более.

Что делают вместо этого:

  • Диагональные приближения. Хранят только $N$ диагональных элементов вместо $N^2$. Adam, RMSProp, Adagrad — все они, по сути, оценивают диагональ кривизны по накопленным квадратам градиентов и делят шаг на её корень. Отсюда и знаменитый эффект: Adam автоматически делает маленькие шаги там, где поверхность крутая, и большие там, где пологая.
  • Матрично-свободные методы. Гессиан целиком не нужен, если нужно только произведение $Hv$ на вектор. Его умеют считать за стоимость примерно одного дополнительного обратного прохода, не материализуя матрицу. На этом стоят метод сопряжённых градиентов и Hessian-free оптимизация.
  • Квазиньютоновские методы. L-BFGS хранит несколько последних пар «шаг — изменение градиента» и по ним восстанавливает приближение обратного гессиана. Память $O(mN)$ вместо $O(N^2)$, где $m$ — десяток.

Так что вторая производная в машинном обучении жива, просто в сжатом виде. И когда ты в следующий раз напишешь optimizer = Adam(model.parameters()), помни: под капотом там оценка кривизны — та самая $f''$ из этого урока, только по каждому параметру отдельно.

Почему это важно

Понимание этой машинерии превращает отладку из шаманства в инженерию. Градиент не течёт в какой-то параметр — значит, между ним и лоссом в графе есть узел с нулевым локальным коэффициентом или разрыв графа (например, тензор отсоединён через detach). Градиент отличается от численного ровно в $k$ раз — значит, потерян или задвоен множитель в каком-то одном узле, и правило произведения подскажет, в каком. Память кончается на обратном проходе, а не на прямом — значит, дело в сохранённых промежуточных значениях, и лечится это gradient checkpointing (пересчитывать вместо хранения). Каждый из этих диагнозов читается прямо из устройства графа и четырёх правил, которые мы сегодня вывели.


Практика: 30 заданий

Все задания решаются четырьмя правилами этого урока: линейность, произведение, частное, степень. Сложных функций (композиций) здесь нет — они начнутся в уроке 137.

Базовые (задания 1-10)

Задание 1: Найди производную функции $y = x^5 - 4x^3 + 2x - 9$.


Задание 2: Найди производную функции $y = 7x^4 + \dfrac{x^2}{2} - 3$.


Задание 3: Найди производную функции $y = \dfrac{1}{x^4}$.


Задание 4: Найди производную функции $y = 3\sqrt{x} + 5x$.


Задание 5: Найди производную функции $y = x^2(x-1)$ по правилу произведения и проверь раскрытием скобок.


Задание 6: Найди производную функции $y = (x+2)(x-5)$.


Задание 7: Найди производную функции $y = \dfrac{x}{x+3}$.


Задание 8: Найди производную функции $y = \dfrac{1}{x^2+1}$.


Задание 9: Для функции $y = 2x^3 - \dfrac{3}{x}$ найди $y'(1)$.


Задание 10: Найди производную функции $y = x^2\sqrt{x}$ двумя способами.


Средние (задания 11-20)

Задание 11: Найди производную функции $y = (3x^2-1)(x^3+2x)$.


Задание 12: Найди производную функции $y = \dfrac{2x+1}{x-3}$.


Задание 13: Найди производную функции $y = \dfrac{x^2}{x+1}$.


Задание 14: Найди производную функции $y = \dfrac{x^3 - 3x^2 + x}{x}$.


Задание 15: Найди производную функции $y = (x^2+1)^2$, не пользуясь цепным правилом.


Задание 16: Найди производную функции $y = \dfrac{\sqrt{x}}{x+1}$ при $x>0$.


Задание 17: Найди вторую производную функции $y = x^4 - 2x^3 + x$.


Задание 18: Найди точки графика $y = x^3 - 3x$, в которых касательная горизонтальна.


Задание 19: Тело движется по закону $s(t) = t^3 - 6t^2 + 9t$ (метры, секунды). Найди скорость и ускорение, определи моменты остановки и знак ускорения в них.


Задание 20: Найди производную функции $y = x(x+1)(x+2)$.


Продвинутые (задания 21-30)

Задание 21: Найди производную функции $y = \dfrac{x^2-1}{x^2+1}$ и точки, где она обращается в ноль.


Задание 22: Найди производную функции $y = \dfrac{x^3+1}{x}$ двумя способами и сравни трудозатраты.


Задание 23: Для $f(x) = x^5$ найди $f'''(x)$ и $f^{(6)}(x)$.


Задание 24: Пусть $u = x^2$, $v = x^3$. Найди все $x$, при которых ошибочная формула $u'v'$ случайно совпадает с настоящей производной $(uv)'$.


Задание 25: Составь уравнение касательной к графику $y = \dfrac{1}{x}$ в точке с абсциссой $x_0 = 2$.


Задание 26: Модель линейной регрессии без свободного члена предсказывает $\hat y = wx$. На трёх объектах $(x_i, y_i) = (1;2),\ (2;3),\ (3;5)$ функция потерь равна $L(w) = \dfrac13\big[(w-2)^2 + (2w-3)^2 + (3w-5)^2\big]$. Найди $L'(w)$ и значение $w$, в котором производная равна нулю.


Задание 27: К функции потерь $\ell(w) = (w-3)^2$ добавили регуляризатор (weight decay): $L(w) = (w-3)^2 + \lambda w^2$, где $\lambda \geq 0$. Найди $L'(w)$ и точку, где она равна нулю. Что происходит с этой точкой при росте $\lambda$?


Задание 28: Найди $y^{(4)}$ для $y = \dfrac{1}{x^2}$ и выведи формулу $n$-й производной.


Задание 29: Найди производную функции $y = \dfrac{x}{x^2+4}$ и все точки, где касательная горизонтальна.


Задание 30: Выведи правило для трёх множителей $(uvw)' = u'vw + uv'w + uvw'$, применив правило произведения дважды, и найди по нему производную $y = x^2(x-1)(x+3)$.


Частые ошибки

Ошибка 1: $(uv)' = u'v'$

Неправильно: $\big(x^2(x+3)\big)' = 2x \cdot 1 = 2x$.

Правильно: $\big(x^2(x+3)\big)' = 2x(x+3) + x^2 = 3x^2 + 6x$.

💡 Почему важно: это ошибка номер один во всей теме, и её допустил сам Лейбниц. Проверить себя можно за пять секунд: возьми $u=v=x$. Тогда $uv = x^2$, настоящая производная $2x$, а «формула мечты» даёт $1$. Разница видна невооружённым глазом. Геометрически $u'v'$ — это тот самый маленький угловой квадратик, площадь которого убывает как $h^2$ и потому в пределе исчезает; жить остаются две полоски $u'v$ и $uv'$.


Ошибка 2: $\left(\dfrac{u}{v}\right)' = \dfrac{u'}{v'}$

Неправильно: $\left(\dfrac{x^2}{x}\right)' = \dfrac{2x}{1} = 2x$.

Правильно: $\dfrac{x^2}{x} = x$ при $x\neq 0$, значит производная равна $1$. По формуле частного: $\dfrac{2x\cdot x - x^2}{x^2} = \dfrac{x^2}{x^2} = 1$ ✅

Почему важно: «поделить производные» кажется симметричным продолжением правила суммы, но производная не мультипликативна и не делится. Этот пример хорош тем, что ответ известен заранее — сокращением. Всегда, когда есть возможность упростить выражение и получить ответ вторым путём, делай это: расхождение мгновенно ловит неверное правило.


Ошибка 3: переставили слагаемые в числителе правила частного

Неправильно: $\left(\dfrac{u}{v}\right)' = \dfrac{uv' - u'v}{v^2}$.

Правильно: $\left(\dfrac{u}{v}\right)' = \dfrac{u'v - uv'}{v^2}$ — первым идёт производная верхней функции.

💡 Почему важно: в правиле произведения слагаемые складываются, и порядок не важен. В правиле частного стоит минус, и перестановка меняет знак всего ответа. А знак производной — это возрастание против убывания, максимум против минимума, «модель учится» против «модель расходится». Экспресс-проверка: подставь $u\equiv 1$ и посмотри, получилось ли $-\frac{v'}{v^2}$. Если вышло $+\frac{v'}{v^2}$, порядок перепутан.


Ошибка 4: потеряли квадрат в знаменателе

Неправильно: $\left(\dfrac{x}{x+1}\right)' = \dfrac{(x+1) - x}{x+1} = \dfrac{1}{x+1}$.

Правильно: $\left(\dfrac{x}{x+1}\right)' = \dfrac{1}{(x+1)^2}$.

💡 Почему важно: знаменатель в правиле частного обязательно возводится в квадрат, и проверить это можно размерностью. Возьми $u$ и $v$ — многочлены степеней $1$ и $1$. Дробь ведёт себя как константа на бесконечности, значит её производная должна убывать быстрее, чем $\frac1x$. Вариант $\frac{1}{x+1}$ убывает как $\frac1x$ — слишком медленно. Общее правило самопроверки: степень знаменателя ответа вдвое больше степени $v$.


Ошибка 5: неверный знак или показатель при отрицательной степени

Неправильно: $\left(\dfrac{1}{x^3}\right)' = \big(x^{-3}\big)' = -3x^{-2} = -\dfrac{3}{x^2}$.

Правильно: $\big(x^{-3}\big)' = -3x^{-4} = -\dfrac{3}{x^4}$.

💡 Почему важно: правило говорит «показатель уменьшить на единицу», а не «уменьшить его модуль». Из $-3$ вычитаем $1$ и получаем $-4$, а не $-2$. Рука по привычке движется в сторону нуля, и именно на этом ломается половина решений с дробями. Проверка на порядок величины: $\frac{1}{x^3}$ убывает быстро, значит и её производная должна убывать быстрее, чем сама функция.


Ошибка 6: применили правило произведения к константному множителю

Неправильно: $\big(5x^3\big)' = (5)'\cdot x^3 + 5\cdot 3x^2 = 0 + 15x^2$ — ответ верный, но путь лишний; а при спешке из этого рождается $\big(5x^3\big)' = 0$.

Правильно: $\big(5x^3\big)' = 5\cdot 3x^2 = 15x^2$ — константа выносится сразу.

💡 Почему важно: число — не функция, для него отдельного слагаемого не нужно. Лишний шаг не только тратит время: он создаёт слагаемое, которое легко перепутать местами с нужным. Правило простое: если один из «множителей» не содержит $x$, это не произведение функций, а константный множитель.


Ошибка 7: забыли условие $v \neq 0$ и посчитали производную там, где функции нет

Неправильно: для $y = \dfrac{x}{x-2}$ спокойно написать «производная $\dfrac{-2}{(x-2)^2}$ определена всюду».

Правильно: и функция, и её производная определены только при $x \neq 2$. В точке $x=2$ у функции разрыв, о производной речи нет.

💡 Почему важно: формула частного — теорема с условием, а не универсальный штамп. Забытая точка разрыва потом всплывает при исследовании функции: интервалы монотонности разрываются в этой точке, и «функция возрастает на всей прямой» превращается в неверное утверждение. В вычислениях та же забывчивость даёт деление на ноль и nan в логах.


Главное запомнить

📝 Ключевые формулы и факты

Линейность: $(u \pm v)' = u' \pm v'$ и $(Cu)' = Cu'$. Сумма и константа проходят сквозь штрих беспрепятственно. Отсюда работают мини-батчи и weight decay.

Произведение: $(uv)' = u'v + uv'$. Это не $u'v'$. Геометрия: приращение площади прямоугольника — две полоски, угловой квадратик исчезает в пределе как величина порядка $h^2$.

Три множителя: $(uvw)' = u'vw + uv'w + uvw'$ — по очереди дифференцируем каждый, остальные не трогаем.

Частное: $\left(\dfrac{u}{v}\right)' = \dfrac{u'v - uv'}{v^2}$ при $v \neq 0$. Первым идёт производная числителя, минус переставить нельзя, знаменатель обязательно в квадрате.

Обратная величина: $\left(\dfrac{1}{v}\right)' = -\dfrac{v'}{v^2}$ — частный случай, годится как экспресс-проверка порядка слагаемых.

Степень: $\big(x^n\big)' = nx^{n-1}$ для любого $n$ — натурального, целого отрицательного, дробного. Показатель вниз множителем, сам уменьшается на единицу (из $-3$ выходит $-4$, а не $-2$).

Приём «прибавим и вычтем»: вставка $\pm u(x+h)v(x)$ — тот трюк, которым доказаны и произведение, и частное. В обоих выводах используется непрерывность дифференцируемой функции.

Многочлен в уме: $\big(ax^k\big)' = akx^{k-1}$. Производная многочлена степени $n$ — многочлен степени $n-1$, свободный член исчезает. Это готовая проверка ответа.

Сначала упрощай. $\sqrt x = x^{1/2}$, $\dfrac{1}{x^n} = x^{-n}$, деление на одночлен — почленно. Правило частного нужно только тогда, когда знаменатель — настоящий многочлен.

Высшие производные: $f'' = (f')'$, обозначения $f^{(n)}$ (Лагранж) и $\dfrac{d^ny}{dx^n}$ (Лейбниц). У многочлена степени $n$ производная порядка $n+1$ тождественно равна нулю. Физически $f''$ — ускорение, геометрически — кривизна (уроки 142–143).

Autograd = эти правила в узлах графа. Фреймворк не считает пределов и не выводит формул: он идёт по графу операций и в каждом узле применяет готовое локальное правило к числам. Обратный режим даёт градиент по всем параметрам за стоимость примерно двух прямых проходов.

Гессиан почти никогда не считают целиком: $N$ параметров дают $N^2$ вторых производных. Вместо матрицы — диагональные приближения (Adam, RMSProp), произведения гессиана на вектор, L-BFGS.


Связь с другими темами курса

Что нужно было знать до этого урока:

  • Урок 131, предел функции — все выводы опираются на теоремы о пределе суммы, произведения и частного.
  • Урок 132, непрерывность — в доказательствах произведения и частного используется переход $u(x+h) \to u(x)$; он законен потому, что дифференцируемая функция непрерывна.
  • Урок 133, определение производной — разностное отношение, из которого всё выведено, и стартовый набор формул: $(x)'$, $(x^2)'$, $(x^3)'$, $\left(\frac1x\right)'$, $(\sqrt x)'$. Сегодня они все оказались частными случаями одной формулы степени.
  • Урок 134, геометрический смысл — производная как угловой коэффициент касательной; на нём держатся все задания про горизонтальные касательные.
  • Урок 135, физический смысл — скорость как производная координаты; отсюда прямой мостик ко второй производной как ускорению.

Что изучить дальше:

  • Урок 137, производная сложной функции — цепное правило. Оно связывает узлы вычислительного графа между собой, тогда как сегодняшние четыре правила живут внутри узлов. В связке с ними дифференцируется практически всё.
  • Урок 138, производные элементарных функций — таблица для $\sin$, $\cos$, $e^x$, $\ln x$. Правила у нас уже есть, останется подставить в них новые «кирпичики».
  • Уроки 139–144, исследование функций — монотонность, экстремумы, выпуклость и точки перегиба (там во всю силу заработает $f''$), наибольшие и наименьшие значения, построение графиков.
  • Уроки 145–150, первообразная и интеграл — обратная операция; интегрирование по частям есть правило произведения, прочитанное справа налево.
  • Университетский блок — частные производные, матрица Гессе, ряд Тейлора (там появляется $n!$ из высших производных), методы оптимизации второго порядка.

Где это нужно в жизни:

💻 В программировании: автоматическое дифференцирование в PyTorch, TensorFlow и JAX; символьные вычисления в SymPy; вычислительные графы; численная проверка градиента при отладке.

🤖 В ML/AI: градиент функции потерь, backpropagation, weight decay (правило суммы), обратный проход через линейный слой $y=Wx$ и через gate-механизмы (правило произведения), softmax и batch normalization (правило частного), Adam как диагональная оценка кривизны, метод Ньютона и L-BFGS.

📊 В Data Science: чувствительность метрик к параметрам, эластичность спроса по цене, производные отношений вроде $F_1$-меры и конверсии, скорость изменения нормированных показателей.

🔬 В науке и инженерии: второй закон Ньютона $F = ms''$, ускорение и рывок при проектировании лифтов и железнодорожных кривых, скорости химических реакций, теплопередача.

💰 В финансах: дельта и гамма опциона (первая и вторая производные цены), чувствительность доходности к ставке, предельные издержки и предельная выручка в экономике.


Интересные факты

💡 Лейбниц сам сначала ошибся в правиле произведения. В рукописи от 11 ноября 1675 года — той самой, где впервые появились знак интеграла и обозначение $dx$, — он записал догадку $d(xy) = dx\,dy$. Через несколько дней он вернулся к этой строке, проверил её на конкретном примере, обнаружил несходимость и вывел верную формулу $d(xy) = x\,dy + y\,dx$. Рукописи сохранились, и в них видно, как правильная формула вписана поверх зачёркнутой ошибки. Так что если рука тянется написать $(uv)'=u'v'$ — это исторически освящённая ошибка. Разница лишь в том, что Лейбниц себя проверил.

💡 Спор о приоритете рассорил математику на сто лет. Ньютон разработал своё исчисление флюксий около 1666 года, но опубликовал позже; Лейбниц опубликовал «Nova methodus» в 1684-м. В 1711 году Лондонское королевское общество назначило комиссию для разбирательства и признало приоритет за Ньютоном — комиссию, как выяснилось позже, курировал сам Ньютон, бывший тогда её президентом, и итоговый отчёт он в значительной степени написал сам. Английские математики из принципа держались громоздких ньютоновских обозначений, континентальные пользовались удобными лейбницевскими — и на век отстали от континента. Победили обозначения Лейбница: $\frac{dy}{dx}$ и $\int$ мы пишем именно так.

💡 Обратный режим автодифференцирования описали в магистерской диссертации на финском. В 1970 году Сеппо Линнайнмаа, студент университета Хельсинки, изложил алгоритм накопления производных в обратном порядке по графу вычислений с оценкой ошибок округления. Про нейросети там не было ни слова — задача была чисто вычислительной. К обучению сетей этот же алгоритм применил Пол Вербос в 1974-м, а известным метод стал только после публикации Румельхарта, Хинтона и Уильямса в 1986 году под именем backpropagation. Работа Линнайнмаа была переоткрыта задним числом и сегодня считается первым описанием того, что крутится в каждом дата-центре мира.

💡 Производные бывают дробного порядка. Вопрос «а что такое производная порядка $\frac12$?» задал Лопиталь в письме Лейбницу в 1695 году. Лейбниц ответил, что это «кажущийся парадокс, из которого однажды выйдут полезные следствия», — и оказался прав: дробное исчисление сегодня применяют в моделях вязкоупругих материалов, аномальной диффузии и обработке сигналов. Оператор $D^{1/2}$ определяется так, что применённый дважды даёт обычную производную.


Лайфхаки и полезные трюки

1. Упрощай до того, как дифференцировать

Самый дешёвый способ не ошибиться — не применять сложное правило вовсе. Деление на одночлен выполняется почленно, скобки в низкой степени раскрываются, дроби превращаются в степени.

Пример: $\dfrac{4x^5 - x^3 + 2x}{2x^2} = 2x^3 - \tfrac12 x + x^{-1}$, откуда $y' = 6x^2 - \tfrac12 - \dfrac{1}{x^2}$. Через правило частного тот же ответ добывается в четыре раза дольше.


2. Всё, что можно, переводи в степень

$\sqrt x = x^{1/2}$, $\dfrac{1}{x^n} = x^{-n}$, $\dfrac{1}{\sqrt x} = x^{-1/2}$, $x\sqrt x = x^{3/2}$. Тогда вместо трёх правил работает одно: $nx^{n-1}$.

Пример: $\dfrac{3}{x^4} - \dfrac{2}{\sqrt x} = 3x^{-4} - 2x^{-1/2}$, производная $-12x^{-5} + x^{-3/2} = -\dfrac{12}{x^5} + \dfrac{1}{x\sqrt x}$.


3. Константу выноси сразу, не таскай её через правила

Если множитель не содержит $x$, он выходит за знак производной первым же действием. Правило произведения к нему применять не нужно.

Пример: $\left(\dfrac{7x^3 - 2x}{5}\right)' = \dfrac{1}{5}\big(21x^2 - 2\big)$. И наоборот: в $\dfrac{5}{x^2+1}$ пятёрка выносится, а правило частного применяется только к $\dfrac{1}{x^2+1}$.


4. В правиле частного выноси общий множитель до раскрытия скобок

Числитель часто сворачивается в две строки вместо шести, если заметить общий множитель.

Пример: для $\dfrac{x^2-1}{x^2+1}$ числитель равен $2x\big[(x^2+1)-(x^2-1)\big] = 4x$. Раскрытие обеих скобок дало бы четыре слагаемых, три из которых сократятся, — с тремя лишними шансами ошибиться.


5. Проверяй ответ численной производной

Тот же приём, что в gradient check при отладке нейросетей: подставь конкретное число и сравни с центральной разностью

$$f'(x_0) \approx \frac{f(x_0 + 10^{-5}) - f(x_0 - 10^{-5})}{2\cdot 10^{-5}}.$$

Пример: для $f(x) = x^2(x+3)$ формула дала $f'(1) = 3 + 6 = 9$. Численно: $f(1{,}00001) \approx 4{,}00009$, $f(0{,}99999) \approx 3{,}99991$, разность делим на $2\cdot10^{-5}$ — получаем $\approx 9{,}000$ ✅ А ошибочная формула $u'v'$ дала бы $2$: расхождение видно сразу.


6. Проверяй степень ответа

Производная многочлена степени $n$ — многочлен степени $n-1$, ни больше ни меньше. У правила частного степень знаменателя ответа ровно вдвое больше степени $v$.

Пример: продифференцировал $x^4 - 5x^2 + 6$ и получил что-то с $x^4$ — значит, где-то не понизил степень. Получил $\dfrac{\ldots}{x+1}$ вместо $\dfrac{\ldots}{(x+1)^2}$ — потерял квадрат.


7. Проверяй знак здравым смыслом

Прежде чем сдавать ответ, спроси: функция в этой области растёт или убывает? Производная обязана иметь тот же знак.

Пример: $\dfrac{1}{x}$ при $x>0$ убывает — производная $-\dfrac{1}{x^2}$ отрицательна ✅ А $-\dfrac{4}{x}$ при $x>0$ растёт от $-\infty$ к нулю — производная $+\dfrac{4}{x^2}$ положительна ✅ Одна такая проверка ловит все ошибки знака в правиле частного.


8. Пользуйся симметрией: чётная функция даёт нечётную производную

Если $f$ чётная, то $f'$ нечётная (и наоборот). В частности, у гладкой чётной функции всегда $f'(0)=0$.

Пример: $\dfrac{3x^4-2x^2+7}{x^2+1}$ чётная, и ответ $\dfrac{6x(x^2+3)(x^2-1)}{(x^2+1)^2}$ содержит нечётный множитель $6x$ на чётном выражении — нечётность на месте ✅ Если бы в ответе вылезло чётное слагаемое, ошибку можно было бы искать, не пересчитывая всё заново.


Три урока ты добывал производные по определению — по одной формуле за полстраницы выкладок. Сегодня ты получил инструмент, который превращает эти полстраницы в одну строку: четыре правила, каждое выведено честно, каждое проверено на знакомых примерах. Функция из вступления, на которую по определению ушло бы двадцать минут, продифференцирована за две.

Но главное не в экономии времени. Главное в том, что дифференцирование стало механическим — а всё механическое можно поручить машине. Именно эти четыре правила, зашитые в узлы вычислительного графа, позволяют посчитать градиент по сотне миллионов параметров за время двух прогонов модели. Ты только что разобрал по косточкам то, что происходит внутри loss.backward().

Впереди — цепное правило, которое свяжет узлы графа в цепочку и объяснит, почему глубокие сети так трудно обучать. А потом таблица производных, исследование функций и интегралы. Фундамент уже стоит. Дальше — интереснее.

Понял тему? Закрепи в боте! 🚀

Попрактикуйся на задачах и получи персональные рекомендации от AI

💪 Начать тренировку
💬 Есть вопрос? Спроси бота!