Вероятность
Дискретные распределения
Бернулли, биномиальное, категориальное, мультиномиальное и Пуассона — и что каждое из них моделирует
Бернулли: одно испытание
Ожидание совпадает с по определению, а дисперсия максимальна при и равна — та же парабола , что была максимумом производной сигмоиды в блоке 2. Совпадение не случайно: сигмоида и есть параметризация вероятности Бернулли, а её производная — дисперсия.
Отсюда и практическое следствие: бинарная классификация ближе всего к решению там, где модель наименее уверена, и именно там градиент максимален.
Биномиальное: сумма испытаний
Число успехов в независимых испытаниях. Ожидание выводится линейностью — сумма бернуллиевских слагаемых, — а дисперсия требует независимости, потому что иначе появились бы ковариации.
Биномиальный коэффициент в коде считать через факториалы не нужно: переполняет double уже при . Умножайте нарастающим произведением или считайте в log-пространстве. Это тот же приём, что в блоке 6 будет называться вычислениями в log-space.
Категориальное и мультиномиальное
Категориальное — обобщение Бернулли на исходов: вектор вероятностей с . Именно это распределение выдаёт softmax, и именно с ним сравнивается ответ в кросс-энтропии.
Стоит отметить, что из-за нормировки у категориального распределения свободных параметров, а не — та же лишняя степень свободы, которую мы видели как инвариантность softmax к сдвигу.
Мультиномиальное — сколько раз каждый исход встретился за испытаний. Биномиальное это его частный случай при . Встречается в bag-of-words моделях и в наивном Байесе для текстов.
Пуассона: редкие события
Число событий за фиксированный интервал, когда события независимы и происходят с постоянной интенсивностью. Отличительная примета — равенство среднего и дисперсии.
Это равенство делает распределение проверяемым: если в данных дисперсия заметно больше среднего (overdispersion), пуассоновская модель неадекватна, и берут отрицательное биномиальное. Такая диагностика по одному числу — редкая роскошь.
Пуассона получается как предел биномиального при , , . Проверьте: возьмите биномиальное с и малым , потом Пуассона с , и сравните формы.
вероятности P(X = k)
F(x) = P(X ≤ x)
- E[X]
- 0.3
- Var(X)
- 0.21
- P(X ≤ k)
- 0.7
Переключитесь между биномиальным (, ) и Пуассона (): столбики почти совпадают. Дисперсии при этом различаются — против , и множитель показывает, насколько приближение недооценивает разброс.
Сводка
| распределение | что моделирует | среднее | дисперсия |
|---|---|---|---|
| Бернулли() | одно да/нет | ||
| Бином() | число успехов | ||
| Категориальное() | один из | — | — |
| Мультиномиальное | счётчики по | ||
| Пуассона() | редкие события |
Где это в машинном обучении
- Бернулли — бинарная классификация; логистическая регрессия это MLE для неё, и мы выведем это в уроке про MLE;
- категориальное — многоклассовая классификация, выход softmax, и распределение следующего токена в языковой модели;
- мультиномиальное — bag-of-words, наивный Байес для текста;
- Пуассона — счётные данные: клики, отказы, число событий в окне.
Общая мысль, к которой вернёмся в уроке про экспоненциальное семейство: все эти распределения — члены одного семейства, и потому все связанные с ними лоссы имеют одинаковую структуру. Кросс-энтропия для Бернулли и для категориального — не два разных изобретения, а одна формула.
Источники
- Blitzstein, Hwang — Introduction to Probability, гл. 3.4 и 4.8 — Именованные дискретные распределения
- Bishop — Pattern Recognition and Machine Learning, гл. 2.1–2.2 — Бернулли, биномиальное, мультиномиальное и их сопряжённые
Проверки
0 из 2Какое распределение брать
Отметьте все верные утверждения.
Биномиальная вероятность без факториалов
Реализуйте
binomial_pmf(n, p, k)— вероятность ровноkуспехов вnиспытаниях:Не считайте факториалы. Стройте коэффициент нарастающим произведением:
Каждый множитель здесь порядка единицы, поэтому переполнения не возникает даже при больших
n, тогда как выходит за пределы double уже при . Это первый пример общего приёма: перегруппировать вычисление так, чтобы промежуточные величины оставались умеренными.Для
k < 0илиk > nверните0.Загрузка редактора…
Ctrl/⌘ + Enter