Оценка как случайная величина: смещённость, состоятельность, эффективность
Любое число в вашем отчёте — среднее, доля, коэффициент модели — получено из одной конкретной выборки, и понимание того, как оно повело бы себя на другой выборке, отделяет вывод от совпадения.
Суть
Есть величина, которая вас интересует и которая существует независимо от вашего измерения: средняя длительность сессии по всем пользователям, доля откликов на предложение по всей клиентской базе, истинный средний срок доставки. Её называют параметром и обозначают греческой буквой — μ, p, θ. Вы её не видите. Видите вы выборку и считаете по ней число: выборочное среднее, выборочную долю, коэффициент регрессии. Это число называют оценкой и обозначают той же буквой со шляпкой.
Ключевой сдвиг мышления такой. Параметр — это фиксированное число, оно не случайно. Случайна выборка: какие именно сессии попали в выгрузку за этот час, какие клиенты попали в контрольную группу. А раз оценка вычисляется по случайной выборке, она сама является случайной величиной. У неё есть распределение, среднее и разброс — как у роста человека или у суммы чека. Это распределение называют выборочным распределением оценки, и почти вся теория оценивания состоит в том, чтобы описать его.
Отсюда следует практический вывод, который часто игнорируют в отчётах: число 8,3 минуты не означает, что средняя сессия равна 8,3 минуты. Оно означает, что одна реализация случайной величины «выборочное среднее» дала 8,3. Другая выгрузка дала бы 7,9 или 8,6, и разница между ними может не говорить ни о чём.
Стандартная ошибка: масштаб случайного дрожания
Разброс выборочного распределения измеряют его стандартным отклонением. У этой величины отдельное название — стандартная ошибка, чтобы не путать её с разбросом самих данных. Для выборочного среднего при независимых наблюдениях она равна:
Здесь σ — разброс отдельных наблюдений, n — размер выборки. Формула содержит две мысли. Первая: чем шумнее сами данные, тем шумнее оценка, линейно. Вторая: точность растёт не как n, а как √n. Чтобы уполовинить стандартную ошибку, выборку нужно увеличить вчетверо. Отсюда же понятно, почему разваливаются срезы «по регионам и по устройствам»: в каждой ячейке остаётся мало наблюдений, и ошибка внутри неё растёт быстро.
Допустим, маркетплейс масштаба крупного российского игрока измеряет среднюю длительность сессии. Пусть в нашем условном примере истинное среднее равно 8,0 минуты, разброс отдельных сессий σ = 6,0 минуты, а дневная выгрузка содержит 400 сессий. Тогда стандартная ошибка равна 6,0 / √400 = 6,0 / 20 = 0,30 минуты. Дневные значения будут гулять примерно в диапазоне 8,0 ± 0,6, то есть от 7,4 до 8,6, при полностью неизменном продукте.
Три свойства, по которым оценки сравнивают
Смещённость. Смещение — это систематическая, а не случайная ошибка: разница между средним значением оценки по всем мыслимым выборкам и истинным параметром.
Если смещение равно нулю, оценку называют несмещённой. Выборочное среднее несмещённо для μ: в среднем по всем выборкам оно попадает точно в цель. Несмещённость не означает, что конкретная оценка близка к истине; она означает лишь отсутствие постоянного перекоса в одну сторону.
Состоятельность. Оценка состоятельна, если с ростом n она сходится к параметру: разброс стягивается, смещение (если оно есть) исчезает. Это минимальное требование здравого смысла — больше данных должно давать более точный ответ. Несостоятельные оценки возникают не от математики, а от процесса сбора. Если вы считаете среднюю длительность сессии только по сессиям, завершившимся до полуночи, длинные ночные сессии систематически выпадают, и оценка занижена. Увеличение выборки в сто раз этот перекос не устранит: он не в размере выборки, а в правиле отбора.
Эффективность. Среди несмещённых оценок эффективнее та, у которой меньше разброс. Она извлекает из тех же данных больше информации. Для нормально распределённых данных выборочная медиана тоже несмещённо оценивает центр, но её стандартная ошибка примерно в 1,25 раза больше, чем у среднего. В нашем примере это 0,30 × 1,25 ≈ 0,38 минуты вместо 0,30. Чтобы медиана дала ту же точность, что и среднее на 400 сессиях, понадобилось бы около 628 сессий. Оборотная сторона: на данных с тяжёлым хвостом и выбросами медиана устойчивее, и выигрыш среднего исчезает.
Продуктовая команда маркетплейса (числа условные) смотрит на дневную среднюю длительность сессии: понедельник 8,4 минуты, вторник 7,9. Падение на 0,5 минуты выглядит как сигнал. Проверим масштаб случайного дрожания. При σ = 6,0 и n = 400 стандартная ошибка каждого дня равна 0,30. Стандартная ошибка их разности равна 0,30 × √2 ≈ 0,42. Наблюдённая разность в единицах этой ошибки: 0,5 / 0,42 ≈ 1,2. Значения, отстоящие от нуля меньше чем на две стандартные ошибки, регулярно возникают без всякой причины. Вывод: разность неотличима от шума. Если бы выгрузка содержала 10 000 сессий, стандартная ошибка дня упала бы до 6,0 / 100 = 0,06, ошибка разности до 0,085, и та же разность в 0,5 минуты дала бы уже около 5,9 стандартных ошибок — совсем другой разговор.
В отчёт выносят метрику с четырьмя знаками после запятой и сравнивают её с прошлым периодом без указания стандартной ошибки: «конверсия выросла с 3,17% до 3,24%». Числа выглядят точными, потому что их напечатали точно, а не потому, что они точны. Заметить проблему помогает обратный расчёт: возьмите размер выборки и посчитайте стандартную ошибку. Для доли она равна √(p × (1 − p) / n); при p ≈ 0,032 и n = 20 000 это √(0,032 × 0,968 / 20000) ≈ 0,00124, то есть около 0,12 процентного пункта. Разница в 0,07 пункта меньше одной стандартной ошибки. Правило для отчётов: количество разрядов в метрике не должно превышать разрешающую способность, которую даёт стандартная ошибка.
- Параметр фиксирован, случайна выборка, поэтому оценка — случайная величина со своим распределением, средним и разбросом.
- Стандартная ошибка среднего равна σ/√n: точность растёт как корень, вчетверо больше данных дают вдвое меньшую ошибку.
- Несмещённость — отсутствие систематического перекоса, состоятельность — сходимость к истине с ростом n, эффективность — минимальный разброс среди несмещённых.
- Смещение из-за правила отбора данных не лечится увеличением выборки; это ошибка процесса, а не объёма.
Почему в выборочной дисперсии делят на n − 1
Деление на n − 1 — не условность и не поправка «на всякий случай»: без неё разброс данных систематически занижается, а вслед за ним занижаются доверительные интервалы и завышается значимость в А/Б-тестах.
Суть
Дисперсия по определению — это средний квадрат отклонения от истинного центра μ. Если бы μ был известен, естественная оценка выглядела бы так: сложить квадраты отклонений от μ и разделить на n. Эта оценка была бы несмещённой, и никакого n − 1 не понадобилось бы.
Проблема в том, что μ неизвестен, и вместо него подставляют выборочное среднее x̄. А выборочное среднее посчитано по тем же самым данным и потому «притянуто» к ним. Оно всегда сидит внутри облака наблюдений, тогда как μ может оказаться сбоку. Из-за этого отклонения от x̄ в среднем меньше отклонений от μ, и сумма квадратов выходит систематически заниженной.
Утверждение можно сделать точным. Сумма квадратов отклонений от произвольной точки c минимальна ровно при c = x̄. То есть выборочное среднее — это та точка, относительно которой разброс выглядит наименьшим из возможных. Подставляя её вместо истинного центра, вы гарантированно смотрите на данные под самым выгодным углом и получаете заниженный разброс. Деление на n − 1 вместо n компенсирует ровно эту занижённость.
Откуда берётся именно единица
Есть тождество, связывающее два способа считать сумму квадратов:
Смысл: отклонения от истинного центра раскладываются на отклонения от выборочного центра плюс вклад того, насколько сам выборочный центр промахнулся мимо истинного. Возьмём средние по всем возможным выборкам. Слева ожидаемая величина равна n × σ², потому что каждое из n слагаемых в среднем даёт σ². Последнее слагаемое справа — это n, умноженное на ожидаемый квадрат ошибки среднего, а он равен σ² / n (это квадрат стандартной ошибки из темы 7.1), то есть в сумме ровно σ². Остаётся:
Сумма квадратов отклонений от выборочного среднего в среднем равна не n σ², а (n − 1) σ². Чтобы получить несмещённую оценку, её нужно делить на n − 1. Единица — это цена, которую вы платите за то, что один параметр (центр) оценили по этим же данным.
Тот же результат читается через степени свободы. Отклонения от выборочного среднего связаны одним жёстким соотношением: их сумма всегда равна нулю. Зная n − 1 отклонений, последнее вы восстановите однозначно. Значит независимой информации о разбросе в них не n единиц, а n − 1. Это правило обобщается: в регрессии с k оценёнными коэффициентами дисперсию остатков делят на n − k.
Проверка на маленькой модели
Возьмём условную ситуацию: в системе доставки возможны ровно три срока — 2, 4 и 6 дней, все равновероятны. Тогда μ = 4, а истинная дисперсия равна ((−2)² + 0² + 2²) / 3 = 8/3 ≈ 2,667. Будем брать выборки размера 2 (с возвратом) — всего 9 равновероятных пар. Для пары (a, b) сумма квадратов отклонений от их среднего равна (a − b)² / 2. Перечислим: (2,2) → 0; (2,4) → 2; (2,6) → 8; (4,2) → 2; (4,4) → 0; (4,6) → 2; (6,2) → 8; (6,4) → 2; (6,6) → 0. Сумма по всем девяти парам равна 24, среднее значение суммы квадратов равно 24/9 ≈ 2,667.
Теперь сравним два делителя. Деление на n = 2 даёт в среднем 2,667 / 2 ≈ 1,333 — ровно половину истинной дисперсии 2,667. Деление на n − 1 = 1 даёт 2,667 — точное попадание. Коэффициент занижения при делении на n равен (n − 1) / n, здесь это 1/2, что совпадает с расчётом.
Когда разница существенна
Множитель (n − 1) / n при n = 4 равен 0,75 — дисперсия занижена на 25%. При n = 10 это 0,9, при n = 100 — 0,99, при n = 1000 — 0,999. На больших выгрузках выбор делителя не влияет ни на что. Он критичен там, где наблюдений мало: сравнение нескольких складов, пилот на десятке отделений, недельные агрегаты за квартал.
Отдельная тонкость: деление на n − 1 делает несмещённой дисперсию, но не стандартное отклонение. Корень — нелинейное преобразование, и корень из несмещённой дисперсии в среднем немного занижает σ. На практике этим пренебрегают, но заявление «выборочное стандартное отклонение несмещённо» неверно.
Аналитик банка (данные условные) сравнивает средний чек по 5 пилотным отделениям: 2, 4, 4, 6 и 9 тысяч рублей. Среднее равно 25/5 = 5. Отклонения: −3, −1, −1, 1, 4; квадраты: 9, 1, 1, 1, 16; сумма 28. Делитель n = 5 даёт дисперсию 5,6 и стандартное отклонение √5,6 ≈ 2,37. Делитель n − 1 = 4 даёт 7,0 и √7,0 ≈ 2,65. Разница в стандартном отклонении около 12%, и на столько же разъедется ширина доверительного интервала. При n = 5 это уже не косметика.
Одни и те же данные считают разными инструментами, и в отчёте появляются два разных разброса. В Python numpy.var и numpy.std по умолчанию делят на n (параметр ddof=0), а pandas.Series.var и .std — на n − 1 (ddof=1). Если предварительный расчёт сделан в numpy, а финальный в pandas, доверительные интервалы в двух версиях одного отчёта не совпадут, и на малых выборках расхождение будет заметным. Заметить это можно проверкой: посчитайте разброс по одному и тому же столбцу обоими способами и убедитесь, что отношение квадратов равно (n − 1) / n. И более важное: поправка на единицу лечит только эффект оценивания центра. Она не исправляет занижение разброса из-за зависимых наблюдений — например, когда в выборку попали десятки сессий одного пользователя. Там ошибка на порядок больше разницы между n и n − 1.
- Отклонения считают от выборочного среднего, а оно минимизирует сумму квадратов, поэтому разброс выходит систематически заниженным.
- В среднем Σ(xᵢ − x̄)² равна (n − 1) × σ², отсюда делитель n − 1; в регрессии с k параметрами делитель равен n − k.
- Занижение при делении на n составляет множитель (n − 1)/n: 25% при n = 4 и 0,1% при n = 1000.
- Разные библиотеки используют разный делитель по умолчанию — фиксируйте
ddofявно, иначе один отчёт даст два разных интервала.
Метод максимального правдоподобия
Максимальное правдоподобие — общий рецепт, из которого выводятся привычные формулы вроде «доля = число успехов делить на число попыток» и на котором построено обучение логистической регрессии и большинства статистических моделей.
Суть
В теории вероятностей вы задаёте параметр и спрашиваете, насколько вероятны те или иные данные. Метод максимального правдоподобия разворачивает вопрос: данные уже наблюдены и зафиксированы, а неизвестен параметр. Вы берёте формулу вероятности данных и смотрите на неё как на функцию параметра. Эта функция называется функцией правдоподобия L(θ). Оценка максимального правдоподобия — то значение θ, при котором наблюдённые данные наиболее вероятны.
Логика такая: из всех объяснений мира выбираем то, при котором увиденное выглядит наименее удивительным. Это не утверждение о том, что θ с наибольшим правдоподобием и есть истина; это правило выбора, у которого есть хорошие свойства.
При независимых наблюдениях вероятность всей выборки — произведение вероятностей отдельных наблюдений. Произведение сотен тысяч чисел меньше единицы уходит в машинный ноль и неудобно для дифференцирования, поэтому работают с логарифмом:
Логарифм монотонно возрастает, поэтому максимум ℓ достигается там же, где максимум L, а произведение превращается в сумму. Дальше работает стандартный приём поиска максимума: производная ∂ℓ/∂θ приравнивается к нулю. Словами производная означает «на сколько меняется логарифм правдоподобия при малом сдвиге параметра»; в точке максимума этот отклик нулевой — сдвиг в любую сторону данные не объясняет лучше.
Как из этого получается знакомая формула
Допустим, банк уровня крупного российского розничного игрока рассылает предложение и хочет оценить вероятность отклика p. В нашем условном примере предложение получили 500 клиентов, откликнулись 40. Вероятность увидеть ровно такую картину пропорциональна p⁴⁰ × (1 − p)⁴⁶⁰. Логарифм даёт:
Производная по p равна 40/p − 460/(1 − p). Приравняв её к нулю, получаем 40 × (1 − p) = 460 × p, то есть 40 = 500 × p и p = 0,08. Оценка максимального правдоподобия совпала с долей 40/500 — той формулой, которой все пользуются не задумываясь. Проверим числом. При p = 0,05 логправдоподобие равно 40 × (−2,996) + 460 × (−0,0513) ≈ −119,83 − 23,59 = −143,42. При p = 0,08: 40 × (−2,526) + 460 × (−0,0834) ≈ −101,03 − 38,36 = −139,38. При p = 0,12: 40 × (−2,120) + 460 × (−0,1278) ≈ −84,81 − 58,80 = −143,61. Наибольшее значение действительно в точке 0,08.
Тот же механизм на нормальной модели даёт оценку среднего, равную x̄, а оценку дисперсии — сумму квадратов отклонений, делённую на n. Обратите внимание: это ровно смещённая версия из темы 7.2. Максимальное правдоподобие не гарантирует несмещённости — оно оптимизирует другое свойство.
Что метод обещает и чего не обещает
При растущей выборке оценка максимального правдоподобия состоятельна, её распределение приближается к нормальному, и она асимптотически эффективна — то есть при больших n ни одна другая разумная оценка не даёт систематически меньшего разброса. Отсюда же берутся стандартные ошибки коэффициентов, которые печатает любой пакет: они выводятся из кривизны логправдоподобия в точке максимума. Чем острее пик, тем сильнее данные наказывают отклонение от оптимума и тем меньше стандартная ошибка; пологий пик означает, что широкий диапазон значений параметра объясняет данные почти одинаково.
Ещё одно удобное свойство — инвариантность. Если вы нашли оценку для p, то оценка для любой функции от p получается подстановкой: оценка для отношения шансов p/(1 − p) равна 0,08/0,92 ≈ 0,087.
Ограничения. Все гарантии асимптотические: на 30 наблюдениях они не работают. Метод целиком зависит от того, какую вероятностную модель вы записали. Если вы описали сроки доставки нормальным распределением, а на деле распределение скошено вправо и ограничено снизу, максимум правдоподобия честно найдёт лучшие параметры неверной модели. И наконец, у логистической регрессии, гамма-моделей и почти всего остального аналитического решения нет — уравнение ∂ℓ/∂θ = 0 не разрешается в формулах, и максимум ищут численно. Этим занимается тема 7.5.
Классифайд уровня крупной российской площадки оценивает, как быстро закрывается объявление, и берёт экспоненциальную модель времени жизни с параметром интенсивности λ. Логправдоподобие для n наблюдений равно n × ln λ − λ × Σtᵢ. Производная n/λ − Σtᵢ обращается в ноль при λ = n / Σtᵢ, то есть при единице, делённой на среднее время. Допустим, по 200 объявлениям суммарное время составило 1600 дней. Тогда среднее равно 8 дней, а оценка λ = 200/1600 = 0,125 в день. Благодаря инвариантности оценка медианного времени жизни получается подстановкой: ln 2 / λ = 0,693 / 0,125 ≈ 5,5 дня. Заметьте, что медиана заметно меньше среднего — это свойство модели, а не ошибка расчёта.
В скоринговую модель попадает признак, который почти идеально разделяет классы, — например, флаг, проставляемый в CRM уже после факта отклика. Правдоподобие в таком случае можно наращивать бесконечно, увеличивая коэффициент при этом признаке: максимума не существует, оптимизатор упирается в предел числа итераций. Внешние признаки: коэффициент величиной в десятки при том, что остальные порядка единицы; стандартная ошибка этого коэффициента в сотни раз больше самого коэффициента; предупреждение о недостигнутой сходимости; идеальные метрики на обучении. Проверка простая по смыслу: постройте таблицу «значение признака × целевая переменная» и посмотрите, нет ли ячейки с нулём, а затем выясните, был ли этот признак известен в момент, для которого делается прогноз.
- Правдоподобие — это вероятность наблюдённых данных, прочитанная как функция параметра; максимизируют её логарифм, чтобы произведение стало суммой.
- Условие максимума ∂ℓ/∂θ = 0 порождает знакомые формулы: доля успехов для вероятности, выборочное среднее для μ.
- Оценка максимального правдоподобия состоятельна и асимптотически эффективна, но не обязана быть несмещённой и опирается на корректность выбранной модели.
- Кривизна логправдоподобия в точке максимума даёт стандартные ошибки коэффициентов: острый пик — узкий интервал, пологий — широкий.
Функции потерь: MSE, MAE, логлосс и что каждая оптимизирует
Функция потерь — это определение слова «хорошо» для вашей модели, и разные определения приводят к систематически разным прогнозам на одних и тех же данных.
Суть
Модель не знает, что такое хороший прогноз, пока вы этого не задали. Вы задаёте это функцией потерь: правилом, которое по паре «факт, прогноз» выдаёт число — величину штрафа. Обучение состоит в подборе параметров, минимизирующих средний штраф по обучающим данным. Всё остальное — техника поиска минимума.
Отсюда следует, что выбор функции потерь — это не техническая настройка, а формулировка задачи. Вопрос «что для бизнеса стоит дороже: недооценка срока доставки на день или переоценка на день» напрямую переводится в выбор функции потерь, а функция потерь напрямую определяет, какую характеристику распределения будет предсказывать модель.
MSE и MAE предсказывают разные вещи
Средняя квадратичная ошибка штрафует квадрат промаха, средняя абсолютная — его модуль.
Различие принципиальное. Минимум MSE достигается на условном среднем целевой переменной, минимум MAE — на условной медиане. Модель, обученная на MSE, отвечает на вопрос «каков средний срок доставки для таких заказов»; модель на MAE — «каков типичный срок, который перебивается в половине случаев». Для скошенных распределений это разные числа.
Проверим на пяти условных заказах со сроками 2, 3, 3, 4 и 18 дней (последний застрял на таможне). Среднее равно 30/5 = 6, медиана равна 3. Считаем MSE прогноза 6: (16 + 9 + 9 + 4 + 144)/5 = 182/5 = 36,4. MSE прогноза 3: (1 + 0 + 0 + 1 + 225)/5 = 227/5 = 45,4. Среднее выигрывает. Теперь MAE прогноза 6: (4 + 3 + 3 + 2 + 12)/5 = 24/5 = 4,8. MAE прогноза 3: (1 + 0 + 0 + 1 + 15)/5 = 17/5 = 3,4. Медиана выигрывает. Одни и те же данные, два разных ответа, и ни один из них не ошибочен — они отвечают на разные вопросы.
Квадрат растёт быстрее модуля, поэтому одно наблюдение с промахом в 12 дней даёт в MSE вклад 144 — больше, чем все остальные вместе. Модель на MSE будет сдвигать все прогнозы вверх, чтобы уменьшить редкие большие промахи, и в результате систематически завышать срок для обычных заказов. Промежуточный вариант — функция Хубера: квадратичная при малых ошибках и линейная при больших.
Логлосс: потеря для вероятностей
Когда модель выдаёт не число, а вероятность, штраф строится из логарифма правдоподобия из темы 7.3, взятого со знаком минус:
Для наблюдения с y = 1 штраф равен −ln p, для y = 0 равен −ln(1 − p). Логарифм уходит в бесконечность у нуля, поэтому уверенная и неверная вероятность стоит очень дорого: прогноз 0,001 при фактическом событии даёт штраф −ln 0,001 ≈ 6,91, тогда как честное 0,5 стоило бы 0,69.
Главное свойство логлосса — он минимизируется, когда модель выдаёт истинную вероятность, а не когда она «уверенно угадывает». Допустим, истинная вероятность отклика для сегмента равна 0,08. Ожидаемый штраф при прогнозе 0,08 равен 0,08 × 2,526 + 0,92 × 0,0834 ≈ 0,202 + 0,077 = 0,279. При завышенном прогнозе 0,20: 0,08 × 1,609 + 0,92 × 0,223 ≈ 0,129 + 0,205 = 0,334. При заниженном 0,02: 0,08 × 3,912 + 0,92 × 0,0202 ≈ 0,313 + 0,019 = 0,332. Оба отклонения хуже. Функции с таким свойством называют корректными, и именно поэтому логлосс — правильная метрика, когда вероятность идёт в расчёт (ожидаемая выручка кампании, лимит по риску), а не только в сортировку.
| Функция потерь | Оптимальный прогноз | Реакция на выбросы | Когда уместна |
|---|---|---|---|
| MSE | условное среднее | очень сильная | нужен именно средний уровень, суммируемые величины |
| MAE | условная медиана | слабая | скошенная цель, важен типичный случай |
| Хубер | между средним и медианой | умеренная | есть выбросы, но нужен уровень, близкий к среднему |
| Логлосс | истинная вероятность | очень сильная к уверенным ошибкам | нужны калиброванные вероятности, а не только ранжирование |
Маркетплейс показывает покупателю обещанный срок доставки (пример условный). Модель обучена на MSE и для типичного московского заказа выдаёт 3,4 дня, тогда как медиана таких заказов равна 2 дня: редкие заказы с задержкой в две недели тянут условное среднее вверх. Покупатель видит завышенный срок, конверсия падает. Переобучение той же модели на MAE даёт 2,1 дня. Здесь важно, что бизнес-цена ошибок несимметрична: обещать раньше и опоздать дороже, чем обещать позже и приехать раньше. Такую асимметрию задают квантильной потерей — обобщением MAE, где недооценка и переоценка штрафуются с разными весами; при весе 0,8 на недооценку модель начинает предсказывать 80-й процентиль срока, а не медиану.
Модель оттока обучают на логлоссе, а качество оценивают долей верных ответов при пороге 0,5. При базовой доле оттока 4% модель, всегда отвечающая «не уйдёт», даёт 96% верных ответов и при этом бесполезна. Наоборот, хорошо откалиброванная модель может показать долю верных ответов ниже 96% и быть при этом точнее по существу. Признак проблемы: доля верных ответов подозрительно близка к доле большего класса, а число предсказанных положительных близко к нулю. Проверка: посмотрите распределение предсказанных вероятностей и матрицу ошибок, а не одно число; отдельно сравните среднюю предсказанную вероятность с фактической долей события — при хорошей калибровке они близки. Симметричная ошибка — отчитываться по MAPE на данных, где факт бывает около нуля: одно наблюдение с фактом 0,2 и прогнозом 2 даёт вклад 900%, и метрика перестаёт что-либо значить.
- Функция потерь определяет, какую характеристику распределения предсказывает модель: MSE — условное среднее, MAE — условную медиану, квантильная потеря — заданный процентиль.
- Квадрат промаха делает MSE чувствительной к выбросам: редкие большие ошибки сдвигают все прогнозы.
- Логлосс минимален при истинной вероятности и жёстко штрафует уверенные ошибки, поэтому подходит там, где вероятность используется в расчётах.
- Метрика обучения и метрика отчёта должны отвечать на один и тот же вопрос; доля верных ответов на несбалансированных данных не отвечает почти ни на какой.
Градиентный спуск и скорость обучения
Почти все модели, кроме линейной регрессии, не имеют формулы для оптимума, и коэффициенты в них находят пошаговым спуском по функции потерь — знание его механики объясняет и расходящееся обучение, и требование масштабировать признаки.
Суть
Функция потерь из темы 7.4 зависит от параметров модели. Представьте её как рельеф: по горизонтали значения параметров, по вертикали величина потерь. Задача — спуститься в низину. Аналитического решения обычно нет, поэтому спускаются шагами.
На каждом шаге вычисляется градиент — набор частных производных функции потерь по каждому параметру. Частная производная ∂L/∂w словами означает: если увеличить w на очень малую величину, оставив остальные параметры неизменными, на сколько изменятся потери. Знак говорит направление, величина — крутизну. Градиент указывает в сторону наибольшего роста потерь, поэтому шаг делается в противоположную сторону:
Здесь α — скорость обучения (learning rate): множитель, задающий длину шага. Он не вычисляется из данных, его задаёт человек, и он определяет, сойдётся обучение или развалится.
Четыре шага на числах
Возьмём одномерную функцию потерь L(w) = (w − 4)²: минимум в точке 4, значение минимума 0. Производная равна 2 × (w − 4). Стартуем из w = 0 со скоростью обучения α = 0,1. Правило шага: w ← w − 0,1 × 2 × (w − 4).
| Шаг | w | L(w) | Градиент 2(w − 4) | Новое w |
|---|---|---|---|---|
| 0 | 0,0000 | 16,000 | −8,00 | 0,8000 |
| 1 | 0,8000 | 10,240 | −6,40 | 1,4400 |
| 2 | 1,4400 | 6,554 | −5,12 | 1,9520 |
| 3 | 1,9520 | 4,194 | −4,10 | 2,3616 |
Проверьте первый шаг вручную: 0 − 0,1 × (−8) = 0,8. Расстояние до оптимума было 4, стало 3,2, затем 2,56, затем 2,048, затем 1,6384 — каждый раз умножается на 0,8. Спуск сходится, но геометрически: приближение бесконечное, хотя быстрое. Обратите внимание, что градиент по модулю уменьшается по мере приближения к минимуму, поэтому шаги сами собой укорачиваются — отдельно замедлять их не требуется.
Что происходит при слишком большом шаге
Возьмём ту же функцию и ту же стартовую точку, но α = 1,1. Правило шага: w ← w − 1,1 × 2 × (w − 4).
| Шаг | w | L(w) | Градиент 2(w − 4) | Новое w |
|---|---|---|---|---|
| 0 | 0,000 | 16,00 | −8,00 | 8,800 |
| 1 | 8,800 | 23,04 | 9,60 | −1,760 |
| 2 | −1,760 | 33,18 | −11,52 | 10,912 |
| 3 | 10,912 | 47,78 | 13,82 | −4,294 |
Направление каждого шага верное — алгоритм всегда идёт в сторону минимума. Ошибка в длине: он перепрыгивает низину и оказывается дальше, чем был. Расстояние до оптимума растёт как 4, 4,8, 5,76, 6,912, 8,29 — множитель 1,2 на каждом шаге. Потери растут, и через несколько десятков итераций числа переполняют разрядную сетку, а в логе появляется NaN.
Для этой функции условие устойчивости выводится точно: расстояние до оптимума умножается на |1 − 2α|, и спуск сходится при α меньше 1. При α = 0,5 множитель равен нулю — оптимум достигается за один шаг. При α = 1 множитель равен −1, и алгоритм вечно скачет между 0 и 8, не приближаясь и не удаляясь: потери не растут, но и не падают. Полезно помнить, что граница устойчивости зависит от кривизны функции, а не от вашей интуиции: удвоение крутизны вдвое сокращает допустимый α.
Что меняется на реальных данных
Реальная функция потерь зависит от сотен параметров, и рельеф в ней вытянут: по одним направлениям крутой, по другим пологий. Скорость обучения при этом одна на всех. Она подстраивается под самое крутое направление, иначе спуск разойдётся, — и по пологим направлениям движение оказывается мучительно медленным. Отсюда практическое требование масштабировать признаки. Если один признак — сумма покупок в рублях с размахом в десятки тысяч, а другой — доля возвратов от 0 до 1, кривизна по этим осям различается на четыре порядка, и единого подходящего α не существует. После приведения признаков к сопоставимому масштабу (например, вычесть среднее и разделить на стандартное отклонение) рельеф становится ближе к круглому, и обучение идёт в разы быстрее.
Второе отличие — градиент по всей выборке считать дорого. В стохастическом и мини-батчевом спуске градиент оценивается по случайной подвыборке: он становится шумной оценкой истинного градиента, зато шагов удаётся сделать на порядки больше. Шум даёт зубчатую кривую потерь и требует постепенного уменьшения α к концу обучения. Адаптивные методы вроде Adam автоматически подбирают эффективную длину шага отдельно по каждому параметру, но начальное значение α задаёте всё равно вы.
Команда банка (случай условный) обучает скоринг отклика. С α = 0,5 логлосс на обучении за первые итерации идёт 0,68 → 0,64 → 0,91 → 2,4 → NaN: классическая расходимость, шаг велик. С α = 0,0001 за 500 итераций логлосс падает 0,693 → 0,691 → 0,689 и почти не меняется, из чего делается вывод «признаки не работают». Диагноз обратный: шаг мал, спуск не дошёл. Проверка занимает минуты — постройте график потерь по итерациям и посмотрите на форму. Ровное убывание с выходом на плато означает сходимость; рост или пила с растущей амплитудой означают избыточный α; почти горизонтальная линия с самого начала означает недостаточный α или немасштабированные признаки. Разумная тактика — перебрать α по степеням десяти (0,001, 0,01, 0,1) и взять наибольшее значение, при котором кривая остаётся убывающей.
Кривую потерь строят только по обучающей выборке и по ней же принимают решение об остановке. Обучающие потери убывают почти всегда, поэтому такой график не показывает переобучения: модель может уверенно спускаться по обучению, одновременно ухудшаясь на новых данных. Заметить это можно, только рисуя вторую кривую — по отложенной выборке. Момент, когда обучающая кривая продолжает падать, а валидационная разворачивается вверх, и есть точка остановки. Смежная ошибка: масштабирование признаков вычисляют по всему датасету до разделения на обучение и контроль. Среднее и стандартное отклонение тогда содержат информацию из контрольной части, и её оценка качества становится оптимистичной. Параметры масштабирования считают по обучающей части и применяют к остальным.
- Шаг спуска — это
w ← w − α × ∂L/∂w: градиент задаёт направление, скорость обучения задаёт длину. - Слишком большой
αдаёт перелёт через минимум и рост потерь вплоть до NaN; слишком малый выглядит как «признаки не работают». - По мере приближения к минимуму градиент уменьшается, поэтому шаги укорачиваются сами; расходимость определяется кривизной, а не расстоянием до оптимума.
- Признаки в разных масштабах вытягивают рельеф потерь и делают единую скорость обучения непригодной — приводите их к сопоставимому масштабу, считая его по обучающей части.
Регуляризация и компромисс между смещением и разбросом
Модель, идеально описывающая обучающие данные, почти всегда хуже работает на новых, и регуляризация — управляемый способ ухудшить подгонку ради улучшения прогноза.
Суть
Ошибку модели на новых данных раскладывают на три части:
Смещение — систематический промах из-за того, что модель слишком груба для реальной зависимости: линейная модель не выучит изгиб, как бы много данных ей ни дали. Разброс — чувствительность модели к тому, какая именно выборка ей досталась: гибкая модель на другой выборке даст заметно другие коэффициенты и другие прогнозы. Шум — часть отклика, которую не объясняет ничто из доступного, и уменьшить её нельзя.
Эти две управляемые части тянут в разные стороны. Усложняя модель — добавляя признаки, взаимодействия, деревья большей глубины — вы снижаете смещение и повышаете разброс. Упрощая, делаете обратное. Суммарная ошибка ведёт себя как чаша: сначала падает, доходит до минимума, затем растёт. Задача не в том, чтобы обнулить одну из компонент, а в том, чтобы найти дно чаши.
Практический маркер разброса — разрыв между качеством на обучении и на отложенной выборке. Практический маркер смещения — плохое качество на обучении, которое уже не улучшается: модели не хватает выразительности.
Штраф за величину коэффициентов
Регуляризация сдвигает баланс, добавляя к функции потерь слагаемое, штрафующее большие коэффициенты:
Логика: переобученная модель обычно имеет коэффициенты большой величины и разных знаков, которые взаимно гасятся на обучающих данных и разлетаются на новых. Штраф делает такие конфигурации дорогими. Параметр α задаёт силу штрафа: при α = 0 получается обычная модель, при больших α все коэффициенты стягиваются к нулю и модель вырождается в константу. Регуляризованная модель смещена намеренно — её коэффициенты систематически занижены по модулю, — и эта плата берётся в обмен на снижение разброса.
Различие между L1 и L2 объясняется поведением производной штрафа вблизи нуля. У квадратичного штрафа производная равна 2 α b и сама обращается в ноль при b = 0, поэтому давление на коэффициент ослабевает по мере его уменьшения: L2 стягивает коэффициенты к нулю, но не доводит до него. У модульного штрафа производная равна ±α и остаётся постоянной сколь угодно близко к нулю: если вклад признака в снижение потерь меньше α, коэффициент дожимается ровно до нуля. Поэтому L1 отбирает признаки, а L2 равномерно сжимает все. На группе сильно скоррелированных признаков L1 оставит один почти произвольно выбранный, тогда как L2 распределит вес между ними — это важно, если коэффициенты потом интерпретируют.
Как подбирают силу штрафа
Ошибка на обучении монотонно растёт с ростом α, поэтому по ней α подобрать нельзя. Его подбирают по отложенной выборке или кросс-валидации. Таблица ниже — условный прогон модели оттока классифайда, логлосс:
| α | Логлосс на обучении | Логлосс на валидации | Разрыв |
|---|---|---|---|
| 0 | 0,26 | 0,51 | 0,25 |
| 0,01 | 0,29 | 0,43 | 0,14 |
| 0,1 | 0,34 | 0,39 | 0,05 |
| 1 | 0,41 | 0,42 | 0,01 |
| 10 | 0,52 | 0,53 | 0,01 |
Картина типична. Слева большой разрыв — доминирует разброс. Справа обе величины растут вместе, разрыв исчез, но модель стала слишком грубой — доминирует смещение. Минимум валидационной ошибки при α = 0,1: обучающий логлосс там хуже, чем без регуляризации (0,34 против 0,26), а прогноз на новых данных лучше (0,39 против 0,51). Это и есть смысл фразы «ухудшить подгонку ради улучшения прогноза».
Две технические детали, без которых расчёт неверен. Первая: признаки обязаны быть приведены к одному масштабу. Штраф начисляется на числовое значение коэффициента, а оно зависит от единиц измерения. При признаке «сумма покупок в рублях» коэффициент численно крошечный и штрафуется слабо, при признаке «доля возвратов» от 0 до 1 — крупный и штрафуется жёстко, хотя содержательно они могут быть равнозначны. Вторая: свободный член не штрафуют, иначе модель принудительно тянут к нулевому среднему отклику.
Регуляризация не сводится к штрафу на коэффициенты. Та же роль у ограничения глубины и минимального размера листа в деревьях, у ранней остановки градиентного спуска, у дропаута в нейросетях, у сокращения числа признаков. Все они уменьшают эффективную гибкость модели и работают на той же чаше.
Аналитик маркетплейса строит модель оттока продавцов на 4 000 наблюдений и 300 признаках, включая множество редких категорий (пример условный). Без регуляризации модель даёт на обучении почти идеальное разделение, а на отложенном месяце логлосс 0,51, при этом коэффициенты при редких категориях достигают величины 12–15 — категория встретилась 4 раза, и все 4 раза продавец ушёл. Гребневая регуляризация с α = 0,1 стягивает эти коэффициенты примерно до 0,4–0,8, ухудшает обучающий логлосс до 0,34 и улучшает валидационный до 0,39. Лассо с сопоставимой силой обнуляет около 210 признаков из 300 и даёт близкое качество при заметно более читаемой модели. Выбор между ними здесь определяется не столько метрикой, сколько тем, нужен ли команде короткий интерпретируемый список факторов.
Значение α перебирают по тестовой выборке, берут лучшее и её же качество выносят в отчёт как ожидаемое на проде. Тестовая выборка при этом перестаёт быть независимой: вы выбрали из десятка вариантов тот, который на ней случайно удачнее, и часть выигрыша — подгонка под неё. Чем больше вариантов перебрано, тем сильнее оптимизм. Признак: заявленное качество заметно выше того, что модель показывает на первом же новом периоде. Правильная схема — три части: на обучающей подбираются коэффициенты, на валидационной подбирается α, на тестовой один раз измеряется итог и больше ничего не выбирается. Смежная ошибка — интерпретация регуляризованных коэффициентов как оценок эффекта: они смещены к нулю намеренно, и фраза «признак добавляет 0,4 к логиту» после сильного штрафа некорректна, потому что то же число при другом α будет другим.
- Ошибка на новых данных складывается из смещения, разброса и неустранимого шума; усложнение модели снижает первое и повышает второе.
- Большой разрыв между обучением и валидацией указывает на разброс, одинаково плохие обе величины — на смещение.
- L2 сжимает все коэффициенты, не обнуляя их, L1 обнуляет часть и работает как отбор признаков — различие идёт от поведения производной штрафа около нуля.
- Перед регуляризацией признаки масштабируют, свободный член не штрафуют, а
αподбирают на валидации, оставляя тестовую выборку для единственного финального замера.
Теория без задач не держится
Восемь задач по этому модулю: выбор ответа и расчёт, с разбором каждого решения. Задачи, в которых вы ошиблись, вернутся в следующий заход.
Перейти к тренажёру