Мощный блог

Статистика и оптимизация: MLE, гипотезы и A/B-тесты

28 августа 2026 · Собесы

Темы 6–10: оценивание параметров через MLE и MAP, проверка гипотез и доверительные интервалы, A/B-тесты на практике, градиентные методы оптимизации и теория информации.

6. Оценивание параметров: MLE и MAP

Важность на собеседовании: 6/10 ██████░░░░

🔥🔥 Часто. Ключевая связка «регуляризация = априорное распределение» — любимый вопрос на ML-базе, и он объясняет L1/L2 глубже, чем «штраф за большие веса». Копают средне: попросят объяснить логику, вывод редко.

Суть. Есть данные, есть модель с параметрами. Как выбрать параметры?

MLE (максимум правдоподобия). θ̂ = argmax P(D|θ). Обычно максимизируют логарифм (сумма вместо произведения, численно устойчивее). Свойства: состоятельность, асимптотическая нормальность и эффективность. Проблема — переобучение при малых выборках.

MAP (максимум апостериорной вероятности). θ̂ = argmax P(θ|D) = argmax P(D|θ)P(θ). Добавляем априор на параметры.

Главная связка (её и спрашивают):

  • Гауссов априор на веса w ~ N(0, τ²) → −log P(w) ∝ ‖w‖² → L2-регуляризация (Ridge).
  • Лапласов априор w ~ Laplace(0,b) → −log P(w) ∝ ‖w‖₁ → L1-регуляризация (Lasso).
  • Равномерный (неинформативный) априор → MAP вырождается в MLE.

То есть регуляризация — это не эвристика, а байесовский априор «веса скорее маленькие».

Пример. Подбросили монету 3 раза, 3 орла. MLE даёт p̂ = 1.0 — абсурд. MAP с априором Beta(2,2) (мягкая вера в честность) даёт p̂ = (3+1)/(3+2) = 0.8 — разумнее. Это ровно то же, что аддитивное сглаживание в Naive Bayes.

Вопрос: Почему кросс-энтропия — «естественная» потеря для классификации? — Она равна отрицательному лог-правдоподобию модели Бернулли/категориального распределения. Минимизируя CE, вы делаете MLE. MSE для классификации хуже: неканоническая связь, градиент затухает при уверенно неверных ответах.

7. Проверка гипотез и доверительные интервалы

Важность на собеседовании: 6/10 ██████░░░░

🔥🔥 Часто. В продуктовых компаниях (Авито, Ozon, Т-Банк, VK) спрашивают почти всегда; в чисто исследовательских NLP-командах — реже. Копают на уровне «объясни, что такое p-value, и не облажайся в формулировке» — тут проваливается очень много кандидатов.

Конструкция. H₀ — нулевая гипотеза (эффекта нет), H₁ — альтернатива. Считаем статистику, получаем p-value.

Что такое p-value (формулировка, которую ждут): вероятность получить наблюдаемое или более экстремальное значение статистики при условии, что H₀ верна. Это НЕ вероятность того, что H₀ верна, и НЕ вероятность ошибки.

Ошибки:

  • I рода (α) — отвергли верную H₀ (ложная тревога). Обычно α=0.05.
  • II рода (β) — не отвергли ложную H₀ (пропустили эффект). Мощность = 1−β, целятся в 0.8.

Размер выборки растёт как n ∝ σ²/MDE²: чтобы найти эффект вдвое меньше, нужно вчетверо больше данных.

Доверительный интервал 95% — интервал, построенный процедурой, которая накрывает истинный параметр в 95% повторов эксперимента. Не «параметр лежит там с вероятностью 95%» (параметр — не случайная величина в частотном подходе).

Какие критерии знать:

Ситуация Критерий
Сравнить средние двух групп t-тест Уэлча (не требует равных дисперсий)
Сравнить конверсии z-тест пропорций, хи-квадрат
Ненормальные данные, малая выборка Манна–Уитни, бутстрэп, перестановочный тест
Много групп сразу ANOVA, затем поправки на множественность
Метрика-отношение (CTR = клики/показы) Дельта-метод или бутстрэп по пользователям

Множественная проверка. Проверяя 20 метрик при α=0.05, вы почти гарантированно получите одно «значимое» случайно (1−0.95²⁰ ≈ 64%). Лечится Бонферрони (α/m, консервативно) или Бенджамини–Хохберга (контроль FDR, мягче и практичнее).

Вопрос: p=0.049 и p=0.051 — принципиально разные результаты? — Нет, порог 0.05 условен. Правильный ответ: смотреть на размер эффекта и доверительный интервал, а не на бинарное «значимо/незначимо». Это ответ уровня senior.

8. A/B-тесты на практике

Важность на собеседовании: 8/10 ████████░░

🔥🔥🔥 Критично для продуктовых компаний (Авито, Ozon, Т-Банк, VK, Яндекс.Поиск), 🔥 для чисто ML-платформенных ролей. Копают глубоко: подглядывание, множественность, ratio-метрики, CUPED, сетевые эффекты. Даже LLM-фичу вас спросят «как раскатывал и как мерил» — это тот же A/B.

Разбивка по подтемам:

Подтема Балл
Подглядывание (peeking) и почему это ломает тест 9/10
Выбор метрики и guardrail-метрик 9/10
Расчёт мощности и длительности 8/10
SRM и A/A-тест 8/10
Ratio-метрики и дельта-метод 7/10
CUPED 6/10
Сетевые эффекты 6/10

Пайплайн эксперимента:

  1. Гипотеза и одна основная метрика (OEC) + guardrail-метрики (не должны просесть: латентность, отписки, жалобы).
  2. Расчёт мощности → MDE и длительность (обычно ≥ 1–2 недели, чтобы покрыть недельную сезонность).
  3. Рандомизация — по пользователю, а не по сессии/запросу, иначе один человек попадёт в обе ветки.
  4. A/A-тест для проверки корректности сплитования.
  5. Анализ; при множестве метрик — поправка.
  6. Решение с учётом размера эффекта и стоимости раскатки.

Главные ловушки (их и спрашивают):

  • Подглядывание (peeking). Смотреть p-value каждый день и остановиться на «значимом» → фактический α намного выше 5%. Лечение: фиксированная длительность или последовательные тесты (always-valid p-values, mSPRT), которые корректны при непрерывном мониторинге.
  • SRM (Sample Ratio Mismatch). Ожидали 50/50, получили 52/48 — это баг сплитования, результат невалиден. Проверяется хи-квадратом. Первое, что смотрят на ревью эксперимента.
  • Ratio-метрики. CTR = сумма кликов / сумма показов. Наблюдения внутри пользователя зависимы → обычная формула дисперсии занижает её. Нужен дельта-метод или бутстрэп по пользователям.
  • Сетевые эффекты. В маркетплейсах и соцсетях группы влияют друг на друга (продавец в тесте забирает покупателей у контроля). Лечение: кластерная рандомизация (по городу, по категории), switchback-тесты.
  • Новизна и «эффект новинки». Первую неделю метрика растёт просто потому, что интерфейс новый.

CUPED — снижение дисперсии через предэкспериментальные данные: Y_adj = Y − θ(X_pre − E[X_pre]), где θ = Cov(Y,X_pre)/Var(X_pre). Даёт снижение дисперсии на 20–50% при хорошей корреляции → тот же MDE за меньшее время. Знать концепцию обязательно, реализовывать с нуля не попросят.

Вопрос: Тест идёт 3 дня, p=0.04, менеджер требует раскатывать. Что скажете? — Что это подглядывание: при заранее рассчитанной длительности 14 дней остановка на 3-й день ломает контроль ошибки I рода. Варианты: досидеть до конца, либо изначально проектировать эксперимент как последовательный. Плюс 3 дня не покрывают недельную сезонность.

9. Оптимизация

Важность на собеседовании: 9/10 █████████░

🔥🔥🔥 Критично. Градиентный спуск, learning rate, разница GD/SGD/Adam — на ML-базе спрашивают почти всегда. Копают средне-глубоко: объяснить механику, что будет при большом/малом LR, зачем momentum. Выпуклость спрашивают реже, но знать определение надо.

Разбивка по подтемам:

Подтема Балл
GD / SGD / mini-batch — разница 9/10
Learning rate: что при большом и малом 9/10
Adam и AdamW, зачем momentum 8/10
Warmup и клиппинг градиента 7/10
Выпуклость и локальные минимумы 6/10
Память под состояния оптимизатора 6/10

Выпуклость. Функция выпукла, если отрезок между любыми двумя точками графика лежит не ниже графика (f''≥0 в 1D, H ⪰ 0 в общем случае). У выпуклой функции любой локальный минимум глобален. Выпуклы: линрег с MSE, логрег с CE, SVM, Ridge/Lasso. Не выпуклы: нейросети, k-means, деревья.

Градиентный спуск: w ← w − η∇L(w).

  • Batch GD: градиент по всем данным. Точно, но O(n) на шаг.
  • SGD: по одному объекту. Шумно, но шум помогает выбираться из плохих областей.
  • Mini-batch SGD (стандарт): батч 32–512. Компромисс + эффективность на GPU.

Learning rate — самый важный гиперпараметр. Слишком большой → расходимость или осцилляции; слишком маленький → медленно и застревание. Практика: warmup (линейный рост первые ~5% шагов) + cosine decay. Для трансформеров warmup критичен — без него ранние шаги ломают LayerNorm-статистику и обучение расходится.

Оптимизаторы:

  • Momentum: v ← βv + ∇L; w ← w − ηv. Накапливает направление, гасит осцилляции в узких оврагах.
  • RMSProp: делит шаг на скользящее среднее квадратов градиента → адаптивный шаг на признак.
  • Adam = momentum + RMSProp + коррекция смещения. Дефолт для NLP. β₁=0.9, β₂=0.999, ε=1e-8.
  • AdamW — Adam с развязанным weight decay: L2 применяется прямо к весам, а не подмешивается в градиент. Для трансформеров это правильный выбор; обычный Adam с L2 работает хуже, потому что адаптивный знаменатель искажает силу регуляризации.

Память Adam: хранит 2 состояния на параметр. Для модели 7B в fp32 это ~84 ГБ только на оптимизатор — отсюда и мотивация LoRA/QLoRA.

Вопрос: Loss перестал падать и скачет. Что проверить? — По порядку: (1) LR слишком велик — снизить в 3–10 раз; (2) нет warmup; (3) нет градиентного клиппинга (clip_grad_norm_, обычно 1.0); (4) батч слишком мал → шумный градиент; (5) численная нестабильность в fp16 → перейти на bf16; (6) баг в данных (NaN, неверные метки).

10. Теория информации

Важность на собеседовании: 7/10 ███████░░░

🔥🔥 Часто. Кросс-энтропия и перплексия — обязательный минимум для NLP-роли, спросят почти наверняка. KL-дивергенцию спрашивают на средней глубине (в контексте DPO, дистилляции, дрейфа данных). Энтропию как таковую — реже.

Энтропия H(p) = −Σ p(x) log p(x) — средняя неопределённость / минимальное среднее число бит на символ. Максимальна у равномерного распределения.

Кросс-энтропия H(p,q) = −Σ p(x) log q(x) — сколько бит нужно, если кодировать истинное p с помощью модели q. Это и есть функция потерь классификации и языкового моделирования.

KL-дивергенция KL(p‖q) = H(p,q) − H(p) = Σ p log(p/q) — «лишние» биты из-за использования q вместо p. Всегда ≥ 0, ноль только при p=q. Несимметрична — это спрашивают.

  • KL(p‖q) (forward, mode-covering): штрафует q≈0 там, где p>0 → q размазывается на все моды.
  • KL(q‖p) (reverse, mode-seeking): используется в вариационном выводе, q схлопывается в одну моду.
  • В DPO и в дистилляции KL к референсной модели — регуляризатор, не дающий уйти далеко от исходной.

Перплексия PPL = exp(CE) — «средний размер эффективного словаря на позицию». PPL=1 — идеальная модель; PPL=|V| — случайная. Ключевая оговорка: перплексия несравнима между моделями с разными токенизаторами, потому что нормирована на токены, а не на символы. Это любимый уточняющий вопрос.

Взаимная информация I(X;Y) = H(X) − H(X|Y) — сколько знание Y снижает неопределённость X. Ловит нелинейные связи (в отличие от корреляции), используется в отборе признаков (mutual_info_classif).

Вопрос: Модель A имеет PPL 12, модель B — 15. A лучше? — Только если у них одинаковый токенизатор и один и тот же тестовый корпус. Иначе сравнение бессмысленно: модель с более крупными токенами при равном качестве покажет иную перплексию. Корректно сравнивать bits-per-character или качество на прикладных бенчмарках.


Часть 3 из 17 конспекта для подготовки к собеседованиям на NLP/LLM-разработчика. Остальные части — в разделе «Собесы».

0,0
0 оценок
5★
0
4★
0
3★
0
2★
0
1★
0

Оставить отзыв

Нажмите на звезду для оценки от 1 до 5
Необязательно. Используется только для связи
0/2000

Комментарии

Все С ответами Проверенные Только 4-5★