← Назад к вопросам

Сформулируйте задачу Maximum Likelihood Estimation. Запишите формулу

2.0 Middle🔥 121 комментариев
#Машинное обучение#Статистика и A/B тестирование

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Сформулируйте задачу Maximum Likelihood Estimation. Запишите формулу

Maximum Likelihood Estimation (MLE) — один из фундаментальных методов статистического вывода и машинного обучения. Это мощный способ оценить параметры модели, найдя значения, которые максимизируют вероятность наблюдения наших данных.

Формальная постановка задачи

Дана:

  • Выборка данных: X = {x₁, x₂, ..., xₙ}
  • Вероятностная модель: p(x|θ), где θ — неизвестные параметры

Цель: найти θ*, которое максимизирует вероятность наблюдения выборки X при условии модели.

Функция правдоподобия (Likelihood Function)

Для одного наблюдения:

L(θ|x) = p(x|θ)

Для независимых наблюдений (i.i.d.):

L(θ|X) = ∏(i=1 to n) p(xᵢ|θ) = p(x₁|θ) * p(x₂|θ) * ... * p(xₙ|θ)

Логарифм правдоподобия (Log-Likelihood):

ℓ(θ|X) = log L(θ|X) = Σ(i=1 to n) log p(xᵢ|θ)

Используем логарифм потому что:

  1. Произведение → сумма (проще вычислять)
  2. Числено стабильнее
  3. Не меняет позицию максимума

Оптимизационная задача

θ* = argmax_θ L(θ|X) = argmax_θ ℓ(θ|X)

Или эквивалентно (минимизация):

θ* = argmin_θ (-ℓ(θ|X)) = argmin_θ (-Σ log p(xᵢ|θ))

Вторая формулировка часто используется в машинном обучении.

Примеры MLE

1. Нормальное распределение

Дано: X = {x₁, x₂, ..., xₙ} из N(μ, σ²)

Функция плотности:

p(x|μ, σ²) = (1 / √(2πσ²)) * exp(-(x-μ)² / (2σ²))

Log-Likelihood:

ℓ(μ, σ²) = -n/2 * log(2πσ²) - Σ(xᵢ-μ)² / (2σ²)

MLE оценки:

import numpy as np

X = np.array([1, 2, 3, 4, 5])

# MLE для μ
mu_mle = np.mean(X)
print(f"μ MLE = {mu_mle}")  # 3.0

# MLE для σ²
sigma2_mle = np.mean((X - mu_mle)**2)
print(f"σ² MLE = {sigma2_mle}")  # 2.0

2. Бернуллиева распределение (классификация)

Дано: X = {x₁, x₂, ..., xₙ}, где xᵢ ∈ {0, 1}

Модель:

p(x|p) = p^x * (1-p)^(1-x)

Log-Likelihood:

ℓ(p) = Σ [x_i * log(p) + (1-x_i) * log(1-p)]

MLE оценка:

X = np.array([1, 1, 0, 1, 0, 1, 1])
p_mle = np.mean(X)
print(f"p MLE = {p_mle}")  # 5/7 ≈ 0.714

3. Логистическая регрессия (Binary Classification)

Дано: (X, y), где y ∈ {0, 1}

Модель:

p(y=1|x) = σ(w^T x) = 1 / (1 + exp(-w^T x))

Log-Likelihood (Binary Cross-Entropy):

ℓ(w) = Σ [y_i * log(σ(w^T x_i)) + (1-y_i) * log(1-σ(w^T x_i))]

Это то же самое, что минимизация Binary Cross-Entropy Loss!

from sklearn.linear_model import LogisticRegression

# Логистическая регрессия решает MLE
clf = LogisticRegression()
clf.fit(X, y)

Практический пример

import numpy as np
from scipy.stats import norm

np.random.seed(42)
true_mu, true_sigma = 5, 2
X = np.random.normal(true_mu, true_sigma, 1000)

# MLE
mu_hat = np.mean(X)
sigma_hat = np.std(X)

print(f"True μ = {true_mu}, MLE μ = {mu_hat:.4f}")
print(f"True σ = {true_sigma}, MLE σ = {sigma_hat:.4f}")

Связь с машинным обучением

MLE = Loss functions:

  • Linear regression → Gaussian MLE (MSE loss)
  • Logistic regression → Bernoulli MLE (Binary Cross-Entropy)
  • Neural networks → Softmax + Cross-Entropy (Categorical MLE)
# Все эти модели решают MLE под капотом!
# MSE loss — MLE для нормального распределения
# BCELoss — MLE для бернуллиева распределения
# CrossEntropyLoss — MLE для категориального распределения

Оптимизация MLE

Аналитическое решение:

mu_mle = np.mean(X)
sigma2_mle = np.mean((X - mu_mle)**2)

Численная оптимизация для сложных моделей:

from scipy.optimize import minimize

def neg_log_likelihood(theta, X):
    mu, sigma = theta
    return -np.sum(norm.logpdf(X, mu, sigma))

result = minimize(neg_log_likelihood, x0=[0, 1], args=(X,))
mu_opt, sigma_opt = result.x

Ключевые формулы

Likelihood:        L(θ|X) = ∏ p(xᵢ|θ)
Log-Likelihood:    ℓ(θ|X) = Σ log p(xᵢ|θ)
MLE задача:        θ* = argmax_θ ℓ(θ|X)
Negative LL loss:  Loss(θ) = -ℓ(θ|X)

Преимущества

  1. Теоретически обоснованный метод
  2. Асимптотически несмещённый и эффективный
  3. Работает для любого распределения
  4. Интерпретируемый смысл (максимизируем вероятность данных)

Недостатки

  1. Требует знания истинного распределения
  2. Вычислительно сложен для больших датасетов
  3. Может быть чувствителен к выбросам

Maximum Likelihood Estimation — это мост между теоретической статистикой и практическим машинным обучением. Практически каждая loss function в ML имеет статистическую интерпретацию через MLE!

Сформулируйте задачу Maximum Likelihood Estimation. Запишите формулу | PrepBro