Геометрическая интуиция для Data science · Модуль 1: Пространственная линейная алгебра

1.2. Борьба с избыточностью

Шаг 1 · Теория

Первый модуль посвящён линейной алгебре, главной науке, позволяющей работать с данными. Эта база необходима для понимания сути дальнейших алгоритмов.
Примеры из Data science тоже будут, хотя в модулях 2-4 уже сильно больше упора на сами данные.

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

Возьмём какой-то набор из n векторов.
Если какой-то из них выражается через другие (сложением и умножением на числа), то перекинув через равно можно получить линейную комбинацию равную нулю (линейная комбинация это просто сумма с коэффициентами)
Например:

v1=(0,1,0)v2=(1,2,0)v3=(1,1,0)−v1+v2−v3=0⇒v3=−v1+v2\begin{array}{l}v_1 = (0, 1, 0) \\ v_2 = (1, 2, 0) \\ v_3 = (1, 1, 0) \\ -v_1 + v_2 - v_3 = 0 \\ \Rightarrow v_3 = -v_1 + v_2\end{array}

Получается, что для выражения всех векторов в системе хватает v1v_1 и v2v_2

Или в более общем виде:
v1=∑i=2nμivi⇒∑i=1nλivi=0\begin{gathered}v_1 = \sum_{i = 2}^{n}{\mu_iv_i} \\ \Rightarrow \sum_{i = 1}^{n}{\lambda_iv_i} = 0\end{gathered}*Нужно, чтобы все коэффициенты одновременно не были равны нулю.

Назовём такой набор векторов линейно зависимыми.

Шаг 2 · Теория

Складывая вектора из какого-то набора всеми способами (со всеми возможными коэффициентами) можно получить подпространство 
Это называется линейной оболочкой (span<vi>span<v_i>)
Например, в случае:

 v1=(0,1,0)v2=(1,2,0)v3=(1,1,0)\begin{array}{l}v_1 = (0, 1, 0) \\ v_2 = (1, 2, 0) \\ v_3 = (1, 1, 0)\end{array}
span<v1,v2,v3>=span<v1,v2>span<v_1, v_2, v_3> = span<v_1, v_2>
Так как третий вектор выражается через первые два, то линейная оболочка представляет собой плоскость.
Минимальный набором векторов, линейная оболочка которых совпадает с линейной оболочкой изначального набора векторов называют базисом подпространства (само пространство можно тоже рассматривать как подпространство).

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

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

Пространство не может быть размерности больше, чем количество координат у вектора.
Потому что можно взять базис: 
e1=(1,0,0,...0)e2=(0,1,0,...0)⋮en=(0,0,0,...1)\begin{array}{l}e_1 = (1, 0, 0, ... 0) \\ e_2 = (0, 1, 0, ... 0) \\ \vdots \\ e_n = (0, 0, 0, ... 1)\end{array}

В нём будет векторов столько, сколько количество координат и через него выражаются все такие вектора.
А так как в любом базисе одинаковое количество векторов, то и размерность не может быть больше n.

Шаг 3 · Теория

 Пример 1:
v1=(0,1,0)v2=(1,2,0)v3=(1,1,0)\begin{array}{l}v_1 = (0, 1, 0) \\ v_2 = (1, 2, 0) \\ v_3 = (1, 1, 0)\end{array}

Мы уже пришли к выводу, что всё подпространство выражается через v1 и v2v_1 \space и \space v_2, поэтому v1 и v2v_1 \space и \space v_2 - базис span<v1v2v3>span<v_1v_2v_3>.
*Важно понять, что базисом здесь является так же и набор v1,v3v_1, v_3 и набор v2,v3v_2, v_3.
Так как для описания этой системы хватает двух векторов, но не хватает одного, то ранг системы равен двум, а значит, все три вектора лежат в одной плоскости.

Пример 2:
Стандартный базис n-мерного пространства:
e1=(1,0,0,...0)e2=(0,1,0,...0)⋮en=(0,0,0,...1)\begin{array}{l}e_1 = (1, 0, 0, ... 0) \\ e_2 = (0, 1, 0, ... 0) \\ \vdots \\ e_n = (0, 0, 0, ... 1)\end{array}

Координаты вектора, которые мы обычно пишем как раз и являются коэффициентами, с помощью которых мы получаем вектора через базис:
v=(0,2,3)v=0∗e1+2∗e2+3∗e3\begin{array}{l}v = (0, 2, 3) \\ v = 0*e_1 + 2 * e_2 + 3 * e_3\end{array}

Шаг 4 · Теория

Линейную оболочку можно воспринимать как количество информации, которую дают вектора
Даже если мы имеем сто векторов в десятимерном пространстве, но размерность их линейной оболочки составляет всего три, хранить все десять измерений попросту не имеет смысла
Можно взять базис этого подпространства и рассматривать координаты векторов уже относительно него
Это хорошо позволяет сжимать данные, так ещё и может раскрыть, какие признаки действительно имеют смысл, а какие являются комбинацией других

На следующем видео показана наглядная визуализация того, о чём я сейчас говорил

Шаг 5 · Видео
Шаг 6 · Задача

Представьте три вектора в трехмерном пространстве, которые лежат в одной плоскости. Каким будет ранг этой системы векторов?

Выберите один ответ
Шаг 7 · Задача

Какой ранг этой системы векторов?
v1=(0,1,2,3)v2=(1,1,2,3)v3=(1,0,0,1)v4=(0,0,0,1)\begin{array}{l}v_1 = (0, 1, 2, 3) \\ v_2 = (1, 1, 2, 3) \\ v_3 = (1, 0, 0, 1) \\ v_4 = (0, 0, 0, 1)\end{array}

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

Выберите один ответ
Шаг 8 · Задача

Какое максимальное количество линейно независимых векторов можно взять в обычном "нашем" пространстве?

Выберите один ответ