Когда одна величина зависит от другой, а та – от третьей, изменения не просто добавляются. Они размножаются. Производная составной функции, которую часто называют правилом цепи или правилом дифференцировки композиции, как раз и описывает этот эффект каскадного воздействия. Если y=f(u), а u=g(x), то
dxdy = dudy ⋅dxdu
или в обозначениях через штрихи y′=f′(g(x))⋅g′(x). Это краткий и точный ответ на вопрос, как найти производную вложенной функции. Далее открывается целый мир нюансов: почему умножение работает, где прячутся ловушки, как правило выглядит в многомерном пространстве и почему без него не обходится ни одна современная система машинного обучения.
Правило кажется почти очевидным, когда его видишь впервые. Однако за простотой формулы стоит глубокая идея локальной линейности. Каждая дифференцирующая функция в окружении точки ведет себя как прямая линия со своим углом наклона. Когда две такие «прямые» состоят одна за другой, их наклонности перемножаются. Геометрически это означает, что тангенс угла наклона графика композитной функции в точке равен произведению тангенсов углов наклона графиков внешней и внутренней функций в соответствующих точках. Это свойство превращает правило цепи в универсальный инструмент для разложения сложных зависимостей в простые слои.
Интуиция: как изменения распространяются через слои
Представьте конвейер на заводе. Входное сырье – это x. Первый станок превращает ее в полуфабрикат. u=g(x). Второй станок выдает готовую продукцию y=f(u). Если мы хотим знать, насколько быстро меняется количество готовой продукции при смене сырья, то следует учесть скорость работы обоих станков. Скорость второго станка (производная f′) умножается на скорость первого (производная g′). Если первый станок работает вдвое быстрее, а второй реагирует на смену полуфабриката с коэффициентом 3, общая чувствительность системы — 6.
Та же логика работает с температурами, скоростями, ценами или активациями в нейронной сети. Смена на входе «проходит» сквозь каждый слой, и на каждом этапе ее масштабируют соответствующей производной. Когда слоев много, произведение многих множителей может стать очень малым (затухание градиента) или очень большим (взрыв градиента). Именно поэтому понимание правила цепи – это не только школьное упражнение, но и ключ к стабильному обучению глубоких моделей.
Точная формулировка и нотации
Пусть функция f определена в окрестности точки u0=g(x0) и имеет производную в этой точке, а функция g имеет производную в точке x0. Тогда составлена функция h(x)=f(g(x)) также дифференцированна в x0, и выполняется равенство
h′(x0)=f′(g(x0))⋅g′(x0).
В нотации Лейбница, которая особенно удобна для запоминания, запись выглядит как
dxdy=dudy⋅dxdu.
Важно помнить: символы ды, дю, dx здесь не являются отдельными величинами, а частью единственной дробной нотации, напоминающей о последовательности ответов. В обозначениях через штрихи правило смотрится компактнее и чаще используется в вычислениях.
Правило распространяется и на композицию более двух функций. Если y=f(g(h(x))), то
y′=f′(g(h(x)))⋅g′(h(x))⋅h′(x).
Каждое новое звено в цепи добавляет свой множитель.
Почему правило работает: краткий взгляд на обоснование
Одно из самых простых обоснований опирается на определение производной через границу. Разностное отношение для композитной функции
x−x0f(g(x))−f(g(x0))
можно переписать как произведение двух отношений:
g(x)−g(x0)f(g(x))−f(g(x0))⋅x−x0g(x)−g(x0),
если g(x)=g(x0). Когда x следует к x0 , первое отношение следует к f′(g(x0)), второе — к g′(x0).
Чтобы охватить случай, когда внутренняя функция замирает на некоторых точках, вводят вспомогательную функцию, которая заполняет значение производной в точке равенства. В результате предел произведения все равно существует и равен нужному произведению производных. Другие доказательства используют определение дифференциальности через малые слагаемые, направляющиеся к нулю, или определение Каратеодори. Все они приводят к одному и тому же результату: производные умножаются, а погрешности исчезают в границе.
Практический алгоритм вычисления
- Определите внешнюю функцию f и внутреннюю g. Запишите y=f(u), где u=g(x).
- Найдите производную внешней функции f′(u), оставляя u «как есть».
- Найдите производную внутренней функции g′(x).
- Умножьте результаты и, при необходимости, подставьте u=g(x) назад.
- Упростите выражение.
Если композиция глубже, повторяйте алгоритм для каждой пары «внешняя», двигаясь от внешнего слоя внутрь.
Примеры: от базовых до запутанных
Рассмотрим y=(3×2−5x)7. Здесь внешняя функция — подъем к седьмой степени, внутренняя — 3×2−5x. Производная наружной: 7u6. Производная внутренней: 6x−5. Итак,
y′=7(3×2−5x)6⋅(6x−5).
Следующий уровень сложности - y=sin(e2x). Наружная – синус, внутренняя – экспонента от 2x.
y′=cos(e2x)⋅e2x⋅2=2e2xcos(e2x).
Еще глубже: y=ln(cos(x2+1)). Три слоя. Внешняя – натуральный логарифм, средняя – косинус, внутренняя – x2+1.
y′=cos(x2+1)1⋅(−sin(x2+1))⋅2x=−cos(x2+1)2xsin(x2+1).
Каждый новый слой просто добавляет свой множитель, и выражение остается управляемым.
Типичные ошибки при использовании правила цепи
Самая распространенная ловушка — забыть умножить на производную внутренней функции. Студенты часто вычисляют производную от sin(x2) как просто cos(x2), пропуская множитель 2x. Результат получается неправильным уже на уровне первой производной.
Вторая частая ошибка — неразбериха, какая функция внешняя. В выражении esinx внешняя – экспонента, а не синус. Походная esinx⋅cosx, а не наоборот.
Третья проблема – механическое применение формулы без проверки области определения и точек дифференциальности. Если внутренняя функция имеет угловую точку или разрыв, вся композиция может утратить дифференцировку, даже если формально формула дает какое-то выражение.
Четвертая ошибка — в многомерном случае путаница между градиентами и якобианами. Начинающие иногда добавляют частичные производные вместо того, чтобы выполнить матричное умножение или скалярное произведение.
Пятая типичная ловушка — при вычислении высших производных забывать, что каждая дифференцировка снова применяет правило цепи к уже сложному выражению. Формула Фаа ди Бруно для n-й производной композиции содержит сумму из многих членов, и пропустить хотя бы один – значит получить ложный результат.
Осознание этих ловушек приходит с практикой и сознательной проверкой каждого множителя.
Расширение для продвинутых: многомерный случай и высшие производные
Когда функция зависит от нескольких переменных, правило принимает матричную форму. Если y=f(u), а u=g(x), то полная производная (якобиан) композитной функции — это произведение якобианов:
D(f∘g)(x)=Df(g(x))⋅Dg(x).
Для скалярной функции многих переменных производное вдоль направления — это скалярное произведение градиента внешней функции на вектор производных внутренней. В нейронных сетях именно так и происходит обратное распространение ошибки: градиент функции потерь «течет» назад через слои, на каждом этапе умножаясь на локальную производную активации и весовые матрицы.
Для высших производных композиций существует общая формула Фаа ди Бруно. Она выглядит громоздко, но ее структура отражает все возможные способы, по которым производные внутренней функции могут «распределиться» между производными внешней. В большинстве практических задач до четвертого-пятого порядка включительно формулу можно расписать вручную или воспользоваться символьными вычислениями.
Применение в реальном мире и современных технологиях
В физике правило цепи лежит в основе задач на связанные скорости. Если температура вдоль стержня изменяется по закону T(x), а точка движется по закону x(t), то скорость изменения температуры для этой точки
dtdT=dxdT⋅dtdx.
В биологии и экономике составные модели роста или затрат часто требуют именно такого подхода.
Самое масштабное современное применение – автоматическая дифференцировка в библиотеках глубокого обучения. PyTorch, TensorFlow и JAX используют общее правило цепи на вычислительном графе. При обучении нейронной сети обратное распространение ошибки — не что иное, как последовательное применение правила цепи от функции потерь до каждого параметра. Именно благодаря этому алгоритму стало возможным обучать сети с десятками и сотнями слоев.
Правило цепи остается одним из самых мощных и одновременно простых инструментов математического анализа. Оно превращает казалось бы непреодолимую сложность вложенных функций в последовательность понятных шагов. Когда вы в следующий раз увидите выражение типа sin(ln(1+ex2)), не пугайтесь — просто разложите его на слои, примените правило последовательно и получите точный ответ. Эта техника работает одинаково хорошо и в школьной тетради, и в коде современной нейронной сети.