Это первая статья из серии статей о машинном обучении. В этой статье мы начнем с одной из самых основных, но неотъемлемых частей машинного обучения - линейной алгебры. Мы будем следовать книге Глубокое обучение Яна Гудфеллоу, Йошуа Бенжио и Аарона Курвилля.
Важность линейной алгебры в машинном обучении
Если вы хотите глубоко понять алгоритмы машинного обучения, хорошее владение линейной алгеброй вам очень поможет.
Темы линейной алгебры для машинного обучения
- Зачем нам нужна линейная алгебра?
- От скаляров к тензорам
- Поток тензоров в ML
- Матричные операции: определитель, обратный
- Собственные значения и собственные векторы
- Разложение по сингулярным значениям
- Анализ основных компонентов
Что такое линейная алгебра?
Линейная алгебра - это раздел математики, который занимается такими линейными уравнениями, как:
a₁x₁ +a₂x₂ +. . . + aₙxₙ = b
В векторной записи мы говорим aᵗx = b
Мы называем это линейным преобразованием x.
Линейная алгебра является основой геометрии для определения таких объектов, как линии, плоскости, вращения и т. Д. Показанное выше линейное уравнение представляет собой плоскость в n-мерном пространстве. где вектор a - вектор нормали к плоскости .
Зачем нам это знать?
- Линейная алгебра используется во всем инженерном деле, потому что она основана на непрерывной математике, а не на дискретной.
- Важно для понимания алгоритмов машинного обучения. Например, мы преобразуем входные векторы (x1, .., xn) в выходные данные с помощью серии линейных преобразований. Когда мы обсудим MLP (многослойный персептрон) и обучим его на наборе данных MNIST, мы преобразуем изображения размером 28 x 28 в вектор длиной 784, и этот вектор подвергнется множеству линейных преобразований.
Надеюсь, вы поняли важность линейной алгебры, так что пора начать. В этой статье мы обсудим следующее:
1. Скаляры
2. векторы
3. Матрицы и тензоры.
4. умножение матриц и векторов
5. идентичность и обратные матрицы
Остальные темы будут рассмотрены в следующей статье.
Скалярный
Скаляр - это одно число, в отличие от других объектов линейной алгебры, которые обычно представляют собой массив чисел.
Вектор
- Это массив чисел, упорядоченных по порядку.
- Каждый номер обозначается индексом.
Посмотрим, как выглядит вектор
Вектор, показанный на изображении выше, является m-мерным вектором, а наш вектор x принадлежит R ᵐ (если все xᵢ - действительные числа).
3. Мы можем думать о векторах как о точке в пространстве. Каждый элемент дает координату по оси. Например, если x равен [1,2,3], то x - это точка в трехмерном пространстве, где координата x равна 1, координата y равна 2, а координата z равна 3.
Матрицы
- Двумерный массив чисел. Каждый элемент обозначен двумя индексами. Посмотрим, как выглядит матрица:
Если матрица A имеет форму высоты m и ширины n с действительными значениями, тогда она имеет в общей сложности m * n элементов и A ∈ R ^ m * n.
Тензор
Это массив с более чем двумя осями. Например, изображение RGB имеет три канала, каждый канал соответствует каждому значению цвета, поэтому изображение RGB имеет 3 оси.
Давайте посмотрим код для лучшего понимания.
import numpy as np RGB_image= np.random.random((100,100,3)) #the RGB_image has three axes so it is a tensor. #Let's see how to access the elements #this will give you the first element RGB_image[0][0][0] #this will give you the second element RGB_image[0][0][1]
Транспонирование матрицы
- Важная операция над матрицами.
- Транспонирование матрицы A обозначается Aᵗ
- Определяется как (Aᵗ) ᵢ, ⱼ = (A) ⱼ, ᵢ.
Векторы как частный случай матрицы
- Векторы - это матрицы с одним столбцом.
- Часто записывается в строке с использованием транспонирования x = [x₁, .., xₙ] ᵗ.
- Скаляр - это матрица с одним элементом a = aᵗ.
Добавление матрицы
- Мы можем добавлять матрицы одинаковой формы. Если A и B имеют одинаковую форму (высота m, ширина n), то C = A + B ⇒Cᵢ, ⱼ = Aᵢ, ⱼ + Bᵢ, ⱼ.
- Скаляр можно добавить к матрице или умножить на скаляр.
- D=aB+c ⇒Dᵢ,ⱼ =aBᵢ,ⱼ +c.
- Вектор, добавленный в матрицу, можно записать как C = A + b = ›C ᵢ, ⱼ = Aᵢ. , ⱼ + bⱼ. Это называется широковещательной рассылкой, поскольку вектор b добавляется в каждый столбец A.
Умножение матриц
- Чтобы продукт C = AB был определен, A должен иметь такой же номер. столбцов как нет. строк B.
- Если A имеет форму mxn, а B имеет форму nxp, то C имеет форму mxp.
- Математически это можно записать как.
- C=AB=>Cᵢ,ⱼ=∑ₖ Aᵢ,ₖBₖ,ⱼ.
Произведение Адамара
- Это поэлементное произведение A и B, которое равно Cᵢ, ⱼ = Aᵢ, ⱼBᵢ, ⱼ.
- Это обозначено как A⊙B.
Умножение векторов
- Скалярное произведение двух векторов x и y одинаковой размерности - это матричное произведение xᵗy.
Матричные свойства продукта
- Распределимость над сложением: A (B + C) = AB + AC.
- Ассоциативность: A (BC) = (AB) C.
- Не коммутативно: AB = BA не всегда верно.
- Скалярное произведение векторов коммутативно: xᵗy = yᵗx.
- Транспонирование матричного произведения имеет простую форму: (AB) ᵗ = BᵗAᵗ.
Линейное преобразование
- A x = b, где A ∈ R ^ m * n, x∈ Rⁿ, b∈ Rᵐ.
- Более подробно приведенное выше уравнение представляет собой систему m линейных уравнений с n переменными.
- Матричное представление выглядит так.
Мы хотим найти x = {x₁, ………, xₙ} с учетом A и b
Идентичность и обратные матрицы
- Инверсия матриц - мощный инструмент для аналитического решения A x = b.
- Прежде чем решать приведенное выше уравнение, нам нужно узнать о матрице идентичности
- Единичная матрица - это матрица, которая не меняет значение вектора, когда мы умножаем вектор на единичную матрицу. Он обозначается как Iₙ.
- Iₙ ∈ R ^ n * n и ∀ x∈Rⁿ Iₙx = x.
- Теперь давайте посмотрим, что является обратной матрицей A. Обратная матрица обозначается как A⁻¹ и A * A⁻¹ = I ( это означает произведение A на обратный результат в матрице идентичности).
- Теперь мы можем решить A x = b следующим образом:
- A⁻¹Ax=A⁻¹b
- Ix=A⁻¹b
- x=A⁻¹b
О следующем сообщении
В следующем посте мы обсудим, как решить систему линейных уравнений с помощью исключения Гаусса. Мы также увидим, что такое нормы и как мы их рассчитываем. Мы углубимся в то, что такое собственные векторы и собственные значения. Мы также увидим, что такое собственное разложение, разложение по сингулярным значениям, псевдообратная матрица Мура-Пенроуза и оператор следа.
Спасибо за внимание.