Подробный учебный курс по линейной алгебре для практиков машинного обучения
Стандартные пакеты, такие как Python Numpy или Matlab, уже проделали для нас много тяжелой работы под капотом. Но для того, чтобы правильно использовать эти подручные инструменты, нам все еще необходимо иметь полное представление о самой линейной алгебре, и именно об этом я собираюсь рассказать вам в этой статье.
Код будет размещен в репозитории Github: https://github.com/frankligy/ScPyT
Понятия, которые вам нужно знать в линейной алгебре
Я всегда думал, что самая сложная часть для каждого новичка в погружении в мир линейной алгебры - это несколько нелогичная терминология. Поэтому я решил все четко объяснить здесь. Концепции, которые я расскажу, основаны на моих собственных обучающих заметках из открытого курса обучения профессора Гилберта Стренга Массачусетского технологического института и книги по глубокому обучению, написанной доктором Яном Гудфеллоу и др., Но я добавляю свое собственное понимание и обобщу их в связной форме.
Я дам краткое объяснение всех концепций и, при желании, представлю код Numpy, чтобы вы могли играть с ними во время чтения.Давайте начнем!
Векторное пространство, подпространство, диапазон, пространство столбцов, пространство строк, пустое пространство, пустое пространство слева, ранг, базис, ортогональная матрица, симметричная матрица
Представьте, что у нас есть матрица A, в python A.T означает транспонирование A, @ означает умножение матрицы.
Размах набора векторов - это все линейные комбинации этих векторов. Подумайте о векторах (0,1) и (1,0), промежуток между этими двумя векторами будет всей плоскостью x-y.
Затем, думая о трехмерном пространстве xyz (векторное пространство R3), оно состоит из базиса - (1,0,0), (0,1,0) и (0,0,1), поскольку каждый элемент в векторном пространстве можно записать как линейную комбинацию элементов в основе.
Другое понятие - подпространство, Span of Vector (1,0,0) и (0,1,0) составляет подпространство трехмерного векторного пространства x-y-z R3. (Подмножество большего векторного пространства)
Пространство столбцов A - это промежуток всех векторов-столбцов A, пространство строк A - промежуток всех векторов-строк A. Если A @ x = 0, промежуток всех решений x составляет нулевое пространство A. Если AT @ x = 0, промежуток всех решений x составляет нулевое слева пространство A. Эти четыре пространства будут встречаться во многих учебных пособиях по линейной алгебре.
Сколько линейно независимых векторов-столбцов в матрице A? Это ранг A. Чтобы лучше понять линейную независимость представим,что (1,2,3) и (10,20,30) линейно зависимы, потому что (10,20,30) кратно (1,2, 3)! Тогда d как вычислить ранг матрицы?
Внутренние произведения двух векторов равны 0, и все они имеют единичную длину, тогда они являются ортонормированными векторами. Если строки и столбцы матрицы A являются ортонормированными векторами, эта матрица A является ортогональной матрицей. В математике это означает A.T @ A = A @ A.T = I.
Симметричная матрица означает A = A.T, также, симметричная матрица и ортогональная матрица применяются только к матрице действительных значений, в комплексной матрице у нас есть аналоги, а именно эрмитова матрица и унитарная матрица, мы рассмотрим их в более поздней части.
Обратный, определитель
Вы можете вычислить определитель любой квадратной матрицы.
Только обратимая (определитель! = 0) квадратная матрица будет иметь обратную. Если A @ B = I, B - обратная матрица A.
Исключение по Гауссу, форма эшелона строк, форма сокращенного эшелона, ведущий коэффициент, поворот, операция элементарной строки
Ме́тод Га́усса — классический метод решения системы линейных алгебраических уравнений (СЛАУ). Назван в честь немецкого математика Карла Фридриха Гаусса. Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе треугольного вида, из которой последовательно, начиная с последних (по номеру), находятся все переменные системы
Метод исключения Гаусса может использоваться в (a) решении линейной системы Ax = b, (b) вычислении обратной матрицы (c) вычислении ранга (d) вычислении детерминанта (подробности см. В Википедии) с помощью ряда элементарных операций со строками, включая ( 1) поменять местами строки, (2) масштабировать строки, (3) добавить одну строку в другую.
Есть еще две концепции, с которыми нам следует ознакомиться:
Форма эшелона строк: первый ненулевой элемент слева в каждой строке (ведущий коэффициент, точка поворота) всегда находится справа от первого ненулевого элемента в строке выше.
Уменьшенная форма эшелона строк: форма эшелона строк, опорные точки которой равны 1, а столбцы, содержащие опорные точки, равны нулю в другом месте.
Процесс исключения Гаусса направлен на получение формы эшелона строк, это упрощенная форма любой линейной системы. Кроме того, конечной целью было является получения сокращенной формы эшелона строк, которая позволит вам решить Ax = b, просто взглянув на саму форму.
Произведение Адамара
Во-первых, давайте разберемся с внутренним продуктом, внешним продуктом, произведением Адамара двух одномерных массивов:
Произведение Адамара[1] (произведение Шура[2], покомпонентное произведение) — бинарная операция над двумя матрицами одинаковой размерности, результатом которой является матрица той же размерности, в которой каждый элемент с индексами {\displaystyle i,j}i,j — это произведение элементов с индексами {\displaystyle i,j}i,j исходных матриц. Операция названа в честь французского математика Жака Адамара и немецкого математика Исая Шура.
Как спроецировать один вектор (a) на другой вектор (b)?
Процесс Грама-Шмидта заключается в ортонормировании набора векторов (v1, v2, v3… vn) в (u1, u2, u3… un) в одном векторном пространстве Rn, но внутри которого каждый элемент имеет единичную длину и взаимно ортогонален . В некотором смысле он преобразует набор векторов в набор ортонормированных векторов в том же векторном пространстве. Это очень полезно, поскольку во многих случаях требуется, чтобы ваша матрица была ортогональной. Следовательно, процесс Грама-Шмидта может быть вашим подходом, когда дело доходит до ортонормировки чего-либо (вектора или матрицы).
LU-разложение, QR-разложение.
LU-разложение направлено на разложение матрицы (не обязательно квадратной) на нижнюю треугольную матрицу (L, элементы над диагональю равны 0) и верхнюю треугольную матрицу (U, элементы над диагональю равны 0). Он связан с разложением по Гауссу, но имеет лучшую вычислительную эффективность. Чтобы материализовать разложение LU, иногда мы переупорядочиваем матрицу, используя матрицу P.
QR-разложение направлено на разложение матрицы на ортогональную матрицу (Q) и верхнюю треугольную матрицу (R). Он используется в QR-алгоритмах для решения линейной задачи наименьших квадратов.
Собственное разложение, диагонализация, характеристический полином.
Я проиллюстрирую собственное разложение, используя квадратную матрицу 3 * 3, она будет иметь 3 собственных вектора и родственные 3 собственных значения.
В линейной алгебре квадратная матрица A называется диагонализируемой, если она подобна диагональной матрице, то есть если существует невырожденная матрица P, такая что P−1AP является диагональной матрицей. Если V — конечномерное векторное пространство, то линейное отображение T : V → V называется диагонализируемым, если существует упорядоченный базис в V, при котором T представляется в виде диагональной матрицы. Диагонализацией называется процесс нахождения соответствующей диагональной матрицы для диагонализируемой матрицы или линейного отображения.[1] Квадратная матрица, которую нельзя диагонализировать, называется дефектной.
Диагонализируемые матрицы и отображения интересны, поскольку с диагональными матрицами просто работать: собственные значения и векторы известны, возведение в степень осуществляется возведением в степень диагональных элементов, определитель равен произведению диагональных элементов. С геометрической точки зрения диагонализируемая матрица представляет собой неоднородное масштабирование: в каждом направлении растяжение происходит в общем случае с разным коэффициентом в зависимости от числа на диагонали.
Диагонализация во многом связана с собственным разложением. Обозначим исходную матрицу как A, затем, выполнив собственное декомпозитирование (см. Рисунок выше), A можно разложить на три части: V (матрица собственных векторов) умножить на D умножить на VI (обратная V, подумайте о умножении VI на обе стороны уравнения). Поскольку D - диагональная матрица. Мы называем этот процесс диагонализацией исходной матрицы A. Обычно, если матрица D симметрична (как показано ниже), то D она диагонализуема. Здесь A - диагональная матрица.
Квадратная матрица A (n * n) может иметь характеристический полином, который мы пытаемся вычислить:
Псевдообратная матрица Мура-Пенроуза, эрмитова, сопряженно транспонированная, полноранговая матрица
Мы знаем, что только обратимая квадратная матрица имеет обратную её определитель не равен нулю. Для неквадратных матриц и вырожденных матриц обратных матриц не существует, а как насчет неквадратной матрицы?
Мур-Пенроуз определяет псевдообратную (A +, n * m) прямоугольную матрицу (A, m * n), если A + удовлетворяет четырем конкретным условиям:
(1) AA+A = A
(2) A+AA+ = A+
(3) (AA+)* = AA+
(4) (A+A)* = A+A
Символ * означает сопряженное транспонирование для сложной квадратной матрицы (что означает, что элемент может быть комплексным числом), сопряженное транспонирование должно сначала транспонировать матрицу, а затем сопрягать (перевернуть знак мнимой части, но оставить действительную часть нетронутой) каждую запись матрица.
Эрмитова матрица - это комплексная квадратная матрица, сопряженная транспонированная которой равна самой себе. Его реальным эквивалентом является симметричная матрица. Если A - матрица полного ранга (rank = min (m, n)), A + может быть выражена как:
(1) А + = (А * А) -1А *. A имеет независимые столбцы
(2) A + = A * (AA *) - 1.A имеет независимые строки
Разложение по сингулярным значениям (SVD), сингулярная матрица, комплексная унитарная матрица
Только квадратная матрица имеет собственные значения, прямоугольная матрица может иметь сингулярные значения, квадратная матрица, определитель которой = 0, будет сингулярной матрицей, или, другими словами, она необратима.
Комплексная матрица будет унитарной, если ее сопряженное транспонирование окажется обратным.U * U = UU * = I. Соответствующим вещественным элементом является ортогональная матрица.
Таким образом, прямоугольную матрицу A можно разложить на три компонента: U, S и Vh, диагональ S матрицы содержат сингулярные значения для матрицы A. Это разложение называется разложением по сингулярным значениям (SVD). SVD может быть действительно удобным методом для вычисления псевдообратного ранга матрицы.Кроме того, SVD также является решением по умолчанию для PCA в довольно большом количестве пакетов машинного обучения (например, scikit-learn). Понимание SVD можно рассматривать как веху на вашем пути к линейной алгебре.
Lp Norm, норма Фробениуса, einsum
Что такое нормы L1 и L2? По сути, они представляют разные метрики для определения расстояния вектора от начала координат. Определим более общую норму Lp:
Стоит отметить, что обычно вы используете норму L2 для обозначения величины вектора, это можно увидеть из части проекции, где мы используем внутреннее произведение для вычисления знаменателя.
Для матрицы мы обычно встречаем норму Фробениуса, как указано выше.
Наконец, я хотел бы представить функцию суммы Эйнштейна в пакете Numpy. Это своего рода волшебная функция, которая обеспечивает общее решение почти для всех основных матричных операций, с которыми вы можете столкнуться, включая внутреннее произведение, внешнее произведение, матричное умножение, трассировку, диагональ, произведение Адамара, суммирование, сумму строк, сумму столбцов, транспонирование.
По сути, эта функция принимает два аргумента, первый называется «нижний индекс», второй называется «операнды», давайте посмотрим на пример умножения матриц, чтобы понять, что:
Как мы видим, мы используем i и j для обозначения размеров операнда x, k и j для представления размеров операнда y. Мы указываем, что выходная матрица должна иметь размер i * k. Функция einsum автоматически определит, что это задача умножения матриц. Поняв это, давайте углубимся во все интересные примеры, которые может выполнять функция einsum.
Насколько важна линейная алгебра?
Не всем нужно знать линейную алгебру, и то, насколько вы должны понимать линейную алгебру, зависит от вашего типа работы. Я бы посоветовал вооружиться необходимыми знаниями с этого момента и убедиться, что вы всегда будете конкурентоспособны в обозримом будущем.
Спасибо за прочтение! В следующий раз я расскажу о статистической модели на Python!