Максимальное правдоподобие

Коротко

Definition

Максимальное правдоподобие — это принцип оценки параметров модели, при котором выбираются такие параметры, которые делают наблюдаемые данные наиболее вероятными.

Метод максимального правдоподобия часто обозначают как MLE — maximum likelihood estimation.

Идея простая: если у нас есть данные, то хорошая модель должна считать именно эти данные вероятными.

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

Интуиция

Представим, что модель объясняет данные через параметры .

Разные значения делают разные наблюдения более или менее вероятными. Метод максимального правдоподобия спрашивает:

При каких параметрах наши реальные данные выглядели бы наиболее правдоподобно?

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

Если правильный класс — cat, хорошая модель должна дать ему высокую вероятность:

Если для всех обучающих объектов модель даёт правильным ответам высокие вероятности, правдоподобие большое. Если хотя бы нескольким правильным ответам модель даёт почти нулевую вероятность, правдоподобие резко падает.

Основные идеи

Правдоподобие

Пусть есть обучающая выборка:

Модель с параметрами задаёт вероятность правильного ответа:

Если считать объекты независимыми, правдоподобие всей выборки:

Задача максимального правдоподобия:

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

Логарифм правдоподобия

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

Причины:

  • произведение многих вероятностей быстро становится численно очень маленьким;
  • логарифм превращает произведение в сумму;
  • сумма удобнее для оптимизации;
  • максимум сохраняется, потому что логарифм монотонен.

Поэтому задача становится такой:

Отрицательное log-likelihood

Многие оптимизаторы минимизируют функцию потерь, а не максимизируют целевую функцию. Поэтому берут отрицательный log-likelihood:

И минимизируют его:

Для классификации это напрямую приводит к кросс-энтропии.

Пример для классификации

Для классификации:

Если модель для всех правильных классов выдаёт вероятность , то:

При росте это число быстро стремится к нулю. Поэтому напрямую работать с произведением неудобно.

Логарифм превращает это в сумму:

А отрицательный средний log-likelihood:

Именно это значение является cross-entropy loss, если вероятность правильного класса равна .

Крайние случаи

Идеальный случай:

для каждого объекта. Тогда:

и:

Худший случай:

хотя бы для одного правильного ответа. Тогда:

а:

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

Когда использовать

Максимальное правдоподобие используют, когда:

  • модель задаёт вероятности или плотности вероятности;
  • нужно оценить параметры статистической модели;
  • обучается логистическая регрессия;
  • обучается вероятностный классификатор;
  • обучается языковая модель;
  • функция потерь выводится из предположений о распределении данных;
  • нужно связать обучение модели со статистической интерпретацией.

Примеры:

  • в логистической регрессии MLE приводит к cross-entropy loss;
  • в линейной регрессии с гауссовым шумом MLE приводит к MSE;
  • в языковом моделировании MLE соответствует максимизации вероятности правильных токенов;
  • в вероятностных моделях MLE используется для оценки параметров распределений.

Когда не использовать

MLE может быть не лучшим выбором, если:

  • вероятностная модель плохо описывает данные;
  • данные сильно зашумлены;
  • есть много выбросов;
  • выборка маленькая, и модель легко переобучается;
  • важна регуляризация или prior-знание;
  • нужна байесовская оценка неопределённости.

В таких случаях могут использовать:

  • MAP-оценку;
  • байесовский подход;
  • регуляризацию;
  • робастные функции потерь;
  • специальные objective-функции под задачу.

Минимальный пример

import math
 
probs = [0.8, 0.6, 0.9]
 
likelihood = math.prod(probs)
log_likelihood = sum(math.log(p) for p in probs)
negative_log_likelihood = -log_likelihood
 
print(likelihood)
print(log_likelihood)
print(negative_log_likelihood)

В этом примере probs — вероятности, которые модель присвоила правильным ответам. Чем выше эти вероятности, тем выше likelihood и тем ниже negative log-likelihood.

Связанные понятия

Что знать перед этим

  • Вероятность
  • Условная вероятность
  • Логарифм

Связанные заметки