alterna ai
ALTERNA AI / ГЛАВА 03 · 02

03.2 Меняем одну причину за раз

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

Если результат зависит от двух чисел, сначала меняем одно при фиксированном другом. Так получаются частные производные.

f=x²+3y²; точка [2,1].

Один координатный эксперимент за раз

У функции нескольких переменных есть несколько независимых способов малого движения. Для

f(x,y)=x2+3y2f(x,y)=x^2+3y^2

частная производная по xx определяется при фиксированном yy:

∂f∂x(x,y)=lim⁡h→0f(x+h,y)−f(x,y)h=2x.\frac{\partial f}{\partial x}(x,y) =\lim_{h\to0}\frac{f(x+h,y)-f(x,y)}h=2x.

Аналогично, при фиксированном xx:

∂f∂y(x,y)=6y.\frac{\partial f}{\partial y}(x,y)=6y.

В точке (2,1)(2,1) имеем f=7f=7, ∂f/∂x=4\partial f/\partial x=4, ∂f/∂y=6\partial f/\partial y=6. Первое число является наклоном сечения f(x,1)=x2+3f(x,1)=x^2+3, второе — наклоном другого сечения f(2,y)=4+3y2f(2,y)=4+3y^2. Это не две конкурирующие производные одной линии, а два координатных опыта на одной поверхности.

Полное малое приращение собирает все координаты

При δ=[δx,δy]T\delta=[\delta_x,\delta_y]^T первый порядок изменения равен

Δflin=∂f∂xδx+∂f∂yδy.\Delta f_{\mathrm{lin}} =\frac{\partial f}{\partial x}\delta_x +\frac{\partial f}{\partial y}\delta_y.

В точке (2,1)(2,1) и при δ=[0.01,0.02]T\delta=[0.01,0.02]^T:

Δflin=4⋅0.01+6⋅0.02=0.16.\Delta f_{\mathrm{lin}}=4\cdot0.01+6\cdot0.02=0.16.

Точное изменение равно

f(2.01,1.02)−f(2,1)=0.1613.f(2.01,1.02)-f(2,1)=0.1613.

Остаток 0.00130.0013 можно проверить без округлённой геометрии:

0.012+3(0.02)2=0.0013.0.01^2+3(0.02)^2=0.0013.

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

«Остальные фиксированы» — условие определения

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

ϕ(t)=f(t,t)=4t2,ϕ′(t)=8t.\phi(t)=f(t,t)=4t^2, \qquad \phi'(t)=8t.

В точке t=2t=2 получаем 16. То же число даёт chain rule:

ddtf(x(t),y(t))=∂f∂xdxdt+∂f∂ydydt=4+12=16.\frac{d}{dt}f(x(t),y(t)) =\frac{\partial f}{\partial x}\frac{dx}{dt} +\frac{\partial f}{\partial y}\frac{dy}{dt} =4+12=16.

Нельзя оставить только ∂f/∂x\partial f/\partial x, если yy тоже зависит от tt. И наоборот, связь в данных не меняет определение частной производной самой функции.

При замене коэффициента 3 на bb получаем другую функцию fb=x2+by2f_b=x^2+by^2. Тогда

∂fb∂y=2by.\frac{\partial f_b}{\partial y}=2by.

Меняются поверхность, вытянутость линий уровня и чувствительность по yy. Это изменение модели, а не перемещение по прежней поверхности.

x, y = 2, 1
dx, dy = .01, .02
linear = 2*x*dx + 6*y*dy
exact = (x + dx)**2 + 3*(y + dy)**2 - (x*x + 3*y*y)
assert abs(linear - .16) < 1e-12
assert abs(exact - .1613) < 1e-12

Код повторяет только что разобранные операции. Полный проверяемыйPython-пример главы доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.

Каждую причину сначала меняем отдельно. Градиент объединяет чувствительности; малый шаг в обратную сторону уменьшил значение именно в этом примере.

Собираем чувствительности в вектор. Как этот вопрос продолжает полученный результат?

Python-примеры главы 03 Академическая база →