Содержание курса 10 / 22

10 / 22 · Несколько случайных величин

Многомерное нормальное распределение

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

На этой странице 12

Совместное распределение dd величин — это в общем случае функция dd аргументов, которую не вместит никакая таблица. Одно семейство устроено иначе. Оно полностью описывается вектором средних и ковариационной матрицей, не выходит за пределы семейства при линейных отображениях, маргинализации и переходе к условным распределениям, и всё это — несколько строк линейной алгебры. Это семейство — многомерное нормальное распределение (multivariate Gaussian) — служит моделью шума в линейной регрессии, априорным распределением гауссовских процессов (Gaussian processes), состоянием фильтра Калмана (Kalman filter) и латентным пространством большинства генеративных моделей. В этой заметке мы строим его из одномерного нормального распределения и ковариации из предыдущей заметки.

Обозначения. X∈RdX \in \mathbb R^d — случайный вектор с вектором средних μ=E[X]\mu = E[X] и ковариационной матрицей Σ\Sigma, Σij=Cov⁡(Xi,Xj)\Sigma_{ij} = \operatorname{Cov}(X_i, X_j), симметричной и положительно определённой. Пишем X∼N(μ,Σ)X \sim N(\mu, \Sigma); Z∼N(0,I)Z \sim N(0, I) — стандартный нормальный вектор. ∣Σ∣\lvert \Sigma \rvert — определитель, A⊤A^\top — транспонированная матрица. Заметка использует немного линейной алгебры: произведения матриц, обратные матрицы и определители, квадратичную форму x⊤Axx^\top A x и собственные векторы симметричной матрицы.

Плотность#

Вектор X∼N(μ,Σ)X \sim N(\mu, \Sigma) имеет плотность

f(x)=1(2π)d/2∣Σ∣1/2exp⁡(−12(x−μ)⊤Σ−1(x−μ)).f(x) = \frac{1}{(2\pi)^{d/2} \lvert \Sigma \rvert^{1/2}} \exp\Big(-\frac12 (x - \mu)^\top \Sigma^{-1} (x - \mu)\Big) .

При d=1d = 1 это нормальная плотность из заметки о непрерывных распределениях с Σ=σ2\Sigma = \sigma^2. Квадратичная форма в показателе экспоненты, Δ2(x)=(x−μ)⊤Σ−1(x−μ)\Delta^2(x) = (x - \mu)^\top \Sigma^{-1} (x - \mu), — это квадрат расстояния Махаланобиса (Mahalanobis distance): это расстояние от среднего, измеренное в стандартных отклонениях вдоль каждого направления. Плотность постоянна на множествах, где постоянно Δ\Delta, а эти множества — эллипсоиды.

Если Σ\Sigma диагональна, квадратичная форма — это сумма ∑i(xi−μi)2/σi2\sum_i (x_i - \mu_i)^2 / \sigma_i^2, экспонента суммы — произведение, и плотность распадается в произведение нормальных плотностей, по одной на координату. Стандартный нормальный вектор Z∼N(0,I)Z \sim N(0, I) — это просто dd независимых координат с распределением N(0,1)N(0, 1).

Ковариация как геометрия#

У симметричной положительно определённой матрицы есть ортонормированный базис из собственных векторов q1,…,qdq_1, \dots, q_d с положительными собственными значениями λ1,…,λd\lambda_1, \dots, \lambda_d: Σ=QΛQ⊤\Sigma = Q \Lambda Q^\top. В координатах этого базиса ковариация диагональна, поэтому плотность в них распадается в произведение, с дисперсией λi\lambda_i вдоль qiq_i. Линии уровня — эллипсы с осями вдоль собственных векторов и полуосями kλik\sqrt{\lambda_i} на расстоянии Махаланобиса kk. Для

Σ=(21.21.21),λ=2.8, 0.2,ρ=1.22⋅1=0.85,\Sigma = \begin{pmatrix} 2 & 1.2 \\ 1.2 & 1 \end{pmatrix}, \qquad \lambda = 2.8,\ 0.2, \qquad \rho = \frac{1.2}{\sqrt{2 \cdot 1}} = 0.85 ,

длинная ось направлена вдоль (0.83,0.55)(0.83, 0.55):

Рисунок

Ковариационная матрица как эллипс

Облако точек, два эллипса и главные осиВытянутое облако точек вдоль диагонали; эллипсы расстояния 1 и 2; стрелки главных осей длиной 1.67 и 0.45.√2.8√0.239%86%Облако точек, два эллипса и главные осиВытянутое облако точек вдоль диагонали; эллипсы расстояния 1 и 2; стрелки главных осей длиной 1.67 и 0.45.√2.8√0.239%86%
600 точек из N(0, Σ), Σ = [[2, 1.2], [1.2, 1]], корреляция 0.85. Собственные векторы Σ задают оси эллипсов, корни собственных значений — их полуоси: √2.8 ≈ 1.67 вдоль длинной оси и √0.2 ≈ 0.45 вдоль короткой. Внутренний эллипс (расстояние Махаланобиса 1) содержит 39% точек при теоретических 39.3%, внешний (расстояние 2) — 87% при 86.5%: в двух измерениях «одна сигма» охватывает не 68%.

На длинную ось приходится 2.8/3=93%2.8 / 3 = 93\% полной дисперсии tr⁡Σ=3\operatorname{tr} \Sigma = 3, и проекция на неё — первая главная компонента метода главных компонент (principal component analysis, PCA). Эллипсы исправляют и одну распространённую интуицию. В одномерном случае интервал в одно стандартное отклонение вокруг среднего содержит 68% вероятности; в двумерном эллипс расстояния Махаланобиса 1 содержит лишь 1−e−1/2=39.3%1 - e^{-1/2} = 39.3\%, а эллипс расстояния 2 — 86.5%86.5\%, потому что Δ2\Delta^2 — сумма dd квадратов стандартных нормальных величин и имеет распределение хи-квадрат (chi-squared) с dd степенями свободы.

Аффинные отображения#

Линейные отображения переводят гауссовские векторы в гауссовские. Если X∼N(μ,Σ)X \sim N(\mu, \Sigma), то для любой матрицы BB и вектора cc

BX+c∼N(Bμ+c, BΣB⊤).BX + c \sim N(B\mu + c,\ B \Sigma B^\top) .

Среднее следует из линейности математического ожидания, ковариация — из билинейности ковариации; то, что результат снова гауссовский, для обратимой квадратной матрицы BB следует из формулы замены переменных из заметки о функциях от случайных величин, записанной в dd измерениях, а для любой BB — из характеристической функции; если матрица BΣB⊤B \Sigma B^\top вырождена, результат — вырожденное гауссовское распределение, сосредоточенное на подпространстве и не имеющее плотности. Три следствия используются постоянно:

  • Сэмплирование. X=μ+LZX = \mu + LZ с LL⊤=ΣLL^\top = \Sigma (например, с множителем Холецкого, Cholesky factor) имеет распределение N(μ,Σ)N(\mu, \Sigma); заметка о гауссовских распределениях курса «Генеративные модели» разбирает это на PyTorch.
  • Отбеливание (whitening). Обратно, L−1(X−μ)∼N(0,I)L^{-1}(X - \mu) \sim N(0, I): любое нормальное распределение в подходящих координатах становится стандартным.
  • Линейные комбинации. a⊤X∼N(a⊤μ,a⊤Σa)a^\top X \sim N(a^\top \mu, a^\top \Sigma a). Для примера выше (с нулевым средним) X1+X2∼N(0,2+1+2⋅1.2)=N(0,5.4)X_1 + X_2 \sim N(0, 2 + 1 + 2 \cdot 1.2) = N(0, 5.4).

Маргинальные и условные распределения#

Разобьём XX на два блока X1X_1, X2X_2 и соответственно разобьём среднее и ковариацию:

μ=(μ1μ2),Σ=(Σ11Σ12Σ21Σ22).\mu = \begin{pmatrix} \mu_1 \\ \mu_2 \end{pmatrix}, \qquad \Sigma = \begin{pmatrix} \Sigma_{11} & \Sigma_{12} \\ \Sigma_{21} & \Sigma_{22} \end{pmatrix} .

Маргинальное распределение X2X_2 просто считывается: X2∼N(μ2,Σ22)X_2 \sim N(\mu_2, \Sigma_{22}) — частный случай аффинного отображения, которое выбирает координаты. Условное распределение X2X_2 при X1=x1X_1 = x_1 тоже гауссовское, с

E[X2∣X1=x1]=μ2+Σ21Σ11−1(x1−μ1),Cov⁡(X2∣X1=x1)=Σ22−Σ21Σ11−1Σ12.E[X_2 \mid X_1 = x_1] = \mu_2 + \Sigma_{21} \Sigma_{11}^{-1} (x_1 - \mu_1), \qquad \operatorname{Cov}(X_2 \mid X_1 = x_1) = \Sigma_{22} - \Sigma_{21} \Sigma_{11}^{-1} \Sigma_{12} .

Для двух скалярных координат блоки — числа, и формулы принимают вид E[X2∣X1=x1]=μ2+(Σ21/Σ11)(x1−μ1)E[X_2 \mid X_1 = x_1] = \mu_2 + (\Sigma_{21} / \Sigma_{11})(x_1 - \mu_1) и Var⁡(X2∣X1=x1)=Σ22−Σ212/Σ11\operatorname{Var}(X_2 \mid X_1 = x_1) = \Sigma_{22} - \Sigma_{21}^2 / \Sigma_{11}. В нашем примере Σ21/Σ11=1.2/2=0.6\Sigma_{21}/\Sigma_{11} = 1.2/2 = 0.6, поэтому при X1=x1X_1 = x_1 вторая координата имеет распределение N(0.6 x1, 1−1.22/2)=N(0.6 x1,0.28)N(0.6\, x_1,\ 1 - 1.2^2/2) = N(0.6\, x_1, 0.28):

Рисунок

Условное распределение гауссовского вектора

Эллипсы, прямая регрессии и срезНаклонные эллипсы гауссовского распределения, прямая x₂ = 0.6 x₁ и вертикальный срез при x₁ = 2 с узкой нормальной плотностью вокруг 1.2; справа широкая маргинальная плотность X₂.1E[X₂ | X₁] = 0.6 X₁2N(1.2, 0.28)X₁ = 2N(0, 1)3Эллипсы, прямая регрессии и срезНаклонные эллипсы гауссовского распределения, прямая x₂ = 0.6 x₁ и вертикальный срез при x₁ = 2 с узкой нормальной плотностью вокруг 1.2; справа широкая маргинальная плотность X₂.1E[X₂ | X₁] = 0.6 X₁2N(1.2, 0.28)X₁ = 2N(0, 1)3
То же распределение N(0, Σ), Σ = [[2, 1.2], [1.2, 1]] (1). При известном X₁ = x₁ величина X₂ снова нормальна; её среднее Σ₁₂/Σ₁₁ · x₁ = 0.6 x₁ лежит на прямой регрессии (2), а дисперсия Σ₂₂ − Σ₁₂²/Σ₁₁ = 0.28 не зависит от x₁. Срез при X₁ = 2 даёт N(1.2, 0.28) (3); справа для сравнения маргинальное распределение X₂, N(0, 1): знание X₁ сдвигает центр и сужает разброс.

Два свойства этих формул важны далеко за пределами примера. Условное среднее — линейная функция наблюдённого значения, поэтому для совместно гауссовских (jointly Gaussian) данных линейная регрессия — не приближение, а точный наилучший прогноз; это тема заметки об условном математическом ожидании. А условная ковариация — дополнение Шура (Schur complement) Σ22−Σ21Σ11−1Σ12\Sigma_{22} - \Sigma_{21}\Sigma_{11}^{-1}\Sigma_{12} — не зависит от наблюдённого значения: наблюдение X1X_1 уменьшает неопределённость относительно X2X_2 на одну и ту же величину, какое бы значение ни приняла X1X_1. Регрессия на основе гауссовских процессов и фильтр Калмана — это те же две формулы, применённые к большим ковариационным матрицам.

Для гауссовских векторов некоррелированность означает независимость#

Для совместно гауссовского вектора нулевая ковариация между двумя блоками делает Σ\Sigma блочно-диагональной, и плотность распадается в произведение: из некоррелированности следует независимость. Это свойство совместного распределения, а не маргинальных. Пусть X∼N(0,1)X \sim N(0, 1) и Y=SXY = SX, где S=±1S = \pm 1 — независимый случайный знак, оба значения которого равновероятны. Тогда Y∼N(0,1)Y \sim N(0, 1), и Cov⁡(X,Y)=E[S] E[X2]=0\operatorname{Cov}(X, Y) = E[S]\, E[X^2] = 0, но ∣Y∣=∣X∣\lvert Y \rvert = \lvert X \rvert: величины сильно зависимы. Пара не является совместно гауссовской: любая линейная комбинация координат гауссовского вектора нормальна, а X+YX + Y равна 0 с вероятностью 1/21/2, чего не бывает ни с одной нормальной величиной.

Высокая размерность: оболочка#

Дополнительный материал: почему сэмплы многомерного нормального распределения избегают центра. Остальная часть заметки на него не опирается.

Плотность N(0,I)N(0, I) максимальна в начале координат, и всё же в высокой размерности сэмплы практически никогда не оказываются рядом с ним. Квадрат длины ∥Z∥2=Z12+⋯+Zd2\lVert Z \rVert^2 = Z_1^2 + \dots + Z_d^2 имеет среднее dd и дисперсию 2d2d, поэтому длина сосредоточена около d\sqrt d с разбросом, который остаётся около 0.70.7:

Рисунок

Длина стандартного нормального вектора в d измерениях

Три плотности длины вектораТри горба одинаковой ширины с центрами около 1.25, 3.08 и 9.98.024681012‖Z‖d = 2d = 10d = 100Три плотности длины вектораТри горба одинаковой ширины с центрами около 1.25, 3.08 и 9.98.024681012‖Z‖d = 2d = 10d = 100
Плотность длины ‖Z‖ вектора Z ~ N(0, I) в размерности d = 2, 10, 100. Средние 1.25, 3.08, 9.98 близки к √d, а разброс около 0.7 почти не растёт: в высокой размерности почти вся вероятность лежит в тонкой оболочке радиуса √d, и центр, самая вероятная точка плотности, на практике не встречается.

В размерности 100 длина равна 10±0.710 \pm 0.7, а длина меньше 5 имеет вероятность около 10−1510^{-15}. Плотность около центра высока, но объёма у центра почти нет; объём, а с ним и вероятность, сосредоточен в тонкой оболочке. Отсюда два практических следствия. Линейная интерполяция между двумя латентными сэмплами генеративной модели проходит через область, которую модель никогда не видела при обучении, — поэтому вместо неё часто используют сферическую интерполяцию (spherical interpolation). А в высокой размерности расстояния между независимыми гауссовскими точками почти одинаковы, около 2d\sqrt{2d}, поэтому ближайшие соседи становятся менее информативными.

Что изменилось#

Совместное распределение общего видаМногомерное нормальное распределение
Параметрыфункция dd аргументовμ\mu и Σ\Sigma: d+d(d+1)/2d + d(d+1)/2 чисел
Линии уровнякакие угодноэллипсоиды, оси — собственные векторы Σ\Sigma
Линейные отображения, маргинальные распределенияновые распределения, которые нужно вычислятьN(Bμ+c,BΣB⊤)N(B\mu + c, B\Sigma B^\top); блоки считываются
Условные распределенияперенормированные срезыгауссовские, среднее линейно, ковариация — дополнение Шура
Некоррелированностьнедостаточна для независимостиравносильна независимости

Ограничения#

  • Лёгкие хвосты и одна мода. Реальные данные высокой размерности редко бывают гауссовскими: у изображений, эмбеддингов текстов и финансовых доходностей бывают тяжёлые хвосты, кластеры и искривлённая структура; именно поэтому существуют смеси, нормализующие потоки и диффузионные модели.
  • Ковариационная матрица обходится дорого. В ней d(d+1)/2d(d+1)/2 свободных элементов, 500 500 при d=1 000d = 1\,000; чтобы её оценить, нужно гораздо больше сэмплов, чем размерностей, а обращение стоит O(d3)O(d^3). На практике используют диагональную или низкоранговую структуру либо разреженную обратную ковариационную матрицу (sparse precision).
  • Нормальность маргинальных распределений ничего не говорит о совместном. Каждая координата может быть нормальной, а вектор — нет, как показывает пример со знаком; формулы для условных распределений и для независимости применимы, только если вектор совместно гауссовский.

Что нужно запомнить#

  • N(μ,Σ)N(\mu, \Sigma) имеет плотность ∝exp⁡(−12(x−μ)⊤Σ−1(x−μ))\propto \exp(-\frac12 (x - \mu)^\top \Sigma^{-1} (x - \mu)); линии уровня — эллипсоиды постоянного расстояния Махаланобиса.
  • Собственные векторы Σ\Sigma задают оси, квадратные корни её собственных значений — полуоси; в двумерном случае эллипс расстояния Махаланобиса 1 содержит 39%, а не 68%.
  • BX+c∼N(Bμ+c,BΣB⊤)BX + c \sim N(B\mu + c, B\Sigma B^\top); X=μ+LZX = \mu + LZ с LL⊤=ΣLL^\top = \Sigma позволяет сэмплировать любое нормальное распределение.
  • Маргинальные распределения задаются блоками μ\mu и Σ\Sigma; условные — гауссовские, со средним, линейным по наблюдению, и ковариацией Σ22−Σ21Σ11−1Σ12\Sigma_{22} - \Sigma_{21}\Sigma_{11}^{-1}\Sigma_{12}.
  • Для совместно гауссовских векторов некоррелированность означает независимость.
  • Стандартный нормальный вектор в dd измерениях имеет длину около d±0.7\sqrt d \pm 0.7.

Код#

Пример с рисунков, проверенный сэмплированием на 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

Дальше#

Для гауссовских векторов наилучший прогноз X2X_2 по X1X_1 оказался линейным, а оставшаяся дисперсия — известной. Вопрос имеет смысл для любой пары случайных величин: какая функция от XX лучше всего предсказывает YY и какая ошибка при этом остаётся? Следующая заметка отвечает на него с помощью условного математического ожидания E[Y∣X]E[Y \mid X] — функции регрессии, которую приближает модель, обученная с квадратичной функцией потерь; другие функции потерь нацелены на другие характеристики условного распределения, например на медиану или квантиль.

Литература#

  • 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. Сферическая интерполяция в латентных пространствах.