Введение
В прошлой статье о линейной регрессии я упомянул, что в будущем мы будем заниматься её оптимизацией. Однако, прежде чем перейти к этому, нам нужно разобраться с одной из ключевых концепций математического анализа — производной.
В этой статье мы подробно разберём основы производной, не углубляясь в сложную математику. Мы начнём с базовых принципов, знакомых ещё со школьной программы, а затем перейдём к практической реализации дифференцирования функций на Python.
Интуиция
Приведу банальный, но показательный пример производной из реальной жизни.
Спидометр в машине — это типичный пример применения производной. Когда автомобиль ускоряется (то есть его скорость увеличивается), стрелка на спидометре движется вправо. Если машина, наоборот, замедляется, стрелка уходит влево.
Производная в этом контексте — это инструмент, который показывает, как изменяется скорость во времени.
Давайте подробнее поговорим об этом в следующем разделе.
Производная функции
Функции есть почти везде и ими можно описать практически все. Так давайте опишем скорость изменения функции.

Перед нами график некоторой функции. Наша цель — понять, как изменяется функция на интервале от точки A до точки B.
Для этого проведём перпендикулярные линии из точек A и B к осям координат, чтобы определить их координаты:
-
Точка A имеет координаты (x1,y1)
-
Точка B имеет координаты (x2,y2)
Для изменений x определим разность между значениями абсцисс (x-координат) точек B и A:
Для изменений y определим разность между значениями ординат (y-координат) точек B и A:
Кстати, записи, которые мы использовали выше, имеют собственные названия:
-
Разность значений x называется приращением аргумента.
-
Разность значений y называется приращением функции.
Но вопрос о формальном определении производной остается открытым, но теперь мы готовы его закрыть.
Производная функции — это отношение приращения функции к приращении аргумента
В математической записи, это выглядит как:
При этом:
Чем x будет меньше, тем точнее будет расчеты.
Геометрический смысл производной
Мы рассмотрим геометрический смысл производной, так как он наиболее понятен на интуитивном уровне и не требует дополнительных знаний из математического анализа.
В основе данного представления лежит идея о касательной к графику функции в точке, которая нас интересует.

Чёрная кривая — это график нашей функции, а красная прямая — касательная в выбранной точке. Теперь давайте достроим прямоугольный треугольник, проведя линию от точки касания до оси xxx.
У нас получается прямоугольный треугольник с углом a. Из предыдущего объяснения мы знаем, что производная — это отношение приращения функции к приращению аргумента.
Если мы обозначим вертикальный (жёлтый) отрезок как y, а горизонтальный — как x, то мы фактически получаем определение тангенса угла в прямоугольном треугольнике, которое гласит, что тангенс угла — это отношение противоположного катета (в нашем случае y) к прилежащему катету (в нашем случае x).
Делая вывод из всего сказанного в этом разделе, можно сделать вывод, о определении функции в геометрической интерпретации:
Производная — это тангенс угла наклона касательной к графику функции в этой точке.
Так же важно отметить, что взятие производной от функции, называется — дифференцирование
Оператор дифференцирования
Пройдусь кратко по этому разделу, так как он не требует больших объяснений.
Допустим у нас есть функция:
Если мы хотим взять от неё производную, то одним из распространённых способов написать это является следующая математическая запись:
Эта запись говорит, что мы хотим взять производную от функции f(x) = x^2 по ее аргументу x.
Правила дифференцирования констант
Взятие производной от функции вида:
Можно записать в виде:
Вообщем при взятии производной от любой константы дает ноль.
Правила дифференциации степенной функции
Если у вас функция вида:
То взятие производной выглядит как то так:
Разберем дифференциацию функции:
Правила дифференциации суммы
Сумма производных функций — это сумма их производных
Допустим у нас есть 2 функции:
Решение частных производных через дерево решений
Перед нами стоит задача взять производную от такой функции:
Как взять такую производную:
Для решения данного типа производных мы можем использовать метод «дерево решений».

С начало мы берем производную функции v от x, далее x от a, а потом получившиеся результаты умножаем:
Правила дифференциации экспоненты
Если вы хотите взять производную от функции:
Спешу вас обрадовать: производная от экспоненциальной функции равна самой функции, то есть:
Поздравляю, теперь вы поняли мем, который стоит на обложке этой статьи.
Конечно это не все, есть еще куча функций, которые можно дифференцировать. По этой ссылке можете посмотреть все производные и найти те, которые вас интересуют.
Реализация дифференциации на python
Для вычислений производных я буду использовать библиотеку SymPy.
import sympy
Импортируем библиотеку
x = symbols('x')
Говорим нашей библиотеке, чтобы она воспринимала x как математическую переменную.
f = x**2
Реализуем квадратичную функцию.
dx = diff(f)
Функция diff позволяет брать производную от функции, которую мы указали в скобках.
def dx_f(value_x): return dx.subs(x, value_x)
Данная функция вычисляет производную в некоторой точке. При помощи метода subs мы говорим python, чтобы он подставил в нашу производную вместо x значение value_x, которые мы передали.
Заключение
Мы проделали большой путь — от основ школьной программы до написания кода, который автоматически дифференцирует функции.
Производные — поистине удивительный инструмент, с помощью которого можно описывать и моделировать окружающий мир. Они лежат в основе множества технологий — от физики и экономики до нейросетей и автопилотов Tesla.
ссылка на оригинал статьи https://habr.com/ru/articles/897710/
Добавить комментарий