ЛИНЕЙНАЯ АЛГЕБРА ДЛЯ ДАННЫХ И МАШИНОСТРОЕНИЯ

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

Основа для ускорения обучения моделям больших данных

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

Умножение матриц

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

Мы запустим все примеры на одних и тех же двух матрицах 2 на 2:

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

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

Давайте объясним, как рассчитать c11 и c12,

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

Векторное умножение

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

Блочное умножение

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

Инверсия матриц

Чтобы быть обратимой, матрица должна иметь одинаковое количество строк и столбцов и не должно быть линейной комбинации в их строках или столбцах.

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

Самый простой способ проверить, не имеет ли матрица линейных комбинаций и является ли она обратимой, - это вычислить ее определитель, если он равен 0, он не обратим.

Чтобы вычислить обратное, первая идея заключается в использовании свойства:

Таким образом, мы можем получить обратное решение системы уравнений, которое мы получаем при умножении матриц:

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

  • Создайте расширенную матрицу, добавив единичную матрицу справа от A:

  • Используйте линейные комбинации, чтобы получить единичную матрицу слева, и результирующая правая матрица будет обратной для A:

Итак, обратное:

Резюме

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

Это пятнадцатый пост из моего конкретного # 100daysofML, я буду публиковать достижения в этой задаче на GitHub, Twitter и Medium (Adrià Serra).

Https://twitter.com/CrunchyML

Https://github.com/CrunchyPistacho/100DaysOfML