Это первая статья из серии статей о машинном обучении. В этой статье мы начнем с одной из самых основных, но неотъемлемых частей машинного обучения - линейной алгебры. Мы будем следовать книге Глубокое обучение Яна Гудфеллоу, Йошуа Бенжио и Аарона Курвилля.

Важность линейной алгебры в машинном обучении

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

Темы линейной алгебры для машинного обучения

  1. Зачем нам нужна линейная алгебра?
  2. От скаляров к тензорам
  3. Поток тензоров в ML
  4. Матричные операции: определитель, обратный
  5. Собственные значения и собственные векторы
  6. Разложение по сингулярным значениям
  7. Анализ основных компонентов

Что такое линейная алгебра?

Линейная алгебра - это раздел математики, который занимается такими линейными уравнениями, как:

a₁x₁ +a₂x₂ +. . . + aₙxₙ = b

В векторной записи мы говорим aᵗx = b

Мы называем это линейным преобразованием x.

Линейная алгебра является основой геометрии для определения таких объектов, как линии, плоскости, вращения и т. Д. Показанное выше линейное уравнение представляет собой плоскость в n-мерном пространстве. где вектор a - вектор нормали к плоскости .

Зачем нам это знать?

  1. Линейная алгебра используется во всем инженерном деле, потому что она основана на непрерывной математике, а не на дискретной.
  2. Важно для понимания алгоритмов машинного обучения. Например, мы преобразуем входные векторы (x1, .., xn) в выходные данные с помощью серии линейных преобразований. Когда мы обсудим MLP (многослойный персептрон) и обучим его на наборе данных MNIST, мы преобразуем изображения размером 28 x 28 в вектор длиной 784, и этот вектор подвергнется множеству линейных преобразований.

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

1. Скаляры

2. векторы

3. Матрицы и тензоры.

4. умножение матриц и векторов

5. идентичность и обратные матрицы

Остальные темы будут рассмотрены в следующей статье.

Скалярный

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

Вектор

  1. Это массив чисел, упорядоченных по порядку.
  2. Каждый номер обозначается индексом.

Посмотрим, как выглядит вектор

Вектор, показанный на изображении выше, является m-мерным вектором, а наш вектор x принадлежит R ᵐ (если все xᵢ - действительные числа).

3. Мы можем думать о векторах как о точке в пространстве. Каждый элемент дает координату по оси. Например, если x равен [1,2,3], то x - это точка в трехмерном пространстве, где координата x равна 1, координата y равна 2, а координата z равна 3.

Матрицы

  1. Двумерный массив чисел. Каждый элемент обозначен двумя индексами. Посмотрим, как выглядит матрица:

Если матрица 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

О следующем сообщении

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

Спасибо за внимание.