Прими красную таблетку и узнай о матричном исчислении!

Пролог

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

Это знаменитые слова, которые Морфеус сказал Нео в матричной трилогии. Вы должны сделать тот же выбор, хотите ли вы продолжать использовать фреймворки autograd, такие как pytorch и tensorflow, не зная, что они делают? Или вы хотите глубже погрузиться в мир матричного исчисления и понять такие вещи, как как работает обратное распространение ошибки?

Основы линейной алгебры

Векторы и матрицы

Я пишу скаляры (отдельные числа) маленькой тонкой буквой

При этом векторы будем обозначать маленькой жирной буквой. По умолчанию они являются векторами-столбцами.

Векторы-строки также обозначаются строчными полужирными буквами, но имеют верхний индекс T. Верхний индекс T означает транспонированный.

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

Мы также можем транспонировать матрицу. При этом первый столбец становится первой строкой и наоборот.

Размерность вектора или матрицы - это кортеж:

(количество строк, количество столбцов)

Рассмотрим следующий случай:

Скалярное произведение

Скалярное произведение также определено для векторов и матриц. Но порядок имеет значение, и количество столбцов левого вектора / матрицы должно соответствовать количеству строк правого вектора / матрицы.

Размер результата: (количество строк левого входа, количество столбцов правого входа)

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

Чтобы получить один элемент вывода, мы умножаем и суммируем одну строку левого и один столбец правого вектора / матрицы.

Важность скалярного произведения заключается в том, что его можно использовать во многих различных контекстах. В механике он может использоваться для обозначения вращения и растяжения объекта. Его также можно использовать для изменения системы координат.

Основы анализа

Производные от сумм

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

Правило продукта

Если мы хотим взять производную продукта двух функций, каждая из которых зависит от переменной, по которой мы хотим дифференцировать, мы можем использовать следующее правило:

Рассмотрим следующий пример:

Тогда производная по равна:

Правило цепи

Мы хотим дифференцировать функцию 𝑦. Эта функция зависит от 𝑢, а 𝑢 зависит от 𝑥. Затем мы можем применить цепное правило.

Приведем здесь небольшой пример.

Матричное исчисление

После загрузки этого материала в свой мозг я надеюсь, что вы готовы к матричному исчислению!

Существует два соглашения, в которых мы можем писать матричное исчисление: так называемое «расположение числителя» и «расположение знаменателя». Я буду использовать макет числителя на протяжении всего поста.

Скалярная производная по вектору

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

Точки просто указывают на то, что есть не обязательно 3 переменных, по которым мы хотим различать, а скорее номер переменной.

Приведем пример:

Затем мы можем применить правило «производной суммы»:

Поскольку производная одной переменной относительно другой равна 0, мы получаем:

Вектор по скалярной производной

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

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

Вектор по векторной производной

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

Вы можете думать об этом как об объединении «скаляр по вектору» и «вектор по скалярной производной». Мы меняем элементы вывода функции по строкам и элементы переменных по столбцам.

Результирующая матрица имеет размеры: (размер вывода, размер ввода)

Теперь рассмотрим небольшой пример.

Резюме

Правило векторной цепи

Рассмотрим следующий сценарий. Вектор 𝑓 является функцией вектора 𝑔. Вектор 𝑔 сам по себе является функцией вектора 𝑥 . Таким образом, производная от 𝑓 (𝑔 (𝑥)) по 𝑥 вычисляется следующим образом:

Мы видим, что правило векторной цепочки выглядит почти так же, как правило скалярной цепочки. Скалярное произведение остается в формуле, и мы должны построить производные матрицы «вектор на вектор».

Вот небольшой пример:

Вычисляем частные производные.

А теперь расширяем скалярное произведение.

Последнее упрощение, и мы получаем результат.

Точечное произведение констант

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

Теперь мы можем исключить матрицу 𝑋,, если она постоянная и не зависит от 𝑤.

Знайте, что мы строим вектор по матрице производных векторов.

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

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

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

Эпилог

Я рад, что вы приняли красную таблетку и присоединились ко мне в моем путешествии вглубь области матричного исчисления. Если это для вас в новинку, то вам следует много практиковаться и самостоятельно просмотреть несколько примеров. Надеюсь, вам понравился этот пост в блоге, и желаю вам всего наилучшего.

Винсент Мюллер

Похожие статьи от автора





Другие статьи автора





Хотите связаться со мной и поддержать меня?

Linkedin
https://www.linkedin.com/in/vincent-m%C3%BCller-6b3542214/
Facebook
https://www.facebook.com/profile .php? id = 100072095823739
Twitter
https://twitter.com/Vincent02770108
Средний
https://medium.com/@Vincent.Mueller
Станьте средним участником и поддержите меня (часть ваших членских взносов поступает непосредственно мне)
https://medium.com/@Vincent.Mueller/membership