Alterna · учебный материал
03.2 Меняем одну причину за раз
Если результат зависит от двух чисел, сначала меняем одно при фиксированном другом. Так получаются частные производные.
Что в этом материале
- Один координатный эксперимент за раз
- Полное малое приращение собирает все координаты
- «Остальные фиксированы» — условие определения
Содержание и основные понятия
На предыдущей странице: чувствительность к малому изменению.
Если результат зависит от двух чисел, сначала меняем одно при фиксированном другом. Так получаются частные производные.
f=x²+3y²; точка [2,1].
Координаты и расчёт геометрического примера приведены в тексте. Для изменения пространственного рисунка включитеJavaScript.
Один координатный эксперимент за раз
У функции нескольких переменных есть несколько независимых способов малого движения. Для
f
(
x
,
y
)
=
x
2
+
3
y
2
f(x,y)=x^2+3y^2
f
(
x
,
y
)
=
x
2
+
3
y
2
частная производная по
x
x
x
определяется при фиксированном
y
y
y
:
∂
f
∂
x
(
x
,
y
)
=
lim
h
→
0
f
(
x
+
h
,
y
)
−
f
(
x
,
y
)
h
=
2
x
.
\frac{\partial f}{\partial x}(x,y)
=\lim_{h\to0}\frac{f(x+h,y)-f(x,y)}h=2x.
∂
x
∂
f
(
x
,
y
)
=
h
→
0
lim
h
f
(
x
+
h
,
y
)
−
f
(
x
,
y
)
=
2
x
.
Аналогично, при фиксированном
x
x
x
:
∂
f
∂
y
(
x
,
y
)
=
6
y
.
\frac{\partial f}{\partial y}(x,y)=6y.
∂
y
∂
f
(
x
,
y
)
=
6
y
.
В точке
(
2
,
1
)
(2,1)
(
2
,
1
)
имеем
f
=
7
f=7
f
=
7
,
∂
f
/
∂
x
=
4
\partial f/\partial x=4
∂
f
/
∂
x
=
4
,
∂
f
/
∂
y
=
6
\partial f/\partial y=6
∂
f
/
∂
y
=
6
. Первое число является наклоном сечения
f
(
x
,
1
)
=
x
2
+
3
f(x,1)=x^2+3
f
(
x
,
1
)
=
x
2
+
3
, второе — наклоном другого сечения
f
(
2
,
y
)
=
4
+
3
y
2
f(2,y)=4+3y^2
f
(
2
,
y
)
=
4
+
3
y
2
. Это не две конкурирующие производные одной линии, а два координатных опыта на одной поверхности.
Полное малое приращение собирает все координаты
При
δ
=
[
δ
x
,
δ
y
]
T
\delta=[\delta_x,\delta_y]^T
δ
=
[
δ
x
,
δ
y
]
T
первый порядок изменения равен
Δ
f
l
i
n
=
∂
f
∂
x
δ
x
+
∂
f
∂
y
δ
y
.
\Delta f_{\mathrm{lin}}
=\frac{\partial f}{\partial x}\delta_x
+\frac{\partial f}{\partial y}\delta_y.
Δ
f
lin
=
∂
x
∂
f
δ
x
+
∂
y
∂
f
δ
y
.
В точке
(
2
,
1
)
(2,1)
(
2
,
1
)
и при
δ
=
[
0.01
,
0.02
]
T
\delta=[0.01,0.02]^T
δ
=
[
0.01
,
0.02
]
T
:
Δ
f
l
i
n
=
4
⋅
0.01
+
6
⋅
0.02
=
0.16.
\Delta f_{\mathrm{lin}}=4\cdot0.01+6\cdot0.02=0.16.
Δ
f
lin
=
4
⋅
0.01
+
6
⋅
0.02
=
0.16.
Точное изменение равно
f
(
2.01
,
1.02
)
−
f
(
2
,
1
)
=
0.1613.
f(2.01,1.02)-f(2,1)=0.1613.
f
(
2.01
,
1.02
)
−
f
(
2
,
1
)
=
0.1613.
Остаток
0.0013
0.0013
0.0013
можно проверить без округлённой геометрии:
0.01
2
+
3
(
0.02
)
2
=
0.0013.
0.01^2+3(0.02)^2=0.0013.
0.0
1
2
+
3
(
0.02
)
2
=
0.0013.
Каждая частная производная учитывает свой линейный вклад, а смешанное движение складывает эти вклады.
«Остальные фиксированы» — условие определения
Фраза не утверждает, что признаки реального dataset статистически независимы. Она задаёт виртуальный локальный эксперимент над функцией. Если доступные точки ограничены кривой
y
=
x
y=x
y
=
x
, то фактическое движение по этой кривой меняет обе координаты:
ϕ
(
t
)
=
f
(
t
,
t
)
=
4
t
2
,
ϕ
′
(
t
)
=
8
t
.
\phi(t)=f(t,t)=4t^2,
\qquad \phi'(t)=8t.
ϕ
(
t
)
=
f
(
t
,
t
)
=
4
t
2
,
ϕ
′
(
t
)
=
8
t
.
В точке
t
=
2
t=2
t
=
2
получаем 16. То же число даёт chain rule:
d
d
t
f
(
x
(
t
)
,
y
(
t
)
)
=
∂
f
∂
x
d
x
d
t
+
∂
f
∂
y
d
y
d
t
=
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.
d
t
d
f
(
x
(
t
)
,
y
(
t
))
=
∂
x
∂
f
d
t
d
x
+
∂
y
∂
f
d
t
d
y
=
4
+
12
=
16.
Нельзя оставить только
∂
f
/
∂
x
\partial f/\partial x
∂
f
/
∂
x
, если
y
y
y
тоже зависит от
t
t
t
. И наоборот, связь в данных не меняет определение частной производной самой функции.
При замене коэффициента 3 на
b
b
b
получаем другую функцию
f
b
=
x
2
+
b
y
2
f_b=x^2+by^2
f
b
=
x
2
+
b
y
2
. Тогда
∂
f
b
∂
y
=
2
b
y
.
\frac{\partial f_b}{\partial y}=2by.
∂
y
∂
f
b
=
2
b
y
.
Меняются поверхность, вытянутость линий уровня и чувствительность по
y
y
y
. Это изменение модели, а не перемещение по прежней поверхности.
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
Академическая база →