Производные: что такое наклон функции

Зачем это нужно: backprop, на котором обучаются нейросети, — это способ быстро посчитать множество производных подряд. Чтобы понимать, что вообще вычисляется, нужно сперва увидеть производную в самом простом, буквальном смысле: не абстрактный символ из учебника, а наклон — то же самое, что наклон дороги под ногами. В «Бинарной классификации» и «Логистической регрессии» уже появлялись dz, dw, db — эта статья объясняет, что стоит за любым таким d, с нуля, без привязки к нейросетям. Все числа посчитаны и перепроверены в Python.

Что такое наклон

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

Формально: производную функции f в точке a обозначают f′(a) (наклон функции) и определяют как предел

f′(a)=limε→0⁡f(a+ε)−f(a)ε

Не пугайся значка lim⁡ — он читается «чем меньше ε (эпсилон, малая добавка), тем точнее». На практике для проверки достаточно взять очень маленький ε и посчитать дробь напрямую — это и называют численной производной (f′(a)): подвинул вход на крошечный шаг, посмотрел, на сколько сдвинулся выход, поделил одно на другое.

Первый пример: наклон, который не меняется

Возьмём самую простую функцию — f(a)=3a — и точку a=2. Толкнём a на ε=0.000001:

f(2)=6, f(2.000001)=6.000003. Разница выходов: 0.000003. Делим на ε: 0.000003/0.000001=3.

Наклон равен 3 (f'(a) = 3). Проверим в другой точке, a=5: f(5)=15, f(5.000001)=15.000003, отношение снова ровно 3. Числа сходятся: в Python подряд для a=2 и a=5 выходит 2.9999999995... и 3.0000000004... — округление до пятого знака, но по сути одна и та же тройка.

Слева: f(a)=3a, наклон одинаковый в любой точке (касательная совпадает с прямой). Справа: f(a)=a², наклон меняется — крутой у краёв, почти плоский у дна, наклон = 2a

Смысл: для f(a)=3a наклон (f'(a)) не зависит от точки — где ни возьми касательную, она пойдёт под одним и тем же углом, потому что график — прямая линия. Это и есть первая половина картинки; вторая — когда наклон меняется от точки к точке.

Второй пример: наклон, который меняется

Возьмём f(a)=a2 и повторим тот же трюк в двух точках: a=2 и a=5.

При a=2: f(2)=4, f(2.000001)≈4.000004, отношение ≈4.0000010. При a=5: f(5)=25, f(5.000001)≈25.000010, отношение ≈10.0000010.

Наклон вышел разным (f'(a)): 4 в точке 2, и 10 в точке 5. Формула, которая это объясняет — f′(a)=2a: при a=2 даёт 2⋅2=4, при a=5 даёт 2⋅5=10 — оба раза совпадает с численным ответом. Геометрически: график a2 — парабола, у её дна (около нуля) она почти горизонтальна, наклон близок к нулю, а чем дальше от нуля — тем круче стенки, и наклон растёт.

Попробуй сам: выбери любое a от −5 до 5 — своё любимое число — и проверь его наклон (f'(a)) для f(a)=a2 двумя способами: численно (сдвинь a на крошечный ε, посчитай разницу выходов и подели на ε, как в примерах выше) и по формуле 2a. Если оба способа не сошлись — где-то в арифметике ошибка, попробуй ещё раз.

Мини-квиз: чему равен наклон (f'(a)) функции f(a)=5a в точке a=100?

ОтветНаклон равен 5. Как и для f(a)=3a выше, наклон прямой линии не зависит от точки: график f(a)=5a — прямая с постоянным углом, поэтому ответ один и тот же и при a=100, и в любой другой точке.

Что дальше

Мы увидели две крайности: наклон-константа (f'(a)=3, для 3a) и наклон, зависящий от точки (f'(a)=2a, для a2). У каждой функции — своя «формула наклона», и это не заканчивается на этих двух примерах: «Больше примеров производных» показывает то же самое ещё для кубической функции и логарифма.