17 / 22 · От вероятности к статистике
Байесовский вывод
Параметр как случайная величина: априорное распределение, которое правдоподобие обновляет до апостериорного, сопряжённые априорные распределения и бета-биномиальное обновление с псевдосчётчиками, байесовские доверительные интервалы, апостериорное предсказательное распределение, MAP-оценка и почему гребневая регрессия и лассо — это MAP-оценки при гауссовском и лапласовском априорных распределениях, что делать, когда у апостериорного распределения нет формулы, и как на больших выборках апостериорное распределение сближается с методом максимального правдоподобия.
На этой странице 13
После 3 орлов в 3 бросках метод максимального правдоподобия оценивает вероятность орла как 1 и объявляет решку невозможной. Никто в это не верит, потому что каждый знает кое-что о монетах ещё до первого броска. Байесовский вывод (Bayesian inference) делает это знание частью вычисления. Параметр считается случайной величиной с априорным распределением (prior); данные обновляют его по формуле Байеса до апостериорного (posterior); и на любой вопрос о параметре, от точечной оценки до вероятности следующего исхода, отвечают по апостериорному распределению. В этой заметке мы проводим это обновление, показываем, что распространённые регуляризаторы машинного обучения — это априорные распределения, и объясняем, когда байесовский ответ совпадает с ответом метода максимального правдоподобия.
Обозначения. — априорная плотность параметра, — правдоподобие данных , — апостериорная плотность. — распределение на с плотностью, пропорциональной , и средним .
Априорное распределение, правдоподобие, апостериорное распределение#
Формула Байеса для плотностей имеет вид
или, если отбросить нормирующую константу, которая не зависит от ,
Априорное распределение говорит, какие значения параметра вероятны ещё до данных; правдоподобие — та же функция, что и в методе максимального правдоподобия, — говорит, насколько хорошо каждое значение объясняет данные; апостериорное распределение объединяет их. Знаменатель , маргинальное правдоподобие (marginal likelihood), или обоснованность (evidence), — это вероятность данных, усреднённая по априорному распределению. На форму апостериорного распределения он не влияет, но играет центральную роль при сравнении моделей.
Сопряжённые априорные распределения: бета-биномиальная модель#
Для монеты с вероятностью орла возьмём априорное распределение . После орлов в бросках правдоподобие равно , и после перемножения
Апостериорное распределение — снова бета-распределение: бета-семейство сопряжено (conjugate) с биномиальным правдоподобием. Обновление сводится к подсчёту: каждый орёл прибавляет 1 к , каждая решка — 1 к . Прочитать априорное распределение как воображаемые данные можно двумя распространёнными способами, и они ведут отсчёт от разных точек. В апостериорном среднем ниже и играют роль псевдосчётчиков (pseudo-counts): априорное распределение весит столько же, сколько наблюдений, из которых — орлы. В плотности показатели степени равны и , так что относительно равномерного , у которого они нулевые, априорное распределение домножает на правдоподобие орлов и решек. Поэтому априорное — «вероятно, около половины, но это не точно» — весит 4 псевдосчётчика в апостериорном среднем, а в плотности это один воображаемый орёл и одна воображаемая решка сверх равномерного априорного распределения:
Апостериорное распределение по мере поступления данных
Апостериорное среднее
— взвешенное среднее априорного среднего и оценки максимального правдоподобия (MLE) с весами, которые задаются числом псевдосчётчиков и числом реальных наблюдений. После 3 орлов в 3 бросках оно равно ; при равномерном априорном распределении — , это правило следования Лапласа (Laplace’s rule of succession). С ростом доминируют данные: после 70 орлов в 100 бросках апостериорное среднее равно , что близко к оценке максимального правдоподобия . То же сопряжение выполняется для категориального распределения с симметричным априорным распределением Дирихле, и аддитивное сглаживание add- n-граммных языковых моделей — это в точности апостериорное среднее.
Байесовский доверительный интервал (credible interval) содержит параметр с заданной апостериорной вероятностью. Для центральный интервал с вероятностью 95% равен , что близко к интервалу нормального приближения вокруг оценки максимального правдоподобия, . Интерпретации различаются: байесовский доверительный интервал — вероятностное утверждение о параметре при данных наблюдениях, а доверительный интервал из следующей заметки — утверждение о процедуре при повторных выборках.
Нормальные данные и сжатие#
Для среднего нормального распределения с нормальным априорным распределением апостериорное распределение тоже нормально. При априорном распределении и наблюдениях из с известной дисперсией и выборочным средним обратные дисперсии (precisions) складываются:
Апостериорное среднее — компромисс между априорным и данными
Апостериорное среднее оттягивается от данных к априорному среднему, сжимается (shrinkage), и тем сильнее, чем меньше данных или чем они шумнее. Это тот же компромисс, который, как показала заметка об оценках, может снизить среднеквадратичную ошибку: немного смещения в обмен на сильное снижение дисперсии.
MAP-оценка и регуляризация#
MAP-оценка (maximum a posteriori, оценка апостериорного максимума) — мода апостериорного распределения:
Для линейной модели с гауссовским шумом дисперсии и априорным распределением на весах отрицательный логарифм апостериорной плотности равен
а это гребневая регрессия со штрафом : чем уже априорное распределение, тем сильнее штраф. Априорное распределение Лапласа с плотностью даёт штраф L1 лассо, который обращает некоторые веса в точности в ноль. Затухание весов в нейросетях при обычном градиентном спуске — снова гауссовское априорное распределение. На 20 зашумлённых наблюдениях с 10 признаками из кода ниже метод наименьших квадратов даёт ошибку на тесте , а гребневая регрессия с и — и ; при априорное распределение слишком сильное, и ошибка вырастает до .
MAP-оценка — одна точка, и остальное апостериорное распределение она отбрасывает. Кроме того, в отличие от самого апостериорного распределения, она зависит от параметризации: логарифм моды плотности в общем случае не равен моде плотности .
Предсказание по апостериорному распределению#
Обычно интересен не сам параметр, а следующее наблюдение. Апостериорное предсказательное распределение (posterior predictive) усредняет предсказания модели по апостериорному распределению:
Для монеты вероятность того, что следующий бросок даст орла, равна апостериорному среднему : после 3 орлов в 3 бросках и никогда не 1. Усреднение по параметру вместо подстановки одной оценки делает предсказания честными в том, как мало сказали данные; для нормальных данных предсказательный интервал шире интервала с подставленной оценкой (plug-in), и намного шире при малом . Для нейросетей вместо этого усреднения на практике используют ансамбли и дропаут Монте-Карло (Monte Carlo dropout), но это эвристики для оценки неопределённости, а не сэмплы из апостериорного распределения: независимо обученные сети — не выборка из апостериорного распределения, а дропаут Монте-Карло — вариационное приближение к нему лишь при определённых предположениях об априорном распределении и о сети (Gal and Ghahramani, 2016).
Когда у апостериорного распределения нет формулы#
Сопряжённые пары — исключение. Для логистической регрессии, смеси распределений или нейросети нормирующий интеграл не выражается в замкнутом виде, и в дело вступают три семейства методов:
- Сэмплирование. Марковские методы Монте-Карло (Markov chain Monte Carlo, MCMC) порождают сэмплы из апостериорного распределения, используя только ненормированное произведение правдоподобия и априорной плотности.
- Вариационный вывод (variational inference). Апостериорное распределение приближается ближайшим членом удобного для вычислений семейства через максимизацию нижней оценки ; на этом методе основан вариационный автоэнкодер.
- Приближение Лапласа (Laplace approximation). Апостериорное распределение заменяется нормальным с центром в MAP-оценке и ковариацией, обратной к кривизне логарифма апостериорной плотности.
Априорные распределения и большие выборки#
Выбор априорного распределения — самая критикуемая часть метода: два аналитика с разными априорными распределениями получают по одним и тем же данным разные апостериорные. Стандартных ответов три. Слабоинформативные априорные распределения (weakly informative priors) кодируют только масштаб и разумные пределы значений (у монеты не два орла, вес не бывает порядка ). Анализ чувствительности показывает, насколько заключения меняются вместе с априорным распределением. И наконец, при достаточном объёме данных априорное распределение перестаёт иметь значение: при условиях регулярности теорема Бернштейна–фон Мизеса (Bernstein–von Mises theorem) утверждает, что апостериорное распределение приближается к нормальному распределению — тому же нормальному приближению, которое даёт метод максимального правдоподобия. На больших выборках байесовские и частотные (frequentist) интервалы почти совпадают; на малых выборках, при большом числе параметров или при сильном априорном знании — нет, и тогда дополнительная информация входит именно через априорное распределение.
Что изменилось#
| Метод максимального правдоподобия | Байесовский вывод | |
|---|---|---|
| Параметр | фиксированный, неизвестный | случайный, с априорным распределением |
| Результат | точка | распределение |
| 3 орла в 3 бросках | апостериорное среднее при априорном | |
| Регуляризация | добавляется вручную | априорное распределение: L2 = гауссовское, L1 = лапласовское |
| Предсказание | подставить | усреднить по апостериорному распределению |
| Большие выборки | апостериорное |
Ограничения#
- Априорное распределение — модельное допущение. Оно может кодировать реальное знание или реальную предвзятость; на малых данных оно определяет ответ, и его нужно явно указывать и проверять.
- Точные апостериорные распределения редки. Вне сопряжённых семейств вывод требует сэмплирования или приближений, которые дороги и могут незаметно давать сбой.
- Апостериорное распределение хорошо ровно настолько, насколько хороша модель. Если правдоподобие неверно, апостериорное распределение уверенно концентрируется на наилучшем неверном ответе — точно так же, как метод максимального правдоподобия.
Что нужно запомнить#
- Апостериорная плотность ∝ правдоподобие × априорная плотность; маргинальное правдоподобие её нормирует.
- Бета-априорное распределение + биномиальные данные: ; в апостериорном среднем априорное распределение действует как и псевдосчётчиков общим весом ; апостериорное среднее — взвешенное среднее априорного среднего и .
- Нормальное априорное распределение + нормальные данные: обратные дисперсии складываются, апостериорное среднее сжимается к априорному среднему.
- MAP-оценка = argmax суммы логарифма правдоподобия и логарифма априорной плотности; гауссовское априорное распределение = L2 (гребневая регрессия, затухание весов), лапласовское = L1 (лассо).
- Предсказывать нужно по апостериорному предсказательному распределению — среднему по параметру, а не подстановкой оценки.
- При большом числе наблюдений апостериорное распределение приближённо равно , и влияние априорного распределения исчезает.
Код#
Бета-биномиальные обновления и интервалы, обновление для нормального распределения и гребневая регрессия как MAP-оценка:
import numpy as np
from scipy import stats, optimize
# the coin with a Beta(2, 2) prior: posterior means and 95% credible intervals as the flips arrive
for a, b in ((2, 2), (5, 2), (9, 5), (72, 32)):
post = stats.beta(a, b)
print((a, b), round(post.mean(), 3), post.ppf([0.025, 0.975]).round(3))
# (2, 2) 0.5 [0.094 0.906] | (5, 2) 0.714 [0.359 0.957] | (9, 5) 0.643 [0.386 0.861] | (72, 32) 0.692 [0.601 0.777]
print(round(0.7 - 1.96 * 0.0458, 3), round(0.7 + 1.96 * 0.0458, 3)) # 0.61 0.79: the normal interval around the MLE
# normal mean with prior N(0, 1), four observations with mean 2 and noise variance 1: precisions add
precision = 1 / 1 + 4 / 1
print(round(4 * 2 / precision, 2), round(1 / precision, 2)) # 1.6 0.2
# MAP with a Gaussian prior on the weights is ridge regression
rng = np.random.default_rng(0)
X, w = rng.normal(size=(20, 10)), rng.normal(size=10)
y = X @ w + rng.normal(size=20)
ridge = np.linalg.solve(X.T @ X + np.eye(10), X.T @ y)
neg_log_post = lambda v: 0.5 * ((y - X @ v) ** 2).sum() + 0.5 * (v ** 2).sum() # noise variance 1, prior N(0, I)
print(float(np.abs(ridge - optimize.minimize(neg_log_post, np.zeros(10)).x).max()) < 1e-5) # True
# on new data the prior helps: test error of least squares (lambda = 0) and ridge
Xt = rng.normal(size=(10_000, 10))
yt = Xt @ w + rng.normal(size=10_000)
for lam in (0.0, 1.0, 3.0, 10.0):
wl = np.linalg.solve(X.T @ X + lam * np.eye(10), X.T @ y)
print(lam, round(float(((yt - Xt @ wl) ** 2).mean()), 3))
# 0.0 3.463 | 1.0 1.917 | 3.0 1.746 | 10.0 2.719
Дальше#
Байесовский доверительный интервал говорит, насколько вероятны значения параметра при заданном априорном распределении. Частотная альтернатива обходится без априорных распределений и делает утверждение о процедуре: интервал строится так, чтобы на повторных выборках он содержал истинное значение в 95% случаев. Следующая заметка строит такие интервалы по центральной предельной теореме, а когда формулы нет — по одним только данным с помощью бутстрэпа.
Литература#
- A. Gelman, J. B. Carlin, H. S. Stern, D. B. Dunson, A. Vehtari, D. B. Rubin. Bayesian Data Analysis, 3rd ed. CRC Press, 2013. Главы 2–3 (модели с одним и несколькими параметрами, сопряжённость), глава 4 (нормальное приближение, теорема Бернштейна–фон Мизеса).
- C. M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006. Раздел 2.1 (бета-распределение), раздел 3.3 (байесовская линейная регрессия), раздел 4.4 (приближение Лапласа).
- J. K. Blitzstein, J. Hwang. Introduction to Probability, 2nd ed. CRC Press, 2019. Раздел 8.3 (бета-биномиальная сопряжённость).
- R. Tibshirani. Regression Shrinkage and Selection via the Lasso. Journal of the Royal Statistical Society B, 58(1), 1996.
- Y. Gal, Z. Ghahramani. Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning. ICML, 2016.