Перейти к содержимому

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

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

Примеры из 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}

*Нужно, чтобы все коэффициенты одновременно не были равны нулю.

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

Складывая вектора из какого-то набора всеми способами (со всеми возможными коэффициентами) можно получить подпространство

Это называется линейной оболочкой(span⁡⟨vi⟩\operatorname{span}\langle v_i \rangle)

Например, в случае:

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⟩\operatorname{span}\langle v_1, v_2, v_3 \rangle = \operatorname{span}\langle v_1, v_2 \rangle

Так как третий вектор выражается через первые два, то линейная оболочка представляет собой плоскость.

Минимальный набором векторов, линейная оболочка которых совпадает с линейной оболочкой изначального набора векторов называют базисомподпространства (само пространство можно тоже рассматривать как подпространство).

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

Количество векторов в базисе - размерность пространства.

Важно, что размерность не зависит от выбора самих векторов в подпространстве, это свойство самого подпространства.

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

Так же, размерность линейной оболочки векторов называют рангоммножества векторов.

Пространство не может быть размерности больше, чем количество координат у вектора.

Потому что можно взять базис:

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.

Пример 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⟩\operatorname{span}\langle v_1v_2v_3 \rangle.

*Важно понять, что базисом здесь является так же и набор 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}

Линейную оболочку можно воспринимать как количество информации, которую дают вектора

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

Можно взять базис этого подпространства и рассматривать координаты векторов уже относительно него

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

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

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

  • 1
  • 2
  • 3

Какой ранг этой системы векторов?

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

  • 1
  • 2
  • 3
  • 4

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

  • Сколько угодно
  • 2
  • 3
  • 4