Сопряженное априорное распределение

Iuliia Averianova
NOP::Nuances of Programming
4 min readJan 28, 2020

Часть 1, Часть 2 , Часть 3

1. Что такое априорное распределение?

Априорная вероятность — это вероятность события до того, как мы получили дополнительные данные.
В байесовском выводе априорное распределение — это наше предположение о вероятности, основанное на уже имеющихся знаниях.

2. Что такое сопряженное априорное распределение?

Сопряженное априорное распределение невозможно понять без знания байесовского вывода.

(Байесовский вывод — интуиция и примеры)

Далее я предполагаю, что вы знаете принципы априорного, выборочного и апостериорного распределений.

Суть сопряженного априорного распределения

Для некоторых функций вероятности, если выбрать определенную априорную, апостериорная вероятность будет принадлежать тому же семейству распределений, что и эта априорная. Такое априорное распределение называется сопряженным.

На примерах объяснить проще. Ниже я привожу код для расчета апостериорного распределения биномиальной вероятности. θ — это вероятность успеха, и наша задача выбрать θ, которая максимизирует апостериорную вероятность:

import numpy as np
import scipy.stats as stats

success_prob = 0.3
data = np.random.binomial(n=1, p=success_prob, size=1000) # успех - это 1, неудача - 0.

# Область определения θ
theta_range = np.linspace(0, 1, 1000)

# Априорная вероятность P(θ)
a = 2
b = 8
theta_range_e = theta_range + 0.0001
prior = stats.beta.cdf(x = theta_range_e, a=a, b=b) - stats.beta.cdf(x = theta_range, a=a, b=b)

# Выборочное распределение (или функция правдоподобия) P(X|θ)
likelihood = stats.binom.pmf(k = np.sum(data), n = len(data), p = theta_range)

# Апостериор
posterior = likelihood * prior
normalized_posterior = posterior / np.sum(posterior)

Существуют две вещи, которые затрудняют вычисление апостериорной вероятности. Во-первых, мы вычисляем апостериорную вероятность для каждой θ.

Зачем? Затем, что мы нормализуем апостериорную вероятность (строка 21). Даже если вы решите не нормализовывать ее, конечной задачей будет — найти апостериорный максимум (Оценка апостериорного максимума). Чтобы найти максимум, нам нужно рассмотреть каждого кандидата — правдоподобие P(X|θ) для каждой θ.

Во-вторых, если нет замкнутой формулы апостериорного распределения, нам нужно найти максимум с помощью численной оптимизации (например, градиентного спуска или метода Ньютона).

3. Как помогает сопряженное априорное распределение?

Зная, что априорное распределение является сопряженным, вы можете пропустить вычисление posterior = likelihood * prior. К тому же, если ваше априорное распределение имеет замкнутую форму, вы уже знаете, каким должен быть апостериорный максимум.

В примере выше бета-распределение является сопряженным априорным распределением биномиального распределения. Что это значит? На этапе моделирования мы уже знаем, что апостериорное распределение тоже будет бета-распределением. Следовательно, после большего количества экспериментов, вы можете вычислить апостериорную вероятность простым добавлением количества успехов и неудач к существующим параметрам α, β, соответственно, вместо перемножения функции вероятности и априорного распределения. Это очень удобно! Доказательство ниже.

В науке о данных или машинном обучении модель никогда не бывает полностью завершена — вам постоянно нужно обновлять ее с поступлением новых данных (вот зачем мы используем байесовский вывод).

Вычисления в баейсовском выводе бывают довольно трудоемкими, иногда даже неразрешимыми. Но если использовать формулу замкнутой формы с сопряженным априорным распределением, вычислить их становится проще простого.

4. Доказательство

Когда мы используем бета-распределение в качестве априорного, апостериорное распределение биномиального правдоподобия также является бета-распределением.

Бета порождает бета

Как выглядит плотность вероятности биномиального и бета-распределений?

Давайте подставим их в знаменитую формулу Байеса.

θ — вероятность успеха.

x — число успешных исходов.

n — общее число попыток, следовательно, n-x — это число неудач.

Почему последний интеграл становится B(x+α, n-x+β)? → Бета-распределение

Априорное распределение P(θ) соответствовало Beta(α, β). После получения x успехов и n-x неудач из экспериментов, апостериорное распределение также становится бета-распределением с параметрами (x+α, n-x+β).

5. Сопряженное априорное распределение

Бета-распределение является сопряженным априорным распределением для распределений Бернулли, биномиального, отрицательного биномиального и геометрического (распределения, включающие в себя успех и неудачу).

<Beta posterior>
Beta prior * Bernoulli likelihood → Beta posterior
Beta prior * Binomial likelihood → Beta posterior
Beta prior * Negative Binomial likelihood → Beta posterior
Beta prior * Geometric likelihood → Beta posterior
<Gamma posterior>
Gamma prior * Poisson likelihood → Gamma posterior
Gamma prior * Exponential likelihood → Gamma posterior
<Normal posterior>
Normal prior * Normal likelihood (mean) → Normal posterior

Вот почему эти распределения (бета, гамма и нормальное) часто используются в качестве априорных.

И если вы изначально выбрали правильное априорное распределение, то даже после всех экспериментов и перемножения функции правдоподобия на априорное распределение окончательное распределение будет таким же, как и априорное.

Сопряженное априорное распределение P(θ) в уравнении:

P(θ) such that P(θ|D) = P(θ)

Сопряженное априорное = Удобное распределение

Несколько замечаний:

  1. Когда мы используем сопряженное априорное распределение, последовательная оценка (обновление расчетов после каждого наблюдения) дает такой же результат, что и групповое распределение.
  2. Чтобы найти апостериорный максимум, вам не нужно нормализовывать произведение функции вероятности (выборочного распределения) и априорного распределения (интегрирования всех возможных θ в знаменателе).

Максимум можно найти и без нормализации. Однако, если вам нужно сравнить апостериорные вероятности из разных моделей или рассчитать точечные оценки, нормализация необходима.

Читайте также:

Читайте нас в телеграмме, vk и Яндекс.Дзен

Перевод статьи Aerin Kim: Conjugate Prior Explained

--

--