Математика для ИИ: операции с матрицами | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
C++ Developer. Professional JavaScript Developer. Professional Android Developer. Professional Microservice Architecture React.js Developer JavaScript Developer. Basic PostgreSQL Программист С C++ Developer. Basic Team Lead PHP Developer. Professional Подготовка к сертификации Oracle Java Programmer (OCAJP) Алгоритмы и структуры данных Разработчик IoT C# Developer. Basic Unreal Engine Technical Game Design C# ASP.NET Core разработчик Python Developer. Professional Python Developer. Basic Node.js Developer iOS Developer. Professional Cloud Solution Architecture Kotlin Backend Developer Agile Project Manager Scala-разработчик Symfony Framework iOS Developer. Basic Супер-интенсив Azure Специализация Python Developer
Инфраструктура
Экспресс-курс по управлению миграциями (DBVC) Экспресс-курс «IaC Ansible» Microservice Architecture Разработчик программных роботов (RPA) на базе UiPath и PIX Внедрение и работа в DevSecOps NoSQL Специализация Administrator Linux
-24%
Разработчик IoT Мониторинг и логирование: Zabbix, Prometheus, ELK MongoDB
-30%
DevOps практики и инструменты MS SQL Server Developer SRE практики и инструменты Administrator Linux. Advanced Infrastructure as a code Супер-интенсив "Tarantool" Специализация Network engineer
Корпоративные курсы
Экспресс-курс по управлению миграциями (DBVC) Экспресс-курс «IaC Ansible» Разработчик программных роботов (RPA) на базе UiPath и PIX Внедрение и работа в DevSecOps NoSQL Spark Developer Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» Game QA Engineer IT-Recruiter Enterprise Architect Node.js Developer Cloud Solution Architecture Agile Project Manager Супер-практикум по работе с протоколом BGP Infrastructure as a code Промышленный ML на больших данных Супер-интенсив Azure Руководитель поддержки пользователей в IT
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

Математика для ИИ: операции с матрицами

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

Транспонирование матрицы

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

Представьте, что у нас есть матрица A. Транспонированной будет являться матрица Ат( Аt, Аtr). Вдобавок к этому, такую матрицу мы сможем получить, если запишем ряды матрицы A в виде столбцов матрицы Aт, а столбцы — в виде рядов.

200px_Matrix_transpose_2-1801-f12847.gif

Умножаем единичную матрицу на вектор

Понятие единичной матрицы вам должно быть знакомо. Если умножить такую матрицу на вектор, то значения вектора не изменятся. На картинке ниже элементы главной диагонали единичной матрицы равны 1, остальные — 0:

image_17_2-1801-8cc56c.png

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

Умножаем на обратную матрицу

Обратную матрицу определяют так:

image_16_2-1801-86986b.png

Умножив матрицу A на обратную ей матрицу A со степенью -1, мы получим единичную матрицу. Говоря об обратной матрице, можно вспомнить обратное число. Например, для числа a обратным будет 1/a. Если же обычное число мы умножим на обратное ему, мы получим единицу: a * 1/a = 1. То же самое и с матрицами. Но тут стоит учесть, что данное утверждение справедливо лишь для квадратных матриц.

Псевдоинверсия Мура-Пенроуза

Когда нам нужно выполнить операцию для неквадратных матриц, подойдёт псевдоинверсия Мура-Пенроуза:

image_18_2-1801-e82466.png

Здесь U, D и V — сингулярное разложение нашей матрицы A.

Псевдоинверсия D+ матрицы D формируется путём взятия элементов, которые обратны элементам матрицы, а также её дальнейшим транспонированием. Однако следует быть осторожным с концепцией обратной матрицы A-1, ведь пока она больше применяется в теории, чем на практике. Ситуация обусловлена тем, что вычислительные способности даже самых современных компьютеров дают лишь приблизительный ответ.

Преобразуем матрицу в скаляр

Случается, что необходимо преобразовать матрицу в скаляр, для чего надо найти определитель, обозначаемый det(A) либо |A|. Это преобразование возможно лишь с ними, ниже вы увидите пример с матрицей 2×2:

image_19_2-1801-449be9.png

Тут же следует сказать несколько слов о линейной зависимости. Набор векторов тогда считается линейно зависимым, когда хоть один вектор может быть представлен в виде комбинации других векторов из набора. В обратном случае набор является линейно независимым. Как правило, векторы x и y можно считать линейно независимыми, только когда значения для скаляров a и b, удовлетворяющих ax + by = 0, равняются a = b = 0.

Источник — «Mathematics for Artificial Intelligence – Linear Algebra»

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться