Вероятность

Экспоненциальное семейство

Почему кросс-энтропия для Бернулли и для категориального — одна формула, а не два изобретения

Шаг 43 из 117 · ~28 мин

Общий вид

p(xη)=h(x)exp ⁣(ηT(x)A(η))p(x \mid \boldsymbol{\eta}) = h(x)\exp\!\bigl(\htmlData{k=eta}{\boldsymbol{\eta}}^\top \htmlData{k=T}{T(x)} - \htmlData{k=A}{A(\boldsymbol{\eta})}\bigr)

Почти все знакомые распределения — члены этого семейства: Бернулли, категориальное, биномиальное, Пуассона, нормальное, экспоненциальное, Бета, Дирихле, гамма. Не входят, например, смеси и распределение Стьюдента.

Три части, каждая со своей ролью. η\boldsymbol{\eta} — это то, что в моделях предсказывают линейно: логит. T(x)T(x) — единственное, что данные сообщают о параметре. A(η)A(\boldsymbol{\eta}) отвечает за нормировку и, как выяснится, за средние.

Бернулли: откуда берётся логит

Возьмём p(x)=θx(1θ)1xp(x) = \theta^x(1-\theta)^{1-x} и перепишем через экспоненту:

p(x)=exp(xlogθ+(1x)log(1θ))=exp(xlogθ1θη+log(1θ))p(x) = \exp\Bigl(x\log\theta + (1-x)\log(1-\theta)\Bigr) = \exp\Bigl(x\underbrace{\log\tfrac{\theta}{1-\theta}}_{\eta} + \log(1-\theta)\Bigr)

Естественный параметр оказался равен logθ1θ\log\frac{\theta}{1-\theta} — это логит. А обратное преобразование θ=11+eη\theta = \frac{1}{1+e^{-\eta}}сигмоида.

Вот и ответ на вопрос, почему в логистической регрессии стоит именно сигмоида. Не «удобная функция, сжимающая в (0,1)(0,1)», а обратное отображение к естественному параметру Бернулли. Для категориального распределения то же вычисление даёт softmax.

Три свойства, которые всё объясняют

Производная log-нормировки даёт среднее:

ηA(η)=E[T(x)],η2A(η)=Cov[T(x)]\nabla_{\boldsymbol{\eta}} A(\boldsymbol{\eta}) = E[T(x)], \qquad \nabla^2_{\boldsymbol{\eta}} A(\boldsymbol{\eta}) = \operatorname{Cov}[T(x)]

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

Градиент log-правдоподобия — это «предсказание минус наблюдение»:

ηlogp(xη)=T(x)E[T(x)]\nabla_{\boldsymbol{\eta}} \log p(x \mid \boldsymbol{\eta}) = T(x) - E[T(x)]

Сравните с выводом из блока 2, где градиент кросс-энтропии оказался py\mathbf{p} - \mathbf{y}. Это не совпадение и не удача конкретной выкладки: так устроено всё семейство. Кросс-энтропия для Бернулли, для категориального, для Пуассона — одна формула с разными TT.

Сопряжённый prior существует всегда и имеет ту же экспоненциальную форму. Отсюда и Бета для Бернулли, и Дирихле для категориального из прошлых уроков.

Softmax как параметризация категориального

Для категориального распределения с KK исходами естественные параметры — логиты, а обратное преобразование это softmax:

πk=eηkjeηj\pi_k = \frac{e^{\eta_k}}{\sum_j e^{\eta_j}}

Инвариантность к сдвигу, которую мы видели в блоке 2, теперь получает объяснение: из-за ограничения kπk=1\sum_k \pi_k = 1 у распределения K1K-1 свободных параметров, а логитов KK. Одна степень свободы лишняя — и сдвиг всех логитов её и параметризует.

сдвиг всех η 0
температура 1
сумма
1
наибольшая
59.8%

Включите строку якобиана: диагональ pi(1pi)p_i(1-p_i) и внедиагональные pipj-p_ip_j — это в точности ковариационная матрица one-hot вектора. То есть якобиан softmax и есть 2A\nabla^2 A, и его неотрицательная определённость — та же выпуклость.

Обобщённые линейные модели

Отсюда рецепт, покрывающий половину классической статистики: выберите распределение из семейства, предсказывайте его естественный параметр линейно (η=wx\eta = \mathbf{w}^\top\mathbf{x}), обучайте по максимуму правдоподобия.

данныераспределениефункция связичто получилось
да/нетБернуллисигмоидалогистическая регрессия
один из KKкатегориальноеsoftmaxмногоклассовая логистическая
счётчикиПуассонаэкспонентапуассоновская регрессия
вещественныенормальноетождественнаяобычная линейная регрессия

Все четыре — один алгоритм. Функция потерь каждый раз одна и та же (минус log-правдоподобие), градиент каждый раз имеет вид «предсказание минус наблюдение», и оптимизация каждый раз выпукла. Это ровно та экономия, ради которой стоит знать про экспоненциальное семейство: четыре метода превращаются в один с параметром.

Источники

  • Bishop — Pattern Recognition and Machine Learning, гл. 2.4 — Экспоненциальное семейство, достаточные статистики, сопряжённость
  • Murphy — Probabilistic Machine Learning, гл. 3.4 — Exponential family, natural parameters, GLM

Проверки

0 из 2
  1. Естественные параметры и функции связи

    Отметьте все верные утверждения про экспоненциальное семейство.

  2. Функции связи и обратные к ним

    Реализуйте link(family, value, inverse) — переход между естественным параметром и средним для трёх семейств.

    При inverse = false нужно перевести среднее в естественный параметр, при inverse = true — обратно:

    семейство среднее → η η → среднее
    "bernoulli" logp1p\log\frac{p}{1-p} 11+eη\frac{1}{1+e^{-\eta}}
    "poisson" logλ\log\lambda eηe^{\eta}
    "normal" μ\mu η\eta

    Для неизвестного семейства верните null (в Python None). Для bernoulli вне (0,1)(0,1) и для poisson при неположительном среднем логарифм не определён — тоже верните null.

    Обратите внимание, что у нормального распределения связь тождественная: обычная линейная регрессия — это GLM, у которого функция связи ничего не делает.

    функция link

    Загрузка редактора…

    Ctrl/⌘ + Enter