Что такое метод максимального правдоподобия
Что проверяют
Связываете ли вы статистику с тем, что реально считает модель. Метод максимального правдоподобия стоит за привычными функциями потерь, и вопрос проверяет, видите ли вы эту связь или помните только определение из учебника.
Как отвечать
Идея в одной фразе: фиксируем семейство распределений, берём наблюдения и выбираем параметры, при которых эти наблюдения наиболее вероятны. Функция правдоподобия это вероятность данных, рассматриваемая как функция параметра.
На практике максимизируют логарифм: произведение по наблюдениям превращается в сумму, пропадает потеря точности при перемножении малых чисел, точка максимума не меняется. Множители, не зависящие от параметра, отбрасывают сразу.
import numpy as np
from scipy.optimize import minimize
def neg_loglik(params, x):
mu, log_sigma = params
s = np.exp(log_sigma)
return np.sum(0.5 * ((x - mu) / s) ** 2 + log_sigma)
res = minimize(neg_loglik, x0=np.zeros(2), args=(x,))Обязательно назовите переход к машинному обучению: при нормальном шуме максимизация правдоподобия совпадает с методом наименьших квадратов, при бинарной цели даёт кросс-энтропию. Добавление априорного распределения превращает оценку в апостериорную и даёт регуляризацию: гауссовский приор это штраф на квадрат весов, лапласовский на модуль.
Где спотыкаются
Говорят, что метод ищет наиболее вероятные параметры. Он ищет параметры, при которых вероятны данные; вероятность самих параметров появляется только вместе с априорным распределением, и это уже другая оценка.
Не видят подвохов. Оценка дисперсии нормального распределения этим методом смещена, а в логистической регрессии на линейно разделимых данных максимум не достигается вовсе: веса уходят в бесконечность, пока их не удержит регуляризация.
Пишут правдоподобие произведением и удивляются нулям. Множество сомножителей меньше единицы обнуляет результат в машинной арифметике, поэтому считают сумму логарифмов, а не логарифм произведения.