Статистика

MLE: лучшая догадка, которая знает почему она права

Кросс-энтропия в PyTorch - это формула Фишера 1922 года. LogSoftmax + NLLLoss в нейросетях - это максимальное правдоподобие, записанное кодом. Каждый раз, когда модель обучается через градиентный спуск по cross-entropy, она максимизирует правдоподобие данных.

  • DL: кросс-энтропия loss = MLE для категориальных распределений (PyTorch, TF)
  • Econometrics: MLE для моделей с максимальным правдоподобием в Stata и R
  • Выживаемость: MLE для Cox proportional hazards model в клинических испытаниях
  • GLM: логистическая регрессия обучается через MLE (sklearn, statsmodels)
  • EM-алгоритм: обобщение MLE для задач с латентными переменными (GMM, HMM)
  • Байесовский вывод: MAP = MLE с априорным распределением как регуляризацией

Предварительные знания

  • (no prerequisites)
  • Estimation: The $1.5B Mistake of the Hubble Telescope

Правдоподобие: перевернуть вопрос

**2022 год. DeepMind выпускает AlphaFold2.** Система предсказывает структуру 200 миллионов белков - буквально весь известный протеом Земли. За 50 лет до этого биологи не знали структуры почти ни одного и тратили годы на рентгеновскую кристаллографию. Как обучается AlphaFold2? Нейросеть учится предсказывать контакты между аминокислотами. Функция потерь: бинарная кросс-энтропия. **Cross-entropy loss = negative log-likelihood = именно то, что Рональд Фишер описал в 1922 году как «метод максимального правдоподобия».** Каждый шаг обратного распространения в AlphaFold2 - это итерация идеи, которой 100 лет. Просто Фишер не знал про GPU и трансформеры.

**Чему этот урок учит на самом деле**: не «как дифференцировать логарифм», а почему **MLE - это единая теория под всем ML**. Логистическая регрессия, нейросети, языковые модели, гауссовские смеси - все обучаются максимизируя правдоподобие. Через 35 минут будет видно, почему cross-entropy loss и negative log-likelihood - это одно и то же, и почему MLE асимптотически достигает наилучшей возможной точности.

Правдоподобие: перевернуть вопрос

Есть вероятность и есть правдоподобие. Звучат похоже, но смотрят в разные стороны. **Вероятность** смотрит вперёд: дано распределение, что за данные ожидать? **Правдоподобие** смотрит назад: вот данные, какое распределение их породило?

Вероятность P(X|θ)Правдоподобие L(θ|X)
Что фиксированоПараметр θДанные X
Что варьируетсяДанные XПараметр θ
ВопросКакие данные ожидать при θ?При каком θ данные наиболее вероятны?
МатематическиФункция от XФункция от θ
ПримерP(7 орлов из 10 | p=0.5) = ?L(p | 7 орлов из 10) = ?

Монета: 7 орлов из 10 бросков

Интуиция правдоподобия

Наблюдение: 7 орлов из 10 бросков. Вопрос MLE: какое p (вероятность орла) наиболее правдоподобно? Функция правдоподобия: L(p) = C(10,7) · p⁷ · (1-p)³ L(0.5) = 120 · 0.5^10 ≈ 0.117 L(0.7) = 120 · 0.7^7 · 0.3^3 ≈ 0.267 ← максимум! L(0.9) = 120 · 0.9^7 · 0.1^3 ≈ 0.057 MLE-ответ: p̂ = 7/10 = 0.7 Интуиция: «выбери тот параметр, при котором наблюдаемые данные были бы наиболее вероятны». Это и есть вся идея MLE.

**Ключевой разворот**: вероятность - это функция данных при фиксированном θ. Правдоподобие - это функция θ при фиксированных данных. Одна и та же формула, разный взгляд. MLE ищет максимум по θ.

В чём ключевое различие между вероятностью P(X|θ) и правдоподобием L(θ|X)?

Log-likelihood: произведение в сумму

Log-likelihood: произведение в сумму

Для n независимых наблюдений правдоподобие - это **произведение** отдельных вероятностей. Произведения тяжело оптимизировать: численно нестабильны (underflow при больших n), сложно дифференцировать. Логарифм решает обе проблемы: превращает произведение в сумму.

Для i.i.d. выборки X₁, ..., Xₙ из распределения f(x|θ): L(θ) = f(X₁|θ) · f(X₂|θ) · ... · f(Xₙ|θ) = ∏ f(Xᵢ|θ) Log-likelihood (логарифм монотонен → максимум в той же точке): ℓ(θ) = ln L(θ) = Σ ln f(Xᵢ|θ) Алгоритм MLE: 1. Записать L(θ) = ∏ f(Xᵢ|θ) 2. Взять логарифм: ℓ(θ) = Σ ln f(Xᵢ|θ) 3. Продифференцировать: dℓ/dθ = 0 (score equation) 4. Решить, проверить что максимум (d²ℓ/dθ² < 0) Если аналитически не решается - gradient ascent на ℓ(θ). Это буквально то, что делает SGD в нейросетях (с минусом).

Зачем при работе с правдоподобием используют его логарифм ℓ(θ) = ln L(θ)?

Три канонических примера

Три канонических примера

X₁,...,Xₙ ~ N(μ, σ²). Найти μ̂ и σ̂². ℓ(μ,σ²) = -n/2·ln(2πσ²) - 1/(2σ²)·Σ(Xᵢ-μ)² По μ: ∂ℓ/∂μ = 1/σ²·Σ(Xᵢ-μ) = 0 → μ̂_MLE = X̄ По σ²: ∂ℓ/∂σ² = -n/(2σ²) + Σ(Xᵢ-μ)²/(2σ⁴) = 0 → σ̂²_MLE = (1/n)·Σ(Xᵢ-X̄)² ← делит на n, не n-1! MLE дисперсия - смещённая (предыдущий урок!). Свойство MLE: асимптотически несмещённая (смещение → 0).

X₁,...,Xₙ ~ Bernoulli(p). Наблюдаем k единиц из n. L(p) = pᵏ · (1-p)^(n-k) ℓ(p) = k·ln(p) + (n-k)·ln(1-p) dℓ/dp = k/p - (n-k)/(1-p) = 0 → k(1-p) = (n-k)p → k - kp = np - kp → p̂_MLE = k/n (доля единиц в выборке) Логистическая регрессия максимизирует это же правдоподобие, но с p_i = σ(wᵀxᵢ). Binary cross-entropy: BCE = -1/n·Σ[yᵢ·ln(p̂ᵢ) + (1-yᵢ)·ln(1-p̂ᵢ)] = -1/n·ℓ(w) ← это и есть negative log-likelihood! Minimize BCE = Maximize ℓ(w). PyTorch BCELoss - это MLE.

X₁,...,Xₙ ~ Poisson(λ). Счёт кликов, вызовов, дефектов. f(k|λ) = λᵏ·e^(-λ) / k! ℓ(λ) = (Σ Xᵢ)·ln(λ) - n·λ - Σ ln(Xᵢ!) dℓ/dλ = (Σ Xᵢ)/λ - n = 0 → λ̂_MLE = (Σ Xᵢ)/n = X̄ CTR, RPS, MTTR: везде где модель для count data - PyTorch PoissonNLLLoss максимизирует это правдоподобие.

**Единая теория под ML**: Gaussian NLL → MSE loss (регрессия). Bernoulli NLL → Binary Cross-Entropy (классификация). Categorical NLL → Cross-Entropy (softmax). Laplace NLL → MAE loss (робастная регрессия). Каждый раз, когда выбирается loss function, неявно выбирается предположение о распределении шума.

Какая функция потерь в нейросети эквивалентна максимизации правдоподобия Бернулли (бинарная классификация)?

Свойства MLE: почему он так хорош

Свойства MLE: почему он так хорош

MLE обладает набором свойств, которые делают его default-выбором для оценки параметров. Все они асимптотические - работают при достаточно большом n - но в большинстве практических задач n достаточен.

СвойствоЧто означаетПрактическое следствие
Состоятельностьθ̂_MLE →_P θ при n→∞При достаточных данных MLE найдёт правильный параметр
Асимптотическая нормальность√n(θ̂-θ) → N(0, I⁻¹(θ))Доверительные интервалы строятся по формулам
Асимптотическая эффективностьДостигает границы Крамера-РаоНет несмещённого оценщика с меньшей дисперсией
Инвариантностьg(θ̂) - MLE для g(θ)MLE для σ даёт MLE для σ², для e^μ и т.д.

Инвариантность: полезнейшее свойство

Нет нужды решать задачу заново

Если θ̂_MLE = X̄ для μ нормального распределения, то: MLE для e^μ = e^(X̄) (без новых вычислений!) MLE для 1/σ = 1/σ̂ (аналогично) MLE для μ/σ = X̄/σ̂ (стандартизованное среднее) Пример из ML: если MLE для логита logit(p) = log(p/(1-p)), то MLE для p = sigmoid(logit̂) - поэтому логистическая регрессия даёт MLE для вероятностей напрямую.

Какое свойство MLE гарантирует, что если мы знаем оценку для μ, то оценку для любой функции g(μ) можно получить без новых вычислений?

Где MLE живёт прямо сейчас

Где MLE живёт прямо сейчас

**Финальный кадр**: когда PyTorch делает loss.backward() с cross-entropy loss - выполняется алгоритм Фишера 1922 года через automatic differentiation на GPU. Gradient descent по параметрам - это численный MLE. Выбор loss function - это выбор распределения. Понимание этой связи меняет интуицию про ML: не «мы минимизируем ошибку», а «мы максимизируем правдоподобие данных при модели».

Что делает `loss.backward()` в PyTorch при использовании cross-entropy loss с точки зрения статистики?

Практика: MLE для гауссиана с нуля

Практика: MLE для гауссиана с нуля

Для нормальной выборки X₁,...,Xₙ ~ N(μ, σ²) что даёт MLE для σ²?

Что унести из урока

  • **Правдоподобие L(θ|X)** - это вероятность данных как функция параметра: фиксируем данные, варьируем θ
  • **MLE = argmax L(θ)**: выбираем параметр при котором наблюдаемые данные наиболее вероятны
  • **Алгоритм**: L(θ) → log L(θ) = Σ ln f(Xᵢ|θ) → dℓ/dθ = 0 → проверить максимум
  • **Cross-entropy = NLL**: minimize BCE в PyTorch = maximize Bernoulli log-likelihood = MLE
  • **Свойства**: состоятелен, асимптотически нормален, асимптотически эффективен, инвариантен
  • **Единая теория**: регрессия (MSE = Gaussian NLL), классификация (BCE = Bernoulli NLL), LLM (CE = Categorical NLL) - везде MLE

Куда дальше

MLE даёт точечную оценку. Дальше - как выразить неопределённость.

  • Доверительные интервалы — Асимптотическая нормальность MLE сразу даёт доверительный интервал через информацию Фишера
  • Байесовский подход — MLE = MAP с uniform prior. Bayesian inference добавляет prior - шаг от MLE к posterior
  • EM-алгоритм — MLE для моделей с латентными переменными (GMM, HMM) через iterative E и M шаги
  • Логистическая регрессия — MLE для Bernoulli с параметром p = σ(wᵀx) - baseline классификации в ML

Связанные уроки

  • aie-36-fine-tuning
  • ml-06-linear-regression
  • ml-10-logistic-regression
MLE: лучшая догадка, которая знает почему она права

0

1

Войти