Alterna · учебный материал
03.1 Чувствительность к малому изменению
Сдвинем вход совсем немного и сравним изменение результата. Производная описывает предельный наклон, а не само значение функции.
Что в этом материале
- От среднего наклона к локальному
- Производная задаёт первый порядок изменения
- Знак наклона не является знаком функции
- Производная может не существовать
Содержание и основные понятия
Преобразование уже получает вход и выдаёт результат.
Сдвинем вход совсем немного и сравним изменение результата. Производная описывает предельный наклон, а не само значение функции.
Квадрат числа: f(x)=x²; x=2.
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
От среднего наклона к локальному
Пусть скалярный вход меняется с
x
x
x
до
x
+
h
x+h
x
+
h
. Отношение
q
h
(
x
)
=
f
(
x
+
h
)
−
f
(
x
)
h
,
h
≠
0
,
q_h(x)=\frac{f(x+h)-f(x)}{h},\qquad h\ne0,
q
h
(
x
)
=
h
f
(
x
+
h
)
−
f
(
x
)
,
h
=
0
,
показывает среднее изменение выхода на единицу входа на конечном промежутке. Производная отделяет свойство функции в самой точке от произвольно выбранной длины промежутка:
f
′
(
x
)
=
lim
h
→
0
q
h
(
x
)
,
f'(x)=\lim_{h\to0}q_h(x),
f
′
(
x
)
=
h
→
0
lim
q
h
(
x
)
,
если левый и правый пределы существуют и совпадают. Для
f
:
R
→
R
f:\mathbb R\to\mathbb R
f
:
R
→
R
результат является одним числом. Он имеет единицы «единицы выхода на единицу входа», поэтому производная цены по количеству и производная loss по весу описывают разные физические величины, даже если численно равны.
Для
f
(
x
)
=
x
2
f(x)=x^2
f
(
x
)
=
x
2
предел можно вычислить без таблицы приближений:
q
h
(
x
)
=
(
x
+
h
)
2
−
x
2
h
=
2
x
h
+
h
2
h
=
2
x
+
h
.
q_h(x)=\frac{(x+h)^2-x^2}{h}
=\frac{2xh+h^2}{h}=2x+h.
q
h
(
x
)
=
h
(
x
+
h
)
2
−
x
2
=
h
2
x
h
+
h
2
=
2
x
+
h
.
При
h
→
0
h\to0
h
→
0
остаётся
f
′
(
x
)
=
2
x
f'(x)=2x
f
′
(
x
)
=
2
x
. В точке
x
=
2
x=2
x
=
2
:
f
(
2
)
=
4
,
f
′
(
2
)
=
4
,
q
0.1
(
2
)
=
4.1.
f(2)=4,\qquad f'(2)=4,
\qquad q_{0.1}(2)=4.1.
f
(
2
)
=
4
,
f
′
(
2
)
=
4
,
q
0.1
(
2
)
=
4.1.
Значение функции, касательный наклон и наклон конкретной секущей являются тремя разными числами. Касательная записывается в новой координате
t
t
t
:
ℓ
(
t
)
=
f
(
2
)
+
f
′
(
2
)
(
t
−
2
)
=
4
+
4
(
t
−
2
)
.
\ell(t)=f(2)+f'(2)(t-2)=4+4(t-2).
ℓ
(
t
)
=
f
(
2
)
+
f
′
(
2
)
(
t
−
2
)
=
4
+
4
(
t
−
2
)
.
Она обязана проходить через
(
2
,
4
)
(2,4)
(
2
,
4
)
, но не обязана проходить через начало координат.
Производная задаёт первый порядок изменения
Определение предела эквивалентно локальной записи
f
(
x
+
h
)
=
f
(
x
)
+
f
′
(
x
)
h
+
r
(
h
)
,
r
(
h
)
h
→
0.
f(x+h)=f(x)+f'(x)h+r(h),
\qquad \frac{r(h)}{h}\to0.
f
(
x
+
h
)
=
f
(
x
)
+
f
′
(
x
)
h
+
r
(
h
)
,
h
r
(
h
)
→
0.
Главный линейный вклад равен
f
′
(
x
)
h
f'(x)h
f
′
(
x
)
h
, а остаток убывает быстрее
h
h
h
. Для квадрата в точке 2 формула точна с явным остатком:
(
2
+
h
)
2
=
4
+
4
h
+
h
2
.
(2+h)^2=4+4h+h^2.
(
2
+
h
)
2
=
4
+
4
h
+
h
2
.
При
h
=
0.1
h=0.1
h
=
0.1
линейная модель предсказывает
4.4
4.4
4.4
, точное значение равно
4.41
4.41
4.41
, ошибка
0.01
=
h
2
0.01=h^2
0.01
=
h
2
. Если уменьшить
h
h
h
в десять раз, квадратичный остаток уменьшится в сто раз.
Знак наклона не является знаком функции
Для
x
=
−
2
x=-2
x
=
−
2
значение
x
2
=
4
x^2=4
x
2
=
4
положительно, а производная
−
4
-4
−
4
отрицательна. Это означает локальное убывание при движении вправо, а не отрицательное значение функции. В точке
x
=
0
x=0
x
=
0
производная квадрата равна нулю и там действительно находится минимум. Однако условие
f
′
(
x
)
=
0
f'(x)=0
f
′
(
x
)
=
0
само по себе недостаточно: у
f
(
x
)
=
x
3
f(x)=x^3
f
(
x
)
=
x
3
производная в нуле тоже равна нулю, но функция продолжает возрастать через эту точку.
Производная может не существовать
Для
f
(
x
)
=
∣
x
∣
f(x)=|x|
f
(
x
)
=
∣
x
∣
в нуле односторонние отношения дают
lim
h
→
0
+
∣
h
∣
−
0
h
=
1
,
lim
h
→
0
−
∣
h
∣
−
0
h
=
−
1.
\lim_{h\to0^+}\frac{|h|-0}{h}=1,
\qquad
\lim_{h\to0^-}\frac{|h|-0}{h}=-1.
h
→
0
+
lim
h
∣
h
∣
−
0
=
1
,
h
→
0
−
lim
h
∣
h
∣
−
0
=
−
1.
Единого предела нет, значит классическая производная не определена. ReLU
max
(
0
,
x
)
\max(0,x)
max
(
0
,
x
)
имеет ту же проблему в нуле: слева наклон 0, справа 1. Autograd-библиотека выбирает там практическое соглашение, например 0; это определение программного правила backward, а не доказательство гладкости.
Конечные разности полезны для проверки реализации, но не являются способом, которым automatic differentiation обычно получает gradient. Слишком большой
h
h
h
даёт ошибку усечения, а слишком маленький приводит к вычитанию почти равных floating-point чисел. Центральная разность
f
(
x
+
h
)
−
f
(
x
−
h
)
2
h
\frac{f(x+h)-f(x-h)}{2h}
2
h
f
(
x
+
h
)
−
f
(
x
−
h
)
для гладкой функции часто точнее односторонней при одинаковом
h
h
h
, но всё равно остаётся численной проверкой в одной точке.
x, h = 2, .1
secant = ((x + h)**2 - x**2) / h
tangent_prediction = x**2 + 2*x*h
exact = (x + h)**2
assert abs(secant - 4.1) < 1e-12
assert abs(exact - tangent_prediction - h*h) < 1e-12
Код повторяет только что разобранные операции.
Полный проверяемыйPython-пример главы
доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.
Это не значение функции, а чувствительность к малому изменению входа. В модели таким входом для ошибки может быть один вес.
Меняем одну причину за раз. Как этот вопрос продолжает полученный результат?
Python-примеры главы 03
Академическая база →