10 / 22 · Несколько случайных величин
Многомерное нормальное распределение
Совместное распределение, полностью описываемое вектором средних и ковариационной матрицей: плотность и расстояние Махаланобиса, ковариационная матрица как эллипс через её собственные векторы, аффинные отображения, маргинальные и условные распределения в замкнутом виде (условное среднее — это линейная регрессия), некоррелированность, которая означает независимость только для совместно гауссовских векторов, и тонкая оболочка, в которой живут гауссовские сэмплы высокой размерности.
Совместные распределения и независимость · Линейная алгебра ↗
На этой странице 12
Совместное распределение величин — это в общем случае функция аргументов, которую не вместит никакая таблица. Одно семейство устроено иначе. Оно полностью описывается вектором средних и ковариационной матрицей, не выходит за пределы семейства при линейных отображениях, маргинализации и переходе к условным распределениям, и всё это — несколько строк линейной алгебры. Это семейство — многомерное нормальное распределение (multivariate Gaussian) — служит моделью шума в линейной регрессии, априорным распределением гауссовских процессов (Gaussian processes), состоянием фильтра Калмана (Kalman filter) и латентным пространством большинства генеративных моделей. В этой заметке мы строим его из одномерного нормального распределения и ковариации из предыдущей заметки.
Обозначения. — случайный вектор с вектором средних и ковариационной матрицей , , симметричной и положительно определённой. Пишем ; — стандартный нормальный вектор. — определитель, — транспонированная матрица. Заметка использует немного линейной алгебры: произведения матриц, обратные матрицы и определители, квадратичную форму и собственные векторы симметричной матрицы.
Плотность#
Вектор имеет плотность
При это нормальная плотность из заметки о непрерывных распределениях с . Квадратичная форма в показателе экспоненты, , — это квадрат расстояния Махаланобиса (Mahalanobis distance): это расстояние от среднего, измеренное в стандартных отклонениях вдоль каждого направления. Плотность постоянна на множествах, где постоянно , а эти множества — эллипсоиды.
Если диагональна, квадратичная форма — это сумма , экспонента суммы — произведение, и плотность распадается в произведение нормальных плотностей, по одной на координату. Стандартный нормальный вектор — это просто независимых координат с распределением .
Ковариация как геометрия#
У симметричной положительно определённой матрицы есть ортонормированный базис из собственных векторов с положительными собственными значениями : . В координатах этого базиса ковариация диагональна, поэтому плотность в них распадается в произведение, с дисперсией вдоль . Линии уровня — эллипсы с осями вдоль собственных векторов и полуосями на расстоянии Махаланобиса . Для
длинная ось направлена вдоль :
Ковариационная матрица как эллипс
На длинную ось приходится полной дисперсии , и проекция на неё — первая главная компонента метода главных компонент (principal component analysis, PCA). Эллипсы исправляют и одну распространённую интуицию. В одномерном случае интервал в одно стандартное отклонение вокруг среднего содержит 68% вероятности; в двумерном эллипс расстояния Махаланобиса 1 содержит лишь , а эллипс расстояния 2 — , потому что — сумма квадратов стандартных нормальных величин и имеет распределение хи-квадрат (chi-squared) с степенями свободы.
Аффинные отображения#
Линейные отображения переводят гауссовские векторы в гауссовские. Если , то для любой матрицы и вектора
Среднее следует из линейности математического ожидания, ковариация — из билинейности ковариации; то, что результат снова гауссовский, для обратимой квадратной матрицы следует из формулы замены переменных из заметки о функциях от случайных величин, записанной в измерениях, а для любой — из характеристической функции; если матрица вырождена, результат — вырожденное гауссовское распределение, сосредоточенное на подпространстве и не имеющее плотности. Три следствия используются постоянно:
- Сэмплирование. с (например, с множителем Холецкого, Cholesky factor) имеет распределение ; заметка о гауссовских распределениях курса «Генеративные модели» разбирает это на PyTorch.
- Отбеливание (whitening). Обратно, : любое нормальное распределение в подходящих координатах становится стандартным.
- Линейные комбинации. . Для примера выше (с нулевым средним) .
Маргинальные и условные распределения#
Разобьём на два блока , и соответственно разобьём среднее и ковариацию:
Маргинальное распределение просто считывается: — частный случай аффинного отображения, которое выбирает координаты. Условное распределение при тоже гауссовское, с
Для двух скалярных координат блоки — числа, и формулы принимают вид и . В нашем примере , поэтому при вторая координата имеет распределение :
Условное распределение гауссовского вектора
Два свойства этих формул важны далеко за пределами примера. Условное среднее — линейная функция наблюдённого значения, поэтому для совместно гауссовских (jointly Gaussian) данных линейная регрессия — не приближение, а точный наилучший прогноз; это тема заметки об условном математическом ожидании. А условная ковариация — дополнение Шура (Schur complement) — не зависит от наблюдённого значения: наблюдение уменьшает неопределённость относительно на одну и ту же величину, какое бы значение ни приняла . Регрессия на основе гауссовских процессов и фильтр Калмана — это те же две формулы, применённые к большим ковариационным матрицам.
Для гауссовских векторов некоррелированность означает независимость#
Для совместно гауссовского вектора нулевая ковариация между двумя блоками делает блочно-диагональной, и плотность распадается в произведение: из некоррелированности следует независимость. Это свойство совместного распределения, а не маргинальных. Пусть и , где — независимый случайный знак, оба значения которого равновероятны. Тогда , и , но : величины сильно зависимы. Пара не является совместно гауссовской: любая линейная комбинация координат гауссовского вектора нормальна, а равна 0 с вероятностью , чего не бывает ни с одной нормальной величиной.
Высокая размерность: оболочка#
Дополнительный материал: почему сэмплы многомерного нормального распределения избегают центра. Остальная часть заметки на него не опирается.
Плотность максимальна в начале координат, и всё же в высокой размерности сэмплы практически никогда не оказываются рядом с ним. Квадрат длины имеет среднее и дисперсию , поэтому длина сосредоточена около с разбросом, который остаётся около :
Длина стандартного нормального вектора в d измерениях
В размерности 100 длина равна , а длина меньше 5 имеет вероятность около . Плотность около центра высока, но объёма у центра почти нет; объём, а с ним и вероятность, сосредоточен в тонкой оболочке. Отсюда два практических следствия. Линейная интерполяция между двумя латентными сэмплами генеративной модели проходит через область, которую модель никогда не видела при обучении, — поэтому вместо неё часто используют сферическую интерполяцию (spherical interpolation). А в высокой размерности расстояния между независимыми гауссовскими точками почти одинаковы, около , поэтому ближайшие соседи становятся менее информативными.
Что изменилось#
| Совместное распределение общего вида | Многомерное нормальное распределение | |
|---|---|---|
| Параметры | функция аргументов | и : чисел |
| Линии уровня | какие угодно | эллипсоиды, оси — собственные векторы |
| Линейные отображения, маргинальные распределения | новые распределения, которые нужно вычислять | ; блоки считываются |
| Условные распределения | перенормированные срезы | гауссовские, среднее линейно, ковариация — дополнение Шура |
| Некоррелированность | недостаточна для независимости | равносильна независимости |
Ограничения#
- Лёгкие хвосты и одна мода. Реальные данные высокой размерности редко бывают гауссовскими: у изображений, эмбеддингов текстов и финансовых доходностей бывают тяжёлые хвосты, кластеры и искривлённая структура; именно поэтому существуют смеси, нормализующие потоки и диффузионные модели.
- Ковариационная матрица обходится дорого. В ней свободных элементов, 500 500 при ; чтобы её оценить, нужно гораздо больше сэмплов, чем размерностей, а обращение стоит . На практике используют диагональную или низкоранговую структуру либо разреженную обратную ковариационную матрицу (sparse precision).
- Нормальность маргинальных распределений ничего не говорит о совместном. Каждая координата может быть нормальной, а вектор — нет, как показывает пример со знаком; формулы для условных распределений и для независимости применимы, только если вектор совместно гауссовский.
Что нужно запомнить#
- имеет плотность ; линии уровня — эллипсоиды постоянного расстояния Махаланобиса.
- Собственные векторы задают оси, квадратные корни её собственных значений — полуоси; в двумерном случае эллипс расстояния Махаланобиса 1 содержит 39%, а не 68%.
- ; с позволяет сэмплировать любое нормальное распределение.
- Маргинальные распределения задаются блоками и ; условные — гауссовские, со средним, линейным по наблюдению, и ковариацией .
- Для совместно гауссовских векторов некоррелированность означает независимость.
- Стандартный нормальный вектор в измерениях имеет длину около .
Код#
Пример с рисунков, проверенный сэмплированием на NumPy:
import numpy as np
from scipy import stats
S = np.array([[2.0, 1.2], [1.2, 1.0]])
w, V = np.linalg.eigh(S)
print(w.round(3), np.abs(V[:, 1]).round(3)) # [0.2 2.8] [0.832 0.555]: the long axis
print(round(1.2 / np.sqrt(2), 2), [round(float(stats.chi2(2).cdf(k * k)), 3) for k in (1, 2)]) # 0.85 [0.393, 0.865]
rng = np.random.default_rng(0)
L = np.linalg.cholesky(S) # sampling: X = L Z
X = rng.normal(size=(1_000_000, 2)) @ L.T
print(np.cov(X.T).round(2).tolist()) # [[2.0, 1.2], [1.2, 1.0]]
d2 = np.einsum('ij,jk,ik->i', X, np.linalg.inv(S), X) # squared Mahalanobis distances
print(round(float((d2 <= 1).mean()), 3), round(float((d2 <= 4).mean()), 3)) # 0.393 0.865
print(round(float(X.sum(axis=1).var()), 2)) # 5.39, against 2 + 1 + 2 * 1.2 = 5.4
# conditioning on X1 = 2: the samples with X1 close to 2
near = X[np.abs(X[:, 0] - 2) < 0.02, 1]
print(round(1.2 / 2 * 2, 2), round(1 - 1.2**2 / 2, 2), round(float(near.mean()), 2), round(float(near.var()), 2)) # 1.2 0.28 1.2 0.28
# normal marginals, zero correlation, and still dependent: Y = S X with a random sign S
x = rng.normal(size=1_000_000)
y = rng.choice([-1, 1], size=x.size) * x
print(round(float(np.corrcoef(x, y)[0, 1]), 3), round(float((x + y == 0).mean()), 3)) # -0.001 0.501
# the shell: the length of a standard normal vector in 100 dimensions
r = np.linalg.norm(rng.normal(size=(100_000, 100)), axis=1)
print(round(float(r.mean()), 2), round(float(r.std()), 2), f'{stats.chi(100).cdf(5):.1e}') # 9.97 0.71 1.1e-15
Дальше#
Для гауссовских векторов наилучший прогноз по оказался линейным, а оставшаяся дисперсия — известной. Вопрос имеет смысл для любой пары случайных величин: какая функция от лучше всего предсказывает и какая ошибка при этом остаётся? Следующая заметка отвечает на него с помощью условного математического ожидания — функции регрессии, которую приближает модель, обученная с квадратичной функцией потерь; другие функции потерь нацелены на другие характеристики условного распределения, например на медиану или квантиль.
Литература#
- C. M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006. Раздел 2.3 (гауссовское распределение, условные и маргинальные гауссовские распределения).
- M. P. Deisenroth, A. A. Faisal, C. S. Ong. Mathematics for Machine Learning. Cambridge University Press, 2020. Раздел 6.5 (гауссовское распределение).
- J. K. Blitzstein, J. Hwang. Introduction to Probability, 2nd ed. CRC Press, 2019. Раздел 7.5 (многомерное нормальное распределение).
- T. White. Sampling Generative Networks. arXiv:1609.04468, 2016. Сферическая интерполяция в латентных пространствах.