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

Базис: система координат, которую выбирают сами

Один и тот же кадр в RGB - 12 миллионов чисел. В DCT-базисе JPEG - 600 тысяч. В eigenfaces-базисе - 100 чисел. Сама фотография не изменилась, изменилась лишь система координат.

  • PCA на медицинских данных: 1000 признаков сжимаются в 10 главных компонент с сохранением 95% дисперсии.
  • JPEG хранит блок 8×8 пикселей в DCT-базисе и выбрасывает ~50 из 64 коэффициентов - получается 5% исходного размера без видимой потери качества.
  • Word2Vec обучает 300-мерный базис, в котором king - man + woman ≈ queen возникает само из линейной алгебры, без единой написанной правила.
  • Кватернионы в робототехнике и 3D-движках Unreal/Unity - смена базиса вращений, избавляющая от gimbal lock.
  • LoRA для GPT-3: dW живёт в r-мерном подпространстве (r=8), 0.1% от 175B параметров - и fine-tuning сходится за часы вместо недель.

Базис: система координат, которую выбирают сами

**PCA сжимает данные из 1000 признаков в 10 - без потери 95% информации.** JPEG берёт фото 4K и хранит его в 5% пикселей. Word2Vec превращает «король» в точку, вокруг которой «царь», «монарх», «sultan» - на расстоянии шага. Все три трюка - одна и та же операция: **смена базиса**. Исходные координаты неудобны, находим другие - и вдруг данные раскрываются.

**О чём этот урок на самом деле**: не «что такое линейная независимость», а почему **выбор системы координат** - самое мощное оружие в арсенале линейной алгебры. Базис - это линза. Сменил линзу - увидел другое.

Что главное в концепте «Базис: система координат, которую выбирают сами»?

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

Базис - минимальный строительный набор

Базис - минимальный строительный набор

Возьмём любой вектор в R². Его можно разложить по стандартным осям: (3, 2) = 3·(1,0) + 2·(0,1). Пара {(1,0), (0,1)} - это *базис*: минимальный набор, через который строится всё пространство. Но базис не единственный.

Набор векторов {b₁, b₂, ..., bₙ} является БАЗИСОМ пространства V, если: 1. Линейно независимы: нельзя выразить один через остальные c₁b₁ + c₂b₂ + ... + cₙbₙ = 0 => все cᵢ = 0 2. Порождают всё V: любой вектор раскладывается через базисные для любого v существуют единственные x₁, ..., xₙ: v = x₁b₁ + x₂b₂ + ... + xₙbₙ ЧИСЛО векторов в базисе = РАЗМЕРНОСТЬ пространства dim(V) ПРИМЕРЫ: Стандартный R²: {(1,0), (0,1)} dim = 2 Повёрнутый R²: {(0.71, 0.71), (-0.71, 0.71)} dim = 2 Стандартный R³: {(1,0,0), (0,1,0), (0,0,1)} dim = 3 Все базисы одного пространства имеют одинаковое число векторов.

**Размерность - инвариант**: сколько бы разных базисов ни выбирали, все они содержат одинаковое число векторов. Именно это число и называют размерностью пространства.

Что главное в концепте «Базис - минимальный строительный набор»?

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

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

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

Вектор *лишний* в наборе, если его можно составить из остальных. Лишние векторы не расширяют span - они дублируют направления, уже в нём присутствующие.

ПРИМЕР 1 - зависимые: v₁ = (1, 0), v₂ = (0, 1), v₃ = (3, 5) v₃ = 3·v₁ + 5·v₂ => v₃ лишний, span{v₁,v₂,v₃} = span{v₁,v₂} = R² ПРИМЕР 2 - независимые: v₁ = (1, 0), v₂ = (0, 1) c₁(1,0) + c₂(0,1) = (0,0) => c₁ = 0, c₂ = 0 Ни один не выражается через другой. ПРАКТИЧЕСКАЯ ПРОВЕРКА через матрицу: Записать векторы строками -> привести к REF методом Гаусса rank = число ненулевых строк = число независимых векторов [1 0] [1 0] [0 1] -> REF: [0 1] rank = 2, оба независимы ✓ [3 5] [0 0] третья строка - линейная комбинация первых двух

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

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

Смена базиса: матрица перехода

Смена базиса: матрица перехода

Один и тот же вектор имеет разные координаты в разных базисах. Переход между ними - умножение на матрицу перехода P. Это фундамент PCA, Fourier-преобразования и любого embedding.

Дан старый базис {e₁, e₂} и новый {b₁, b₂}. Матрица перехода P: столбцы = новые базисные векторы в старых координатах. Координаты в новом базисе: x_new = P⁻¹ · x_old Координаты в старом базисе: x_old = P · x_new ПРИМЕР: Новый базис b₁ = (1, 1), b₂ = (1, -1) Вектор v = (3, 1) в стандартных координатах P = [ 1 1 ] P⁻¹ = [ 0.5 0.5 ] [ 1 -1 ] [ 0.5 -0.5 ] x_new = P⁻¹ · (3, 1) = (0.5·3 + 0.5·1, 0.5·3 - 0.5·1) = (2, 1) Проверка: 2·(1,1) + 1·(1,-1) = (2+1, 2-1) = (3, 1) ✓

Что главное в концепте «Смена базиса: матрица перехода»?

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

ML: PCA - поиск лучшего базиса для данных

ML: PCA - поиск лучшего базиса для данных

**PCA (Principal Component Analysis)** - алгоритм, который находит базис, максимально удобный именно для данного датасета. Первый базисный вектор направлен вдоль наибольшей дисперсии, второй - перпендикулярно, и так далее. Это и есть eigenvectors ковариационной матрицы.

Датасет X: n наблюдений, d признаков. ШАГ 1: Центрировать данные: X_c = X - mean(X) ШАГ 2: Найти ковариационную матрицу: Σ = (1/n) X_c^T X_c # d x d матрица ШАГ 3: Разложить по собственным векторам: Σ = V · diag(λ₁, ..., λd) · Vᵀ V = матрица НОВОГО БАЗИСА (главные компоненты) λᵢ = дисперсия вдоль i-й оси нового базиса ШАГ 4: Смена базиса (проекция): X_pca = X_c · V[:, :k] # берём k первых осей Если λ₁ >> λ₂ >> ... >> λd - данные почти лежат на k-мерном подпространстве, остальное - шум.

**Почему PCA так мощен**: данные о людях с тысячью признаков (рост, вес, биомаркеры) реально лежат в 3-5-мерном подпространстве - большинство признаков коррелированы. PCA находит этот «скрытый» базис. То же самое происходит с изображениями лиц в **eigenfaces**: 4096 пикселей сжимаются в 50-100 главных компонент без потери узнаваемости.

Что главное в концепте «ML: PCA - поиск лучшего базиса для данных»?

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

ML: Fourier и wavelet - базисы для сигналов

ML: Fourier и wavelet - базисы для сигналов

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

Блок 8×8 пикселей = вектор из 64 чисел. DCT переходит в базис из 64 косинусных функций разной частоты: X_dct = DCT_matrix · X_pixels Структура коэффициентов: X_dct[0, 0] - среднее (DC-компонента) - почти вся энергия здесь X_dct[0, 1:] - горизонтальные частоты - быстро затухают X_dct[1:, 0] - вертикальные частоты - быстро затухают X_dct[4:, 4:] - высокие частоты - обычно < 1, удаляем без потерь JPEG quality=50: оставляем ~20 из 64 коэффициентов - визуально неотличимо. JPEG quality=10: оставляем ~5 - всё ещё узнаваемо. Это работает потому что DCT-базис хорошо подходит к структуре изображений - основу теоремы Кархунена-Лоэва (PCA - аналог для сигналов).

**Wavelet-базисы** (JPEG 2000, WebP) ещё лучше: они учитывают и частоту, и локализацию. Результат - лучшее качество при том же размере. Базис подобрали точнее под данные.

Что главное в концепте «ML: Fourier и wavelet - базисы для сигналов»?

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

Ортонормированный базис: вычислять в нём - одно удовольствие

Ортонормированный базис: вычислять в нём - одно удовольствие

Базис называется **ортонормированным** (ONB), если все базисные векторы перпендикулярны друг другу и длина каждого равна 1. Это идеальная система координат: проекция на ось = скалярное произведение, смена базиса = умножение на ортогональную матрицу Q, обратная к которой = просто транспонирование.

Базис {q₁, q₂, ..., qₙ} ортонормированный, если: qᵢ · qⱼ = 0 при i ≠ j (перпендикулярны) qᵢ · qᵢ = 1 (длина = 1) Матрица Q из этих столбцов: Q^T · Q = I => Q^(-1) = Q^T (обратная = транспонирование!) КООРДИНАТЫ В ONB считаются скалярным произведением: xᵢ = v · qᵢ Применения: - QR-разложение: любая матрица A = Q·R, Q - ортонормированный базис - Алгоритм Грама-Шмидта: строит ONB из любого базиса - SVD: U и V в разложении A = UΣVᵀ - оба ортогональные - Нейросети: инициализация весов ортогональными матрицами (стабильность обучения)

Что главное в концепте «Ортонормированный базис: вычислять в нём - одно удовольствие»?

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

Word embeddings: семантика как базис

Word embeddings: семантика как базис

Word2Vec, GloVe, FastText - каждый обучает свой базис семантического пространства. **Направления в этом пространстве** кодируют смысловые отношения: есть направление «мужской-женский», направление «страна-столица», направление «глагол прошедшего времени». Это не задано вручную - это возникает само из обученного базиса.

**Латентное пространство DALL-E, Stable Diffusion** - то же самое: базис, в котором похожие изображения стоят рядом. Интерполяция между двумя точками этого пространства даёт плавный морф между изображениями. Это работает потому, что latent space - векторное пространство, а значит в нём есть базис.

Где смена базиса живёт в индустрии

Одна операция - десятки применений

КомпонентРольДетали
PCA / WhiteningБазис главных компонент ковариационной матрицыScikit-learn, понижение размерности, preprocessing перед классификацией, eigenfaces
JPEG / DCTКосинусный базис для блоков 8×8 пикселейКаждый JPEG на планете, видео (H.264, H.265 внутри используют DCT)
Wavelet (JPEG 2000, WebP)Локально-частотный базисЛучшее сжатие при малом размере файла, медицинские снимки
Word2Vec / GloVe / FastTextСемантический базис словПоиск, переводчики, рекомендации, все NLP-pipeline до GPT
QR-разложениеОртонормированный базис для столбцов матрицыЧисленное решение МНК, least squares, стабилизация обучения нейросетей
SVD (левые/правые сингулярные векторы)Базис для строк и столбцов матрицы одновременноNetflix Prize, LSA, LoRA (fine-tuning LLM в низкоранговом базисе)

Что главное в концепте «Word embeddings: семантика как базис»?

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

Практика: смена базиса

Практика: смена базиса

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

Почему в PCA главные компоненты перпендикулярны друг другу?

- Ортогональность = нулевая корреляция между компонентами - Если компоненты коррелированы - они дублируют информацию, сжатие неэффективно - Eigenvectors симметричной матрицы всегда перпендикулярны - это алгебраическая гарантия - На практике: после PCA можно обучать линейные модели с меньшим риском мультиколлинеарности

Чем ортонормированный базис лучше произвольного?

- Координаты = скалярные произведения: xᵢ = v · qᵢ, O(n) вместо O(n²) для solve - Q⁻¹ = Qᵀ: обращение бесплатно, только транспонирование - Численно устойчив: обусловленность cond(Q) = 1, идеальная - SVD, QR, алгоритм Грама-Шмидта - всё строит именно ONB

Один датасет, два способа посчитать PCA: через ковариационную матрицу и через SVD. Дадут ли они одинаковый результат?

- Да, математически тождественны: Σ = (1/n)XᵀX, SVD X даёт те же главные компоненты - SVD численно устойчивее: работает с X напрямую, не строит XᵀX (квадрат числа обусловленности!) - sklearn.PCA использует именно SVD под капотом - Ковариационный метод нагляднее, SVD-метод практичнее

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

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

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

  • **Базис** - линейно независимый набор, span которого = всё пространство; число векторов = dim
  • **Смена базиса** x_new = P⁻¹·x_old - та же точка, разные координаты
  • **PCA = поиск лучшего базиса для данных** через eigenvectors ковариационной матрицы
  • **DCT/Wavelet** - базисы, в которых сигналы имеют мало ненулевых коэффициентов; отсюда JPEG
  • **ONB** - перпендикулярные единичные векторы; Q⁻¹ = Qᵀ, координаты = скалярные произведения
  • Word embeddings, latent spaces, eigenfaces - всё это выбор удобного базиса для конкретной задачи
  • rank(A) = размерность базиса столбцов A; если rank < n - матрица необратима

Куда дальше

Базис - ключ ко всей оставшейся линейной алгебре

  • Собственные векторы и значения — Eigenvectors = особые базисные векторы, в которых матрица действует проще всего
  • Сингулярное разложение (SVD) — SVD = два ортонормированных базиса (U, V) и коэффициенты растяжения между ними
  • Векторные пространства — Span, базис, размерность - все понятия живут здесь
  • Линейные отображения — Матрица линейного слоя нейросети - это матрица перехода между базисами

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

  • stat-14-pca
Базис: система координат, которую выбирают сами

0

1

Войти