www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Введение в матричные типы в линейной алгебре для машинного обучения

Дата публикации 2018-02-09

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

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

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

После завершения этого урока вы узнаете:

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

Давайте начнем.

  • Обновление февраль / 2018: Исправлена ​​небольшая опечатка в уравнении эквивалентности для ортогональной матрицы.

Обзор учебника

Этот урок разделен на 6 частей, чтобы охватить основные типы матриц; они есть:

  1. Квадратная матрица
  2. Симметричная матрица
  3. Треугольная матрица
  4. Диагональная матрица
  5. Единичная матрица
  6. Ортогональная матрица

Квадратная матрица

Квадратная матрица - это матрица, в которой количество строк (n) равно количеству столбцов (m).

n = m

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

Учитывая, что количество строк и столбцов совпадают, размеры обычно обозначаются как n, например, п х н. Размер матрицы называется порядком, поэтому квадратная матрица порядка 4 имеет размер 4 x 4.

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

Ниже приведен пример квадратной матрицы порядка 3.

1, 2, 3
M = (1, 2, 3)
     1, 2, 3

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

Симметричная матрица

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

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

- страница 338,Введение в линейную алгебру, Пятое издание, 2016.

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

Ниже приведен пример симметричной матрицы 5 × 5.

1, 2, 3, 4, 5
     2, 1, 2, 3, 4
M = (3, 2, 1, 2, 3)
     4, 3, 2, 1, 2
     5, 4, 3, 2, 1

Симметричная матрица всегда квадратная и равна ее собственной транспонировании.

M = M^T

Треугольная матрица

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

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

Ниже приведен пример верхней треугольной матрицы 3 × 3.

1, 2, 3
M = (0, 2, 3)
     0, 0, 3

Ниже приведен пример нижней треугольной матрицы 3 × 3.

1, 0, 0
M = (1, 2, 0)
     1, 2, 3

Разложение LU разрешает данную матрицу в верхнюю и нижнюю треугольные матрицы.

NumPy предоставляет функции для вычисления треугольной матрицы из существующей квадратной матрицы. Функция tril () для вычисления нижней треугольной матрицы по заданной матрице и функция triu () для вычисления верхней треугольной матрицы по заданной матрице

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

# triangular matrices
from numpy import array
from numpy import tril
from numpy import triu
M = array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
print(M)
lower = tril(M)
print(lower)
upper = triu(M)
print(upper)

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

[[1 2 3]
 [1 2 3]
 [1 2 3]]

[[1 0 0]
 [1 2 0]
 [1 2 3]]

[[1 2 3]
 [0 2 3]
 [0 0 3]]

Диагональная матрица

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

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

Диагональные матрицы состоят в основном из нулей и имеют ненулевые элементы только вдоль главной диагонали.

- страница 40,Глубокое обучение, 2016

Ниже приведен пример квадратной диагональной матрицы 3 × 3.

1, 0, 0
D = (0, 2, 0)
     0, 0, 3

Как вектор, он будет представлен как:

d = (d11, d22, d33)

Или с указанными скалярными значениями:

d = (1, 2, 3)

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

1, 0, 0, 0
     0, 2, 0, 0
D = (0, 0, 3, 0)
     0, 0, 0, 4
     0, 0, 0, 0

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

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

# diagonal matrix
from numpy import array
from numpy import diag
M = array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
print(M)
# extract diagonal vector
d = diag(M)
print(d)
# create diagonal matrix from vector
D = diag(d)
print(D)

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

[[1 2 3]
 [1 2 3]
 [1 2 3]]

[1 2 3]

[[1 0 0]
 [0 2 0]
 [0 0 3]]

Единичная матрица

Тождественная матрица - это квадратная матрица, которая не меняет вектор при умножении.

Значения единичной матрицы известны. Все скалярные значения вдоль главной диагонали (сверху-слева-внизу-справа) имеют значение один, а все остальные значения равны нулю.

Тождественная матрица - это матрица, которая не меняет вектор, когда мы умножаем этот вектор на эту матрицу.

- Страница 36,Глубокое обучение, 2016

Тождественная матрица часто представляется с использованием обозначения «I» или с размерностью «In», где n - индекс, который указывает размерность квадратной единичной матрицы. В некоторых обозначениях тождество может упоминаться как единичная матрица или «U», чтобы соответствовать одному значению, которое оно содержит (это отличается от унитарной матрицы).

Например, единичная матрица размером 3 или I3 будет выглядеть следующим образом:

1, 0, 0
I = (0, 1, 0)
     0, 0, 1

В NumPy матрица идентичности может быть создана с определенным размером, используя функцию identity ().

В приведенном ниже примере создается единичная матрица I3.

# identity matrix
from numpy import identity
I = identity(3)
print(I)

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

[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]

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

Ортогональная матрица

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

v . w = 0

или же

v . w^T = 0

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

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

Ортогональная матрица - это квадратная матрица, строки которой взаимно ортонормированы, а столбцы взаимно ортонормированы

- страница 41,Глубокое обучение, 2016

Ортогональная матрица часто обозначается заглавной буквой «Q».

Умножение на ортогональную матрицу сохраняет длины.

- страница 277,Руководство по линейной алгебре, 2017

Ортогональная матрица формально определяется следующим образом:

Q^T . Q = Q . Q^T = I

Где Q - ортогональная матрица, Q ^ T обозначает транспонирование Q, а I - единичная матрица.

Матрица ортогональна, если ее транспонирование равно обратному.

Q^T = Q^-1

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

Q . Q^T = I

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

Ниже приведена простая ортогональная матрица 2 × 2, которая является примером матрицы отражения или координатного отражения.

1,  0
Q = (0, -1)

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

# orthogonal matrix
from numpy import array
from numpy.linalg import inv
Q = array([[1, 0], [0, -1]])
print(Q)
# inverse equivalence
V = inv(Q)
print(Q.T)
print(V)
# identity equivalence
I = Q.dot(Q.T)
print(I)

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

[[ 1  0]
 [ 0 -1]]

[[ 1  0]
 [ 0 -1]]

[[ 1.  0.]
 [-0. -1.]]

[[1 0]
 [0 1]]

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

расширения

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

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

Если вы исследуете какое-либо из этих расширений, я хотел бы знать.

Дальнейшее чтение

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

книги

API

статьи

Резюме

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

В частности, вы узнали:

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

У вас есть вопросы?
Задайте свои вопросы в комментариях ниже, и я сделаю все возможное, чтобы ответить.

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map