Мы уже рассматривали разные виды матриц в качестве неких функций. Функция в общем смысле может рассматриваться как отображение неких входных параметров на выходные значения, то есть некий алгоритм который при получении на вход x всегда в качестве результата вернёт y. Стоит понимать, что не все функции такие "правильные", но сейчас нас интересуют только такие чистые функции.
Все допустимые значения параметров функции объеденяются множеством определения функции.
Все выходные значения функции объединяются множеством значений функции.
Геометрический смысл функции
В простейшем случае функции от одной или двух переменных удобно визуализируются ввиде графиков двумерных или трёхмерных графиков соответственно. Где по каждой оси откладывается множество определений функции и по одной "дополнительной" откладывается множество значений функции. На входе мы задаём точки по осям множества определений функции, функция определяет точку на оси множества значений функции. на пересечении линий мы можем определить точку на графике. Если возьмём несколько допустимых входных параметров, то получим несколько точек на графике, которые можно объединить линией (2d) или плоскостью (3d).
Базовые свойства функции
При этом функции как и любые другие объекты обладают разными свойствами. Некотрые из важных свойств функции хорошо определяются на графиках функции визуально. Например, непрерывность и гладкость. Выше рассмотренная линейная функция является и непрерывной и гладкой.
График непрерывной функции не прерывается, а график гладкой функции не имеет острых пиков и скачков.
Предел функции
Очевидно, что множество определений функции может быть конечно, то есть на каких-то определённых параметрах функция может не существовать, то есть не будет возвращать какое-то значение при заданном аргументе. Например, прерывающаяся функция - это не что иное как функция, которая не определена в точке разрыва. Получается, что функцию с параметрами точки разрыва мы вызвать не можем. Но мы можем гипотетически взять сколько угодно близкий к точке разрыва параметр функии, где она будет ещё существовать и апроксимируя результат, сделать выводы о том как функция себя ведёт приближаясь к точке, в которой она не определена. Этот подход анализа функции называется нахождением её предела.
Например, функция f(x) = 1/x не определена при x = 0. Посмотрим на предел этой функции при x стремящемся к нулю. Для начала примем x = 1, тогда f(1) = 1. Затем начнём приближать x к нулю и будем смотреть как ведёт себя функция.
f(0.1) = 10
f(0.01) = 100
f(0.001) = 1000
То есть предел этой функции при x, стремящемся к нулю, нам показывает, что значение функции бесконечно растёт, приближаясь к точке разрыва. Так мы принимаем, что предел функции f(x) при x стремящемся к нулю равен бесконечности.
Если взять предел функции в любой другой точке, где функция определена, то очевидно, что предел будет приближаться к значению самой функции в этой точке, то есть предел функции в существующей точке будет равен значению функции в этой точке.
Из этого нетрудно сделать вывод, что если предел функции в какой-то точке не равен самой функции в этой точке, то функция прерывается в ней.
Скорость изменения графика функции
Другое важное свойство функции - это скорость её роста или деградации. Численно определяется через коэффициент роста функции, используя который мы можем посчитать насколько изменится значение функции при изменении значения аргумента функции на некоторое значение.
В случае линейной функции, у которой график - прямая, k является константой, то есть не меняется. Прямая либо постоянно растёт с одинаковой скоростью (k > 0), либо убывает (k < 0), либо не меняется (k = 0).
Производная функции
В случае же более сложной функции, k само по себе может быть функцией и меняться в каждой точке графика. То есть в этом случае мы уже не можем взять какое-то значительное приращение аргумента так как за этот шаг график сложной функции мог уже много раз изменить своё направление и скорость. Нас интересует значение в конкретной точке. А точку мы можем получить только если приращение аргумента будет минимальным, то есть равно нулю в идеале. Но как понять тенденцию изменения без изменения, то есть без приращения? Тут и приходит на помощь понятие предела, когда мы хотим посмотреть как себя ведёт функция при стремлении аргумента к какому-то значению - в данном случае при приращении аргумента стремящемся к нулю:
Такой предел функции называется производной этой функции f(x). То есть функция определения коэффициента изменения функции и есть производная этой функции.
Далее, зная производную функции, мы можем поссчитать скорость изменения функции в конкретной точке на графике. При этом если значение скорости роста меняется резко, то это явный признак того, что функция негладкая как раз в этой точке, то есть имеют место быть скачки на графике.
Производная сложной функции
И если мы уже заговорили о сложных функциях, то давайте определимся как сложная функция выглядит. Любую сложную функцию можно выразить через простые функции, просто их будет несколько. В общем смысле сложная функцией выражается так:
Чтобы посчитать производную такой функции нужно вывести правило декомпозирования производной сложной функции на несколько производных от простых функций.
Для этого придумали такую абстракцию как деффиринциал функции:
При этом математики используют в формулах дифференциал от x вместо приращения аргумента:
То есть в итоге все пользуются такой формулой дифференциала:
Таким образом производную от сложной функции f(x) = g(h(x)) можно выразить через дифференциал:
Умножим и разделим на дифференциал внутренней функции h(x):
Соответсвенно получаем:
Теперь, зная что такое дифференциал можем ещё упростить выражение:
То есть производная сложной функции равна произведению производных простых функций, из которых состоит сложная функция.
Это было сложно, но на самом деле вроде бы и нет. Ставь лайк, если разобрался и пиши коммент, если что-то нужно объяснить подробнее и проще.
Заключение
Этого вполне достаточно, чтобы начать вникать в градиентный бустинг и детали реализации моделей например регрессионного анализа. Но очевидно, что на этом не стоит останавливаться и в дальнейшем нам ещё предстоит разобраться в таких базовых штуках, как вторые, третьи производные и интегралы.