Многовариантное исчисление используется повсюду в экосистеме машинного обучения и DataScience, поэтому понимание его из первых принципов невероятно полезно, когда вы имеете дело с некоторыми сложными математическими уравнениями при реализации некоторого алгоритма машинного обучения.

Для начала, как только вам нужно реализовать многомерную линейную регрессию, вы нажимаете многомерное исчисление, которое вам нужно будет использовать для получения градиента набора многомерных линейных уравнений, то есть производной матрицы. Помимо оптимизации функции стоимости нейронных сетей (NN) и вариаций алгоритма градиентного спуска здесь, в NN, и множество других оптимизаций обрабатываются с помощью многомерного исчисления.

Итак, в этом блоге я рассмотрю фундаментальные концепции, необходимые для многомерного исчисления, которые нам понадобятся для понимания многих механизмов машинного обучения и науки о данных.

Зачем нам нужна многомерная векторная функция в машинном обучении

В машинном обучении, когда у нас есть несколько независимых переменных для прогнозирования зависимой переменной, мы обычно представляем все независимые переменные в многомерном пространстве.

Например,

Давайте рассмотрим задачу машинного обучения, в которой мы должны предсказать цену дома, используя следующие независимые переменные:

  • Общая площадь ковра
  • Количество этажей
  • Расстояние от ближайшего аэропорта

Здесь нам нужно спроецировать все эти точки данных учащихся в многомерное пространство, где:

Параметр 1 - Общая площадь ковра

Параметр 2 - Этажность

Измерение 3 - расстояние от ближайшего аэропорта

Теперь каждую независимую переменную можно представить как вектор относительно зависимой переменной.

Нравиться,

Вектор «Общая площадь ковра» будет иметь величину и положительное направление по отношению к цене дома (цена дома увеличится, если площадь ковра также увеличится, и цена дома уменьшится, если площадь ковра уменьшится).

Точно так же «Количество этажей» будет иметь величину и положительное направление по отношению к цене дома.

Однако вектор «Расстояние от ближайшего аэропорта» будет иметь величину и отрицательное направление по отношению к цене дома.

Теперь, если у нас есть новые данные Дома, для которых нам нужно спрогнозировать цену, мы можем представить его данные в этих 3 векторах, и точку, в которой 3 вектора, имеющие ортогональные отношения, можно рассматривать как его / ее прогнозируемую отметку. на выпускном экзамене.

Два вектора считаются ортогональными друг другу, если они расположены под прямым углом в n-мерном пространстве, где n - размер или количество элементов в каждом вектор.

Функции нескольких переменных

Практически все мы хорошо знакомы с функциями одной (независимой) переменной
. Однако многие знакомые величины являются функциями двух или более переменных. Например, работа, совершаемая силой (W = FD), и объем правого кругового цилиндра (V = ⫽Πr²h) являются функциями двух переменных. Объем прямоугольного твердого тела (V = ⫽ lwh) является функцией трех переменных. Обозначения для функции двух или более переменных аналогичны обозначениям для функции одной переменной. Вот два примера.

Аналогичные определения могут быть даны для функций от трех, четырех или n переменных, где области состоят из упорядоченных троек (x1, x2, x3), четверок (x1, x2, x3, x4) и n-кортежей (x1, x2 ,..., xn). Во всех случаях диапазон представляет собой набор действительных чисел.

Теперь вот самая общая математическая форма функции многих переменных.

Таким образом, приведенная выше функция f отображает n входных переменных (x1,… to xn) в m выходных переменных (g1, .. to gm). И каждый из g1, g2,…. gm называются компонентными функциями. А также каждый из g1, g2,… gm на самом деле является функцией входных переменных.

Использование математических обозначений

Обратите внимание, что для многомерной векторнозначной функции

два числа n и m могут быть как равными, так и неравными. Например, у нас могут быть функции F: R² → R² и G: R³ → R³.

Несколько реальных примеров.

Функции нескольких переменных можно комбинировать так же, как функции отдельных переменных. Например, вы можете сформировать сумму, разность, произведение и частное двух функций двух переменных следующим образом.

Дифференциация функций нескольких переменных

Производная функции одной переменной измеряет скорость ее изменения. Математически мы уже знаем из первого принципа определение производной функции с одной переменной следующим образом: Пусть D ⊆ R и пусть c - внутренняя точка D, то есть (c - r, c + r) ⊆ D для некоторого r ›0. Функция f: D → R называется дифференцируемой в точке c, если предел

существуют. В этом случае значение предела обозначается f ′ © и называется
производной f в точке c.

Теперь мы видим, как функция с двумя переменными имеет две скорости изменения: одну при изменении x (при неизменном y) и при изменении y (при неизменном x).

В общем, если f является функцией двух переменных x и y, предположим, что мы позволяем изменять только x, сохраняя при этом y фиксированным, скажем, y = b, где b - константа. Тогда мы действительно рассматриваем функцию одной переменной x.

Мы изучаем влияние x и y по отдельности на значение функции f (x, y), удерживая одно фиксированным и позволяя другому изменяться. Это приводит к следующим определениям частных производных функции f по x и y.

Для всех точек, в которых существуют пределы, мы определяем частные производные в точке (a, b) как

Точно так же частная производная f по y в точке (a, b) получается фиксированным x (x = a) и нахождением обычной производной функции в точке b.

Итак, если f является функцией двух переменных, ее частные производные - это функции fx и fy, определенные

Понятие частной производной можно естественным образом распространить на функции трех и более переменных. Например, если w = f (x, y, z), есть три частных производных, каждая из которых формируется путем сохранения двух переменных постоянными. То есть чтобы определить частную производную w по x, считать y и z постоянными и дифференцировать по x. Аналогичный процесс используется для нахождения производных w относительно y и относительно z.

и его можно найти, рассматривая y и z как константы и дифференцируя f (x, y, z) по x. Если w = f (x, y, z), то fx = δw / δx можно интерпретировать как скорость изменения w по отношению к x, когда y и z остаются фиксированными. Но мы не можем интерпретировать это геометрически, потому что график f лежит в четырехмерном пространстве.

В общем, если u является функцией n переменных, u = f (x1, x 2, ..., xn), его частная производная по i-й переменной x_i равна

В более широком смысле, частные производные второго, третьего и более высокого порядка функции нескольких переменных, при условии, что такие производные существуют, определены следующим образом.

  1. Продифференцируем дважды по x:

2. Продифференцируйте дважды по y:

3. Дифференцируйте сначала по x, а затем по y:

4. Продифференцируйте сначала по y, а затем по x:

Числа 3 и 4 выше называются смешанными частными производными.

Быстрые примеры и интерпретация частной производной многомерной функции

Пример-1

Найти частные производные fx и fy функции

Решение. Считая y постоянным и дифференцируя по x, получаем

Считая x постоянным и дифференцируя по y, получаем

Пример-2

Найдите δz / δx и δz / δy, если z определяется неявно как функция от x и y
уравнением

Чтобы найти δz / δx, сначала мы неявно дифференцируем по x, рассматривая y как константу:

Решая это уравнение относительно δz / δx, я получаю

Точно так же дифференцирование по y, т.е. δz / δy, рассматривающее x как константу, дает

Геометрия многомерной функции и трехмерного пространства

Во-первых, быстрое освежение в простом двумерном пространстве, обозначенном , это знакомая декартова плоскость. Если мы построим две перпендикулярные линии (оси x и y), установим начало координат как точку пересечения осей и установим числовые масштабы на этих линиях, то мы сможем найти точку в , задавая упорядоченную пару чисел (x, y), координаты точки. Обратите внимание, что оси координат делят плоскость на четыре квадранта.

Для любого исчисления с несколькими переменными нам необходимо иметь некоторое базовое представление о трехмерном пространстве.

Трехмерное пространство, обозначенное , требует трех взаимно перпендикулярных
координатных осей (называемых осями x, y и z), которые встречаются в одной точке (называемой началом координат) в чтобы найти произвольную точку. Аналогично случаю , если мы установим масштабы на осях, то мы можем найти точку в , задав упорядоченную тройку чисел (x, y, z ). Оси координат делят трехмерное пространство на восемь октантов. Требуется некоторая практика, чтобы правильно почувствовать перспективу при рисовании точек в .

Построение многомерной функции в трехмерном пространстве

Представьте себе три оси координат, пересекающиеся в начале координат (0, 0, 0). Вертикальная ось (z) и две горизонтальные оси, расположенные под прямым углом друг к другу (x и y). Плоскость xy горизонтальна, а ось z проходит вертикально над и под плоскостью. Обычно мы используем правосторонние топоры. Это означает, что если вы согнете пальцы правой руки от положительной оси x к положительной оси y, то ваш большой палец будет указывать вдоль положительной оси z.

Мы идентифицируем точку в трехмерном пространстве, задав ее координаты (x, y, z) относительно этих осей.

Мы можем представить себе трехмерную систему координат в виде комнаты. Начало - это один из углов на уровне пола, где две стены встречаются с полом. Ось z - это вертикальное пересечение двух стен; оси x и y - это точки пересечения каждой стены с полом. Точки с отрицательными
координатами лежат за стеной в соседней комнате или под полом.

Теперь быстрый пример: давайте посмотрим, как выглядят графики уравнений z = 0, z = 3 и z = −1?

Для графика z = 0 мы визуализируем множество точек, z-координата которых равна нулю. Означает, что он должен находиться на том же вертикальном уровне, что и начало координат, то есть в горизонтальной плоскости, содержащей начало координат. Итак, график z = 0 - это средняя плоскость на приведенном выше рисунке.

График z = 3 - это плоскость, параллельная графику z = 0, но на три единицы выше него. График z = −1 - это плоскость, параллельная графику z = 0, но на одну единицу ниже него.

Плоскость z = 0 содержит оси x и y и называется плоскостью xy. Есть еще две координатные плоскости. Плоскость yz содержит оси y и z, а плоскость xz содержит оси x и z.

График функции одной переменной и функции нескольких переменных

Если f - скалярная функция одной переменной, f: RR f: R → R ( обозначение R обозначает действительные числа и аналогично, является двумерным вектором, а также обозначает двумерную систему координат ), тогда график f - это набор точек (x, f (x)) для всех x в домене f. Мы называем это графиком y = f (x), поскольку точки лежат в плоскости xy. . При нанесении точек на плоскость xy они обычно образуют кривую, например график f (x) = x², показанный ниже. .

Но графики функций двух или более переменных являются примерами поверхностей. То есть набор точек (x, y, z), которые удовлетворяют уравнению, связывающему все три переменные, часто является поверхностью.

График функции f двух переменных - это множество всех точек (x, y, z), для которых z ⫽ f (x, y) и (x, y) находится в области определения f. Этот граф можно геометрически интерпретировать как поверхность в пространстве

Теперь таким же образом мы определяем график скалярной функции двух переменных, f: R. График представляет собой набор точек (x, y, f (x, y )) для всех (x, y) в домене f. Когда это часто называют графиком z = f (x, y), поскольку точки как лежащие в xyz -пространство (вместо только плоскости xy). График этой f (x, y) представляет собой поверхность.

Приведем пример. Вы видели выше график функции одной переменной y = - это парабола. Теперь расширите его, чтобы сделать многомерную функцию.

f(x,y)= x² + y²

График которого называется параболоидом, разновидностью квадратичной поверхности.

Теперь геометрическая интерпретация частных производных функции многих переменных

Частные производные функции двух переменных z = f (x, y) имеют полезную геометрическую интерпретацию. Если y = ⫽ y0, то z ⫽ f (x, y0) представляет собой кривую, образованную пересечением поверхности z = f (x, y) с плоскостью y = y0, как показано на рисунке ниже.

Следовательно,

представляет наклон кривой, заданной пересечением z = f (x, y) и плоскости x = x0 в точке (x0, y0, f (x0, y0))

Чтобы обсудить вышесказанное, взгляните на следующий график поверхности

Чтобы понять геометрическую интерпретацию частных производных, напомним, что уравнение z = f (x, y) представляет поверхность S (которая является графиком f).

Если f (a, b) = c, то точка P (a, b, c) лежит на S. Фиксируя y = b, мы ограничиваем наше внимание кривой C1, в которой вертикальная плоскость y = b пересекает S . (Другими словами, C1 - это след S в плоскости y = b. Точно так же вертикальная плоскость x = a пересекает S по кривой C2. Обе кривые C1 и
C2 проходят через точку P.

Теперь заметим, что кривая C1 является графиком функции g (x) = f (x, b), поэтому наклон ее касательной T1 в точке P равен g ′ (a) = fx (a, b).

Кривая C2 является графиком функции G (y) = f (a, y), поэтому наклон ее касательной T2 в точке P равен G ′ (b) = fy (a, b).

Таким образом, частные производные fx (a, b) и fy (a, b) могут быть геометрически интерпретированы как наклон касательных линий в P (a, b, c) к следам C1 и C2 кривой S в плоскости y = b и x = a

Частные производные финансовые инструменты также можно интерпретировать как скорость изменения. Если z = f (x, y), то δz / δx представляет собой скорость изменения z по отношению к x при фиксированном y. Аналогично, δz / δy представляет скорость изменения z по отношению к y, когда x фиксирован.

Итак, чтобы увидеть пример использования вышеупомянутой реализации, давайте быстро взглянем на приведенный ниже график поверхности z = f (x, y) и попытаемся понять, является ли каждая частная производная положительной или отрицательной.

Положительная ось X направлена ​​за пределы страницы. Итак, представьте, что я иду в этом направлении от точки, отмеченной буквой P, где мы круто спускаемся. Таким образом, частная производная по x отрицательна в точке P с довольно большим абсолютным значением. То же верно и для частной производной по y в точке P, поскольку также имеется крутой спуск в положительном направлении y.

В точке, отмеченной буквой Q, направление в положительном направлении оси x приводит к пологому спуску, тогда как направление в положительном направлении оси y приводит к пологому подъему.

Таким образом, частная производная fx в точке Q отрицательна, но мала (то есть близка к нулю), а частная производная fy положительна, но мала. Основные правила частичной дифференциации

Одно быстрое упражнение

Найдите уклоны в направлении оси x и оси y поверхности, заданной формулой

Решение

Частные производные f по x и y равны

Итак, в x-направлении наклон равен

а в направлении y наклон равен

Геометрически,

Правила дифференциации частичных производных финансовых инструментов

В многомерном случае все еще применяются основные правила дифференциации, которые мы знаем из математики средней школы (например, правило сумм, правило произведения, правило цепочки). Однако, когда мы вычисляем производные по векторам x, нам нужно обратить внимание: наши градиенты теперь включают векторы и матрицы, а умножение матриц не коммутативно , то есть порядок имеет значение.

Полная производная многомерной функции

Полная производная функции многих переменных от нескольких переменных, каждая из которых является функцией другого аргумента, является производной функции по указанному аргументу. он равен сумме частных производных по каждой переменной, умноженной на производную этой переменной по независимой переменной.

В обычной математической форме общий дифференциал трех или более переменных определяется, как показано ниже. Для функции z = f (x, y, .., u) полный дифференциал равен

Например, допустим, функция f (x, y, z), которая является непрерывной функцией n переменных x, y, z с непрерывными частными производными ∂w / ∂x, ∂w / ∂y, ∂w / ∂z. И предположим, что x, y, z - дифференцируемые функции x = x (t), y = y (t), z = z (t). переменной t. Тогда полная производная функции w по t определяется выражением

Давайте посмотрим на быстрый пример - найдите полную разницу следующей функции

w = x³yz + xy + z + 3 в точке (1,2,3)

Полный дифференциал в точке (x0, y0, z0) равен

Подставляя значения x, y, z для точки (1, 2, 3), получаем: wx (1, 2, 3) = 20, wy (1, 2, 3) = 4, wz (1, 2, 3) ) = 3. Итак, окончательный ответ

Цепное правило одномерной и многомерной функции

Во-первых, случай, когда внутренняя функция является одномерной.

Мы уже видели в приведенном выше примере реализацию цепного правила для производной от композиции двух функций.

Для простой составной функции

f(x)=f(g(x))

Производная

Цепное правило гласит, что мы должны взять производную внешней функции, оставить внутреннюю функцию нетронутой, а затем умножить все на производную внутренней функции.

Которая в частной производной форме.

В приведенном выше уравнении и f (x), и g (x) являются функциями одной переменной.

Цепное правило концептуально представляет собой стратегию «разделяй и властвуй» (например, Quicksort), которая разбивает сложные выражения на подвыражения, производные которых легче вычислить. Его сила заключается в том, что мы можем обрабатывать каждое простое подвыражение изолированно, но при этом комбинировать промежуточные результаты, чтобы получить правильный общий результат.

Рассмотрим функцию f: R² → R двух переменных x1, x2. Где x1 (t) и x2 (t) сами являются функциями t. Чтобы вычислить градиент f относительно t, у нас есть цепное правило для многомерных функций, как показано ниже

где d обозначает градиент и частные производные ∂.

Пример из вышеперечисленного

Рассмотрим следующую функцию

где x1 = sin t и x2 = cos t, то соответствующая производная f по t будет следующей

А теперь случай, когда внутренняя функция является многовариантной функцией.

То есть, если f (x1, x2) является функцией x1 и x2, где x1 (s, t) и x2 (s, t) сами являются функциями двух переменных s и t, что означает функция, производная от которой я хочу получить,

f(x1(s, t), x2(s, t))

В этом случае цепное правило дает следующие частные производные

Обратите внимание, что в приведенном выше наборе мы получили всего шесть частных производных.

а градиент получается умножением матриц

Давайте посмотрим на пример, то есть внутренняя функция имеет две независимые переменные

Получите ∂ z / ∂ u и ∂ z / ∂ v, используя следующие функции:

Где внутренние функции

Итак, следуя нашему предыдущему правилу, чтобы реализовать цепное правило для двух переменных, нам нужно шесть частных производных - ∂ z / ∂ x, ∂ z / ∂ y, ∂ x / ∂ u, ∂ x / ∂ v , ∂ y / ∂ u и ∂ y / ∂ v

Поэтому я просто поместил эти значения в наше правило частичной производной.

Затем подставляем x (u, v) = 3 u +2 v и y (u, v) = 4 u - v

Аналогичным образом повторите описанные выше шаги для ∂ z / ∂v

Итак, мы окончательная частичная производная вышеупомянутой проблемы, как показано ниже.

Gradient-Descent (GD) - знаменитый алгоритм, в котором требуется реализация многомерного исчисления.

Не вдаваясь в подробности GD, как мы знаем, как и производная, градиент представляет собой наклон функции.

Градиент указывает в направлении наибольшей скорости увеличения функции, а его величина представляет собой наклон в этом направлении. И с помощью GD-алгоритма, если мы находимся на определенном значении θ (представляющем коэффициенты функции линейной регрессии) и если мы хотим перейти к новому значению θ, так чтобы новые потери были меньше текущих потерь, тогда мы должен двигаться в направлении, противоположном градиенту.

Чтобы понять и реализовать эти градиенты, нам нужно вернуться к частным производным (функции стоимости), которые мы можем реорганизовать в вектор-строку (то есть горизонтальный), как показано ниже:

Вышеупомянутое - это то, что мы называем градиентом f (x, y) или ∇ f (x, y)

То есть мы находим градиент функции f по отношению к x, изменяя одну переменную за раз и сохраняя другие постоянными. Тогда градиент представляет собой набор этих частных производных.

Это означает, что если у нас есть градиент для функции f (x, y), это то же самое, что и запись частной производной функции f по x и частной производной по y:

Общая математическая форма будет такой, как показано ниже.

Для функции f (x) от n переменных x1,. . . , xn определим частные производные как

и собираем их в вектор-строку

где n - количество переменных

Давайте посмотрим на пример. Для f (x, y) = (x + 2y 3) ² мы получаем две нижеприведенные частные производные, используя правило цепочки.

Итак, теперь мы получаем градиент функции ∇ f (x, y), организуя эти частичные элементы в горизонтальную (строчную) векторную форму

2 (x + 2y³) - это изменение f (x, y) по отношению к изменению x, а 12 (x + 2y³) * y² - изменение в f (x, y) относительно изменения y.

Разница между градиентом и производной

К настоящему времени мы увидели, что градиент содержит все частные производные функции многих переменных. Прежде чем мы углубимся в алгоритм градиентного спуска ниже, давайте рассмотрим разницу между производной и градиентом.

  1. Производная - это число, которое показывает скорость изменения, когда какая-то точка в нашей функции перемещается в определенном направлении. Мы можем визуализировать производную как наклон функции, которая идет вдоль некоторого направления на графике. Мы используем букву d для обозначения производной.
  2. С другой стороны, градиент представляет собой вектор, который указывает в направлении самого крутого подъема или самого большого подъема, длина которого равна производная по направлению в этом направлении

Мы используем символ ∇ для обозначения градиента.

Итак, почему градиент - это вектор

Регулярная производная дает нам скорость изменения одной переменной. Например, df / dx сообщает нам, насколько функция f (x) изменяется при изменении x. Но если функция принимает несколько переменных, таких как x и y, у нее будет несколько производных: значение функции изменится, когда мы изменим x (df / dx), а также когда мы изменим y (df / dy).

Итак, теперь мы можем представить эти множественные скорости изменения вектора с одним компонентом для каждой производной. Таким образом, функция, которая принимает 3 переменных, будет иметь градиент с 3 компонентами, каждая из которых представлена ​​частной производной. И так же, как и обычная производная, градиент указывает в направлении наибольшего увеличения. Однако теперь, когда у нас есть несколько направлений для рассмотрения (x, y и z), направление наибольшего увеличения больше не просто «вперед» или «назад» вдоль оси x, как это бывает с функциями одной переменной. .

Если у нас есть две переменные, то наш двухкомпонентный градиент может указывать любое направление на плоскости. Аналогично, с 3 переменными, градиент может указывать и направление в трехмерном пространстве для перемещения, чтобы увеличить нашу функцию.

Теперь это будет иметь смысл нижеприведенного определения градиента. Градиент векторнозначной функции

в реальной области это вектор-строка, представленная матрицей-строкой

где N - количество переменных.

Пример для следующей функции

частные производные (т. е. производные функции f по x1 и x2) равны

и градиент тогда является матрицей с одной строкой (или матрицей-строкой, как ее называют)

Спасибо, что прочитали…

Ссылки и источники для дополнительной информации по этой теме

Общая производная - https://en.wikipedia.org/wiki/Total_derivative

Матричное исчисление - https://arxiv.org/pdf/1802.01528.pdf

Исчисление - https://ocw.mit.edu/resources/res-18-001-calculus-online-textbook-spring-2005/textbook/

Исчисление - https://oer.galileo.usg.edu/mat Mathematics-ancillary/15/

Упражнения по математике - https://oer.galileo.usg.edu/mat Mathematics-ancillary/15/