Теорема Байеса#

Основная идея теоремы Байеса - уточнение вероятности гипотезы при учёте новых данных.

Формула Байеса:

\[ P(A \mid B)=\frac{P(B \mid A) \cdot P(A)}{P(B)} \]

где

  • \(P(A)\) - априорная вероятность гипотезы \(A\) (до получения данных о истинности события \(B\));

  • \(P(A \mid B)\) - вероятность гипотезы \(A\) при наступлении события \(B\) (уточнённая, апостериорная вероятность);

  • \(P(B \mid A)\) - вероятность наступления события \(B\) при истинности гипотезы \(A\) (правдоподобие, likelihood;

  • \(P(B)\) - полная вероятность наступления события \(B\).

Последнее в простом случае можно считать через формулу полной вероятности:

\[ P(B) =P(B \mid A) \cdot P(A) + P(B \mid \bar{A}) \cdot P(\bar{A}) \]

где \(\bar{A}\) - означает событие ложности гипотезы \(A\).

Примечание. В более общем случае можно обобщить формулу Байеса на \(n\) непересекающихся гипотез \(A_i\), имеющих суммарную вероятность 1:

\[ P\left(A_j \mid B\right)=\frac{P\left(B \mid A_j\right) P\left(A_j\right)}{\sum_{i=1}^n P\left(B \mid A_i\right) P\left(A_i\right)} \]

или, что то же самое:

\[ P\left(A_j \mid B\right)=\frac{P\left(B \cap A_j\right)}{\sum_{k=1}^n P\left(B \cap A_k\right)} \]

image.png

Пример с короновирусом#

Ультрачувствительный тест от короновируса ошибается в 1% случаев (как в одну, так и в другую сторону). В данный момент в популяциии доля заболевших \(10^{-5}\). Петя получил положительный тест на коронавирус.

С какой вероятностью он действительно болеет коронавирусом?

Решение:

Обозначим за \(A\) событие болезни короновирусом (гипотезу), через \(B\) - положительный результат теста (новые данные).

Тогда до новых данных вероятность Пете заболеть (априорная вероятность) была:

\[ P(A) = 10^{-5} \]

Хотим уточнить эту вероятность с учётом новых данных (события \(B\)), для которых верно:

\[ P(B \mid A)=0.99, \quad P(B \mid \bar{A})=0.01 \]

По формуле Байеса для уточнённой вероятности:

\[\begin{split} \\ \begin{gathered} P(A \mid B)=\frac{P(B \mid A) P(A)}{P(B)}=\frac{P(B \mid A) P(A)}{P(B \mid A) P(A)+P(B \mid \bar{A}) P(\bar{A})} \\ \\ P(A \mid B)=\frac{0.99 \cdot 10^{-5}}{0.99 \cdot 10^{-5}+0.01 \cdot\left(1-10^{-5}\right)}=9.89 \cdot 10^{-4} \approx 10^{-3} \end{gathered} \\ \end{split}\]

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

Возможно, Пете стоит сделать пройти тест ещё раз.

Уточнение параметров распределений#

Пусть имеем некоторое распределение, зависящее от некоторых параметров \(λ\). Например:

  • дискретное распределение Пуассона \(p_λ(k) \equiv \mathbb{P}(Y=k) =\, \frac{λ^k}{k !} e^{-λ} = P(k \mid \lambda)\)

  • непрерывное распределение Гаусса \(p_λ(x)=\frac{1}{λ_1 \sqrt{2 \pi}} e^{-\frac{1}{2}\left(\frac{x-λ_2}{λ_1}\right)^2} = p(x \mid \lambda)\)

На практике мы не знаем параметры \(λ\) этого распределения. Их нужно как-то определить. Теорема Байеса даёт один из возможных подходов исходя из разной вероятности иметь текущие \(λ\) для данного распределния. Иными словами, у нас есть ещё одно распределение на параметры \(λ\), которое мы и хотим получить.

Схема такая:

  1. Имеем \(P(λ)\) - априорное распределение значения параметр(а/ов) распределения

  2. Получаем экспериментальную точку \(m\)

  3. Из теоремы Байеса получаем уточнённое (апостериорное) распределение параметров при новых данных \(P(λ \mid m)\).

  4. Принимаем уточненное распределение за априорное и повторяем п. 1 - 3 пока не ~надоест~ сойдёмся.

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

А как считать \(P(λ|m)\) - апостериорное распределение на параметры при учёте получения данных \(m\)? Просто записываем теорему Байеса в следующем виде:

\[ P(λ \mid m)=\frac{P(m \mid λ) \cdot P(λ)}{P(m)}=\frac{P(m \mid λ) \cdot P(λ)}{\int d λ \cdot P(m \mid λ) \cdot P(λ)} = \frac{p_λ(m) \cdot P(λ)}{\int d λ \cdot p_λ(m) \cdot P(λ)} \]

Как видим, отличие в основном в том, что в формуле полной вероятности сумму заменил интеграл по распределению.

Таким образом, апостериорное распределение на иксы после учёта ВСЕХ новых данных:

\[ \tilde{p} (x) = \int d \lambda \cdot P ( x \mid \lambda) \cdot P ( \lambda \mid m_1, m_2, \cdots ) \]

Пример с фальшивой монеткой#

Пусть есть монетка, которая может выпадать решкой или орлом. Здесь и далее \(m=0\) - выпала решка, \(m=1\) - выпал орёл.

За параметр распределения \(λ\) возьмём вероятность выпадения орла. Тогда распределение на возможные варианты исхода одного броска:

\[\begin{split} p_\lambda(m)=\left\{\begin{array}{c} 1-\lambda, \quad m=0 \\ \lambda, \quad m=1 \end{array}\right.\\ \end{split}\]

Как и выше, считаем, что есть некоторое распределение на возможные \(λ\). Понятно, что для обычной монеты оно должно быть в идеале \(P_\text{ideal}(\lambda) = \delta (\lambda - 0.5)\), а для шулерской что-то пойдёт не так.

Для примера, положим, что шулерская монета только в 40% случаев выпадает орлом. В качестве начального априорного распределения положим равновероятный вариант иметь честную и шулерскую монету. Математически, это можно записать как:

\[ P(\lambda) = \frac{1}{2} \cdot \delta (\lambda - 0.5) + \frac{1}{2} \cdot \delta (\lambda - 0.4) \]

Проведём один эксперимент в котором, положим, выпал орёл \(m=1\). Апостериорная вероятность с учётом новых данных:

\[ P(\lambda \mid 1)=\cfrac{p(1 \mid \lambda) \cdot P(\lambda)}{p(1)} = \cfrac{p_\lambda(1) \cdot P(\lambda)}{\int_\lambda d \lambda P(\lambda) p_\lambda(1)} = \cfrac{\frac{\lambda}{2} \cdot \delta (\lambda - 0.5) + \frac{\lambda}{2} \cdot \delta (\lambda - 0.4)}{\int_\lambda d \lambda \left(\frac{\lambda}{2} \cdot \delta (\lambda - 0.5) + \frac{\lambda}{2} \cdot \delta (\lambda - 0.4)\right) } \]
\[ P(\lambda \mid 1)= \cfrac{\frac{0.5}{2} \cdot \delta (\lambda - 0.5) + \frac{0.4}{2} \cdot \delta (\lambda - 0.4)}{0.5 \cdot 0.4+0.5 \cdot 0.5} \]
\[ P(\lambda \mid 1)= \frac{5}{9} \cdot \delta (\lambda - 0.5) + \frac{4}{9} \cdot \delta (\lambda - 0.4) \]

Аналогично, можно считать и далее. Например, пусть второй раз выпала решка \(m=0\). Пользуемся теми же самыми формулами, приняв последнее выражение за новую априорную вероятность \(P(\lambda)\stackrel{\text{redefine}}{=}P(\lambda \mid 1)\).

Итого,

\[ P(\lambda \mid 1, 0)= \frac{25}{41} \cdot \delta (\lambda - 0.5) + \frac{16}{41} \cdot \delta (\lambda - 0.4) \]

И т.д. Т.е. для конкретного набора результатов бросков мы всегда можем оценить вероятность, была ли использована шулерская монета.

Алгоритм, работающий аналогичным образом для решения задач классификации, называется наивным байесовским классификатором. Чтобы определить вероятность истинности гипотезы о принадлежности объекта к тому или иному классу, наивный байесовский классификатор аналогичным образом использует информацию по каждому признаку. Результаты выпадения монетки в данном случае аналогичны проявлению класса объекта в виде того или иного признака.

Регуляризация из теоремы Байеса#

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

В этом рассмотрении мы сможем дать вероятностное объяснение корректности решения задачи регрессии с использованием регуляризации. Это позволит также оценить случайную погрешность весов модели.

Гауссова вероятностная модель (напоминание)#

Пусть нам дан набор точек \(\left\{\left(x_i, y_i\right)\right\}_{i=1}^N\) и пусть их систематическая (приборная) погрешность равна нулю. Опять-таки надо найти наилучшую аппроксимирующую модель.

Как и раньше, будем решать эту задачу линейной регрессией. Пусть также наша модель отличается от истинных \(y_i\) на некоторый шум

\[ y_i=X_{i \alpha} w_\alpha+\epsilon_i, \quad \epsilon_i \sim \mathcal{N}\left(0, \sigma^2\right) \]

Здесь \(\epsilon_i\) - это случайный гауссов шум, объясняющий, почему исходные точки не лежат точно на нашей модели. Отметим, что \(\sigma\) нам неизвестна, но одинакова для всех точек выборки.

Принцип максимизации правдоподобия (likelyhood) (напоминание)#

В отличие от эмпирически выбранной функции потерь, будем пользоваться принципом максимизации правдоподобия (likelyhood). Он заключается в максимизации вероятности пронаблюдать истинные \(y_i\) в нашей нашей вероятностной модели.

Иными словами, нам надо подобрать такие \(w\), чтобы вероятность \(P_w(y)\) нашей модели \(\check{y}_i=X_{i \alpha} w_\alpha\) с учётом шума \(\epsilon_i\) выдать истинные \(y_i\) была максимальной. При этом выборка фиксирована. Эта вероятность называется правдоподобием данных.

\[P_w(y) \rightarrow \max _w\]

Т.к. вероятность независимость событий есть произведение их вероятностей, суммарная верность будет большим произведением, что не очень удобно. Поэтому переходят к эквивалентной задаче, беря логарифм от этой вероятности (это эквивалентный шаг, т.к. максимизация \(\log P_w(y)\) равносильна максимизации \(P_w(y)\)). Для удобства, эту штуку также называют правдоподобием.

\[\log P_w(y) \]

Распишем подробнее,

\[ P_w(y)=\prod_{i=1}^l \mathcal{N}\left(0, \sigma^2\right)\left[\epsilon_i\right]=\prod_{i=1}^N \frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left(-\frac{\left(y_i-X_{i \alpha} w_\alpha\right)^2}{2 \sigma^2}\right) \]

Логарифмируем,

\[ \log P_w(y)=\sum_{i=1}^N\left\{-\frac{1}{2} \log 2 \pi \sigma^2-\frac{\left(y_i-X_{i\alpha} w_\alpha\right)^2}{2 \sigma^2}\right\} \rightarrow \max _w \]

Заметим, что первые слагаемые от \(w\) не зависят, а вторые слагаемые в этой сумме образуют сумму квадратов отклонений, т.е. они образуют функцию потерь в методе наименьших квадратов. Получается, что МНК эквивалентен принципу максимизации правдоподобия с гауссовой вероятностной моделью. Это и есть вероятностный смысл МНК.

Вероятностный смысл регуляризации#

Перепишем наше правдоподобие в терминах условной вероятности. Действительно вероятность \(P_w(y)\) по сути своей есть вероятность пронаблюдать \(y\) при фиксированных \(w\) и \(x\):

\[ P_w(y)=P(y \mid w, x) \]

Посмотрим на это со следующей точки зрения. До самого процесса максимизации правдоподобия, уже имелось некоторое распределение вероятности получить те или иные \(w\) - априорное распределение (до процесса измерения \(w\)). Действительно, вероятность получить крайне большие \(w\) крайне мала для любой задачи. Обозначим это априорное распределение как \(p_\gamma(w)\), где \(\gamma\) - некоторые гиперпараметры.

Т.к. мы ввели функцию распределения, мы обязаны трактовать \(w\) как случайные величины. Таким образом в такой трактовке мы обязаны максимизировать правдоподобие данных и модели. Обозначим её за \(\widetilde{P}(y, w \mid x)\) и тогда,

\[ \widetilde{P}(y, w \mid x)=P(y \mid x, w) \cdot p_\gamma(w)=P_w(y) \cdot p_\gamma(w) \]

Логарифмируя,

\[ \log \widetilde{P}(y, w \mid x)=\log P_w(y) + \log p_\gamma(w) = \text { const по }w-\frac{1}{2 \sigma^2} \mathcal{L}+\log p_\gamma(w)\rightarrow \max _w \]

А отсюда уже видно, что выбор подходящего априорного распределения \(p_\gamma(w)\) и даёт нам нужную функцию потерь! Иначе говоря, регуляризация - это лишь постулирование, что \(w\) до процесса измерения имеют некоторое распределение \(p_\gamma(w)\), отвечающее выбранной регуляризации. Проиллюстрируем это.

Если взять \(p_\gamma(w)\) как гауссово распределение, мы получим L2-регуляризацию:

\[ p_\gamma\left(w_\alpha\right)=\frac{1}{\sqrt{2 \pi \gamma}} e^{-\frac{w_\alpha^2}{2 \gamma}} \]
\[ \log p_\gamma=\text{const по $w$} -\frac{w_\alpha^2}{2 \gamma} \]
\[ \log \widetilde{P}(y, w \mid x)= \text { const по }w-\frac{1}{2 \sigma^2} \left( \mathcal{L}-w_\alpha^2\frac{\sigma^2}{\gamma} \right)\rightarrow \max _w \]

Откуда видим, что в прежних обозначениях \(\tau = \frac{\sigma^2}{\gamma}\).

Аналогично, L1-регуляризация получается из распределения Лапласа \(p_ \gamma\left(w_\alpha\right)=\frac{1}{2 \gamma} e^{-\frac{\left|w_\alpha\right|}{\gamma}}\).

Опять таки видим одинаковый масштаб для всех весов \(w\) - т.е. важно нормировать данные! Иначе, мы бы сразу неявно воспринимали некоторые признаки более важными, чем другие.