Линейная алгебра

Векторные пространства: где живут данные

Сложить вектор «кот» с вектором «автомобиль» 50/50 - не бессмыслица, а конкретная картинка. Latent space Stable Diffusion работает не магией, а аксиомами векторного пространства, написанными в 1888 году.

  • Latent space Stable Diffusion: 16384-мерное векторное пространство (4×64×64), в котором интерполяция между двумя точками даёт плавный морф между изображениями.
  • Embedding space Word2Vec: 300-12288 измерений, и арифметика king - man + woman ≈ queen работает потому, что пространство замкнуто под сложением.
  • Линейная регрессия живёт в column space матрицы признаков X: предсказания не могут выйти за span обучающих данных.
  • LoRA fine-tuning GPT-4: dW в r-мерном подпространстве (r=4..64), 99% экономии параметров при сравнимом качестве.
  • Manifold hypothesis: 10000-мерные данные о лицах реально живут в 50-мерном подпространстве - этот низкоразмерный span и ищет каждая нейросеть.

Векторные пространства: где живут данные

**В latent space Stable Diffusion можно интерполировать.** Возьмём эмбеддинг «кот» и эмбеддинг «автомобиль», сложим с коэффициентами 0.5 и 0.5 - получим точку пространства, соответствующую «кот-автомобиль». Не бессмыслицу, а вполне конкретный образ. Это работает потому что latent space - **векторное пространство**: в нём определены сложение и умножение на скаляр, и результат остаётся в том же пространстве.

**Чему учит этот урок на самом деле**: не формальные аксиомы, а интуиция о том, где в ML появляется структура пространства - и почему именно там алгоритмы работают так красиво.

Что главное в концепте «Векторные пространства: где живут данные»?

Проверка усвоения материала концепта.

Векторное пространство: что должно выполняться

Векторное пространство: что должно выполняться

Множество V является **векторным пространством**, если на нём определены сложение и умножение на скаляр, и оба замкнуты: результат снова в V. Плюс несколько свойств, которые делают арифметику предсказуемой.

Для любых u, v, w ∈ V и скаляров a, b: СЛОЖЕНИЕ: u + v ∈ V (замкнутость) u + v = v + u (коммутативность) (u + v) + w = u + (v + w) (ассоциативность) существует 0 ∈ V: v + 0 = v (нейтральный элемент) существует -v: v + (-v) = 0 (обратный элемент) УМНОЖЕНИЕ НА СКАЛЯР: a·v ∈ V (замкнутость) 1·v = v a·(b·v) = (a·b)·v a·(u + v) = a·u + a·v (a + b)·v = a·v + b·v ЕСЛИ ВСЁ ЭТО ЕСТЬ - пространство называется векторным. Аксиомы - не бюрократия, а гарантия, что алгоритмы работают.

МножествоОперацииВекторное пространство?
Rⁿ (n-мерные векторы)покоординатные сложение и умножениеДа - стандартный пример
Многочлены степени ≤ 3p(x) + q(x), a·p(x)Да - dim = 4
Функции f: R → Rf(x) + g(x), a·f(x)Да - бесконечномерное
Матрицы m×nпоэлементные операцииДа - dim = m·n
Положительные числа R⁺обычное умножениеНет - 1·(-1) = -1 ∉ R⁺

**Пространство функций** - не абстракция. В Gaussian Processes предсказание - это линейная комбинация обучающих функций. В Fourier-анализе сигнал - это вектор в пространстве тригонометрических функций. Алгоритмы те же, что и для Rⁿ - просто «вектор» теперь функция.

Что главное в концепте «Векторное пространство: что должно выполняться»?

Проверка усвоения материала концепта.

Линейная комбинация и span

Линейная комбинация и span

**Линейная комбинация** - сумма векторов с произвольными коэффициентами. **Span** - множество всех линейных комбинаций заданного набора. Это те «точки пространства, которых можно достичь».

ОПРЕДЕЛЕНИЕ: span{v₁, v₂, ..., vₙ} = {c₁v₁ + c₂v₂ + ... + cₙvₙ | c₁,...,cₙ ∈ R} ГЕОМЕТРИЯ: span{(1, 0)} в R² = прямая (одна ось) span{(1,0), (0,1)} в R² = R² (всё пространство) span{(1,0), (2,0)} в R² = прямая (они коллинеарны!) span{(1,0), (0,1)} в R³ = плоскость z = 0 (не всё R³) ML-ИНТЕРПРЕТАЦИЯ: Обучающая выборка из n объектов = n векторов в R^d span{x₁, x₂, ..., xₙ} = все линейные комбинации = пространство, в котором линейная модель «видит» данные. Если n < d - линейная модель не может выйти за span обучающих данных. Именно поэтому нужно n > d примеров для обучения линейной регрессии.

**Manifold hypothesis** в ML: реальные данные (лица, тексты, молекулы) живут не во всём 10000-мерном пространстве, а на низкоразмерном многообразии внутри него. Нейросеть ищет span, покрывающий это многообразие. Именно поэтому latent space DALL-E имеет смысловую структуру: он приближает span реальных изображений.

Что главное в концепте «Линейная комбинация и span»?

Проверка усвоения материала концепта.

Линейная независимость: нет лишних векторов

Линейная независимость: нет лишних векторов

Если один вектор из набора выражается через остальные - он ничего не добавляет к span. В ML это прямо соответствует **мультиколлинеарности** признаков: если «рост в сантиметрах» и «рост в дюймах» в датасете - второй вычисляется из первого умножением на константу, и матрица становится необратимой.

ОПРЕДЕЛЕНИЕ: {v₁, ..., vₙ} линейно независимы, если c₁v₁ + ... + cₙvₙ = 0 => c₁ = ... = cₙ = 0 ЭКВИВАЛЕНТНО: ни один вектор не выражается через остальные. ПРОВЕРКА: записать векторы строками матрицы A, найти rank(A). rank = n => все независимы rank < n => (n - rank) векторов - лишние ML-ПРИМЕР (мультиколлинеарность): Признаки: [рост_см, рост_дюйм, вес, ИМТ] рост_дюйм = рост_см / 2.54 => линейно зависим ИМТ = вес / (рост_м)² => нелинейно зависим (другое) Для Xᵀ·X: если признаки линейно зависимы - матрица вырожденная, нормальное уравнение не решается. Спасение: ridge regression или PCA.

Что главное в концепте «Линейная независимость: нет лишних векторов»?

Проверка усвоения материала концепта.

Подпространство: закрытое под операциями

Подпространство: закрытое под операциями

**Подпространство** - подмножество векторного пространства, которое само является векторным пространством. Для этого оно должно быть закрытым под сложением и умножением на скаляр, и содержать нулевой вектор.

Для матрицы A размера m×n существуют четыре подпространства: Column space C(A) = span столбцов A - подпространство в Rᵐ dim = rank(A) Все правые части b, для которых Ax = b ИМЕЕТ решение. Row space R(A) = span строк A - подпространство в Rⁿ dim = rank(A) (совпадает с column space!) Null space N(A) = {x | Ax = 0} - подпространство в Rⁿ dim = n - rank(A) (теорема о ранге-дефекте) Что «схлопывается» в ноль при умножении на A. Left null space N(Aᵀ) = {y | Aᵀy = 0} - подпространство в Rᵐ dim = m - rank(A) ГЛАВНАЯ ТЕОРЕМА (Fundamental Theorem of Linear Algebra): C(A) ⊥ N(Aᵀ) и R(A) ⊥ N(A) Четыре подпространства разбивают Rᵐ и Rⁿ попарно-перпендикулярно.

Что главное в концепте «Подпространство: закрытое под операциями»?

Проверка усвоения материала концепта.

ML: latent space как векторное пространство

ML: latent space как векторное пространство

Генеративные модели - VAE, GAN, Stable Diffusion - организуют внутреннее представление как векторное пространство. Это не метафора: в таком пространстве работают интерполяция, арифметика атрибутов и контролируемая генерация.

**Почему не все latent spaces одинаково полезны**: обычный автокодировщик (AE) не гарантирует, что latent space - связное векторное пространство. VAE добавляет regularization, которая делает пространство «заполненным»: любая точка между двумя обученными примерами декодируется в осмысленное изображение. Это прямое применение понятия выпуклого span.

Что главное в концепте «ML: latent space как векторное пространство»?

Проверка усвоения материала концепта.

Ранг матрицы - размерность column space

Ранг матрицы - размерность column space

**Ранг** - единое число, которое характеризует «реальную размерность» матрицы. Столбцовый ранг = строковый ранг - этот факт неочевиден, и из него вытекает вся теория LoRA в дообучении LLM.

rank(A) = dim(C(A)) = dim(R(A)) НАХОЖДЕНИЕ: Привести A к row echelon form (REF) методом Гаусса. rank = число ненулевых строк в REF. ПРИМЕР: A = [1 2 3] REF: [1 2 3] [2 4 6] [0 0 0] rank = 1 (строка 2 = 2 * строка 1) [3 6 9] [0 0 0] строка 3 = 3 * строка 1 ML-СЛЕДСТВИЯ: rank(W_layer) < min(d_in, d_out) => слой нейросети «сжимает» информацию => LoRA: вместо dW используют A·B, где rank(A·B) = r << min(d,d') => Экономия памяти при fine-tuning: GPT-3 имеет 175B параметров, LoRA r=8 добавляет лишь 0.1% от этого числа

Векторные пространства в ML: карта понятий

Где абстракция живёт в реальных системах

КомпонентРольДетали
Latent Space (VAE / GAN / Diffusion)Векторное пространство представленийStable Diffusion (dim 4×64×64=16384), DALL-E 2, Midjourney - интерполяция работает, потому что это ВП
Embedding Space (Word2Vec, BERT, OpenAI)Span обученных представлений слов/токенов300-12288 измерений; king - man + woman = queen - арифметика в этом пространстве
Column Space в линейной регрессииВсе достижимые предсказания при данных признакахЕсли y не в C(X) - точного решения нет; МНК проецирует y на C(X)
Null Space (ядро)Направления, которые модель не видитМультиколлинеарные признаки порождают ядро; dropout добавляет случайные направления в ядро
LoRA (Low-Rank Adaptation)Обновление весов в низкоранговом подпространствеLLaMA, GPT-4 fine-tuning: dW живёт в r-мерном подпространстве (r=4..64)
Gaussian ProcessesФункциональное векторное пространствоПредсказание = линейная комбинация ядровых функций; бесконечномерное ВП

Что главное в концепте «Ранг матрицы - размерность column space»?

Проверка усвоения материала концепта.

Практика: покрывают ли данные пространство?

Практика: покрывают ли данные пространство?

Вопросы для собеседования

Span обучающей выборки X - что это геометрически, и как это ограничивает линейную модель?

- Span(X) = все возможные предсказания y_hat = X·w при любых w - Если y не в C(X) - точного решения нет, МНК находит ближайшую точку (проекцию y на C(X)) - При rank(X) < d - бесконечно много минимизаторов; Ridge выбирает минимально-норменный - Добавление новых признаков = расширение span = больше возможностей для модели

Почему rank(A) = rank(Aᵀ)? Это неочевидный факт.

- При приведении к REF строковое пространство не меняется - Число pivot-позиций в REF = column rank = row rank - Pivot стоит и в строке, и в столбце одновременно - поэтому оба ранга одинаковы - Это непросто: размерность span строк и span столбцов матрицы всегда совпадает

LoRA использует низкоранговые матрицы для fine-tuning. Почему предположение о низком ранге разумно для весовых матриц LLM?

- При fine-tuning меняется поведение в узком домене - изменение весов низкоранговое - Предобученные веса уже содержат богатое представление; fine-tuning только «доворачивает» - Эмпирически rank 4-16 достаточно для большинства задач адаптации - Это экономит 99%+ параметров при сравнимом качестве с полным fine-tuning

Что главное в концепте «Практика: покрывают ли данные пространство?»?

Проверка усвоения материала концепта.

Что унести из урока

  • **Векторное пространство** - множество с операциями сложения и умножения на скаляр, замкнутое под ними
  • **Span{v₁,...,vₙ}** - все точки, достижимые линейными комбинациями; в ML это ограничение возможностей линейной модели
  • **Линейная независимость** = нет лишних векторов; в данных = нет мультиколлинеарных признаков
  • **Четыре подпространства матрицы**: C(A), R(A), N(A), N(Aᵀ) - полная картина того, как A действует
  • **rank(A) = dim(C(A)) = dim(R(A))** - ранг строк всегда равен рангу столбцов
  • **Latent space** генеративных моделей - векторное пространство; интерполяция и арифметика атрибутов работают именно поэтому
  • **LoRA** = fine-tuning в низкоранговом подпространстве; экономия 100x параметров

Куда дальше

Векторное пространство - фундамент, на котором строится всё остальное

  • Базис и размерность — Базис - минимальный набор, порождающий пространство; смена базиса = PCA, Fourier, embeddings
  • Собственные векторы и значения — Собственные векторы - особые направления в пространстве, в которых матрица действует масштабированием
  • SVD — Разложение через базисы column space и row space; LoRA, рекомендательные системы
  • Обратная матрица — Обратная существует только если null space тривиален (только нулевой вектор)

Связанные уроки

  • calc-17-multivariable
  • stat-14-pca
Векторные пространства: где живут данные

0

1

Войти