Каждый специалист по данным должен знать основы линейной алгебры

За мощными алгоритмами машинного обучения, с которыми мы так хорошо знакомы, стоит линейная алгебра.

Линейная алгебра - это область математики, которая широко используется в различных дисциплинах. Область науки о данных также опирается на множество различных приложений линейной алгебры. Это не означает, что каждый специалист по анализу данных должен обладать выдающимся математическим образованием, поскольку объем математики, с которой вы будете иметь дело, во многом зависит от вашей роли. Однако хорошее понимание линейной алгебры действительно улучшает понимание многих алгоритмов машинного обучения. Прежде всего, чтобы действительно понять алгоритмы глубокого обучения, необходима линейная алгебра. В этой статье представлены наиболее важные базовые концепции линейной алгебры и показаны два соответствующих приложения линейной алгебры в области науки о данных.

СОДЕРЖАНИЕ

  • Матрицы и векторы
  • Матричные операции
  • Матрица инверсия
  • Ортогональная матрица
  • Применение линейной алгебры в науке о данных (SVD и PCA)

Матрицы и векторы

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

Матрица - это массив чисел, символов или выражений, состоящий из строк и столбцов. Матрица характеризуется количеством строк m и количеством столбцов n. Как правило, матрица порядка «m x n» (читается: «m на n») имеет m строк и n столбцов. Ниже мы отображаем пример матрицы A 2 x 3:

Мы можем ссылаться на отдельные элементы матрицы через соответствующую строку и столбец. Например, A [1, 2] = 2, так как в первой строке и втором столбце стоит цифра 2.

Матрица только с одним столбцом называется вектором. Например, каждый столбец матрицы A выше является вектором. В качестве вектора v возьмем первый столбец матрицы A:

В векторе мы также можем ссылаться на отдельные элементы. Здесь нам нужно использовать только один индекс. Например, v [2] = 4, поскольку 4 - второй элемент вектора v.

Матричные операции

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

(i) Матричные суммы

Если A и B являются матрицами размером mxn, то сумма A + B - это матрица размера mxn, столбцы которой являются суммами соответствующих столбцов в A и B. Сумма A + B определяется только тогда, когда A и B того же размера.

Конечно, вычитание матриц A-B работает таким же образом, когда столбцы в B вычитаются из столбцов в A.

(ii) Скалярные множественные

Если r - скаляр, то скалярное кратное матрице A равно r * A, то есть матрице, столбцы которой в r раз больше соответствующих столбцов в A.

(iii) Умножение матрицы на вектор

Если матрица A имеет размер mxn (таким образом, она имеет n столбцов), а u - вектор размера n, то произведение A и u, обозначенное Au, является линейной комбинацией столбцы матрицы A с использованием соответствующих записей в u в качестве весов.

Примечание: произведение Au определяется только в том случае, если количество столбцов матрицы A равно количеству записей в векторе u!

Свойства: если A - матрица размера m x n, u и v - векторы размера n, а r - скаляр, то:

(iv) Умножение матриц

Если A - матрица размера mxn, а B = [b 1, b 2,…, b p] - матрица размера nxp, где b i - это i-й столбец матрицы B, тогда произведение матриц AB - это матрица mxp, столбцы которой равны A b 1, A b 2 ,…, A b стр. Итак, по сути, мы выполняем ту же процедуру, что и в (iii), с умножением матрицы на вектор, где каждый столбец матрицы B является вектором.

С

Примечание: количество столбцов в A должно соответствовать количеству строк в B, чтобы можно было выполнить матричное умножение.

Свойства: пусть A будет матрицей размером m x n, пусть B и C имеют такие размеры, что суммы и произведения определены, и пусть r будет скалярным. Потом:

(v) Полномочия матрицы

Если A - матрица размера n x n и k - положительное целое число, то A ^ k (A в степени k) является произведением k копий A:

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

Предположим, у нас есть матрица A размера m x n, тогда транспонирование матрицы A (обозначенное A ^ T) - это матрица размера n x m, столбцы которой сформированы из соответствующих строк матрицы A.

Свойства: пусть A и B - матрицы, размеры которых подходят для следующих сумм и произведений. Потом:

Обратная матрица

Матричная алгебра предоставляет инструменты для управления матрицами и создания различных полезных формул способами, аналогичными обычной алгебре с действительными числами. Например, (мультипликативное) обратное действительное число, скажем 3, равно 3 ^ -1 или 1/3. Это обратное удовлетворяет следующим уравнениям:

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

Где I - единичная матрица размера n x n. Единичная матрица - это квадратная матрица с единицами на диагонали и нулями в других местах. Ниже показана единичная матрица 5 x 5:

Возвращаясь к принципу обратимости, приведенному выше, мы называем матрицу C обратной матрице A. Фактически, C однозначно определяется A, потому что если бы B был другим обратным к A, то B = BI = B (AC) = (BA) C = IC = C. Этот единственный обратный символ обозначается A ^ -1, так что:

Свойства:

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

Ортогональная матрица - это квадратная матрица, столбцы и строки которой являются ортогональными единичными векторами. То есть ортогональная матрица - это обратимая матрица, назовем ее Q, для которой:

Это приводит к эквивалентной характеристике: матрица Q ортогональна, если ее транспонирование равно ее обратной:

Применение линейной алгебры в науке о данных

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

Разложение по сингулярным значениям (SVD)

Разложение по сингулярным числам (SVD) - очень важная концепция в области науки о данных. Некоторые важные приложения SVD - это сжатие изображений и уменьшение размерности. Давайте сосредоточимся на последнем приложении. Снижение размерности - это преобразование данных из пространства большой размерности в пространство меньшей размерности таким образом, чтобы самая важная информация исходных данных по-прежнему сохранялась. Это желательно, поскольку анализ данных становится сложно поддающимся вычислению, когда размер данных становится слишком высоким.

SVD раскладывает матрицу на произведение трех отдельных матриц, как показано ниже:

куда

Предполагая, что матрица M является матрицей m x n:

  • U - ортогональная матрица размера m x m из левых сингулярных векторов;
  • Σ - это матрица размера m x n, для которой диагональные элементы в D (т.е. r x r) являются первыми r сингулярными значениями матрицы M;
  • V - ортогональная матрица размера n x n правых сингулярных векторов.

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

Можно вычислить SVD вручную, но это быстро становится интенсивным процессом, когда матрицы становятся более размерными. На практике приходится иметь дело с огромными объемами данных. К счастью, мы можем легко реализовать SVD на Python, используя Numpy. Чтобы не усложнять пример, мы определяем матрицу M 3x3:

import numpy as np
from numpy.linalg import svd

# define the matrix as a numpy array
M = np.array([[4, 1, 5], [2, -3, 2], [1, 2, 3]])

U, Sigma, VT = svd(M)

print("Left Singular Vectors:")
print(U)
print("Singular Values:")
print(np.diag(Sigma))
print("Right Singular Vectors:")
print(VT)

Выход:

Left Singular Vectors:
[[-0.84705289  0.08910901 -0.52398567]
 [-0.32885778 -0.8623538   0.38496556]
 [-0.41755714  0.49840295  0.75976347]]
Singular Values:
[[7.62729138 0.         0.        ]
 [0.         3.78075422 0.        ]
 [0.         0.         0.72823326]]
Right Singular Vectors:
[[-0.58519913 -0.09119802 -0.80574494]
 [-0.23007807  0.97149302  0.0571437 ]
 [-0.77756419 -0.21882468  0.58949953]]

Итак, в этом небольшом примере сингулярные значения (обычно обозначаемые как σ’s) равны σ1 = 7,627, σ2 = 3,781, σ3 = 0,728. Таким образом, используя только первые два сингулярных вектора, мы объясняем (σ1² + σ2²) / (σ1² + σ2² + σ3²) = 99,3% дисперсии!

Анализ главных компонентов (PCA)

Как и разложение по сингулярным значениям, анализ главных компонентов (PCA) является альтернативным методом уменьшения размерности. Целью PCA является создание новых некоррелированных переменных, называемых главными компонентами, которые максимизируют зафиксированную дисперсию. Итак, идея состоит в том, чтобы уменьшить размерность набора данных, сохранив при этом как можно больше «изменчивости» (то есть информации). Эта проблема сводится к решению задачи собственное значение-собственный вектор.

Поскольку собственные значения и собственные векторы выходят за рамки этой статьи, мы не будем углубляться в математическое объяснение PCA.

Заключение

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