Когда среднее по прошлому похоже на среднее по будущему?
Истинный риск — средняя потеря на будущих объектах. Таблица даёт лишь
конечное среднее. Для заранее фиксированной модели оно честно колеблется
вокруг риска; для модели, выбранной по той же таблице, возникает систематический
оптимизм. Урок о том, чем именно отличается число в отчёте от того качества,
которое сервис покажет завтра.
Число, которое печатают в отчёте
В конце любой работы появляется строка вида «ошибка на тесте 15,4%». Она
выглядит как измерение длины стола: взяли, приложили линейку, записали. На
самом деле у неё три разных источника неопределённости, и ни один не виден в
самой цифре.
Первый: тестовая выборка конечна, и другая случайная выборка того же размера
дала бы другое число. Второй: если модель выбиралась по тем же данным, число
систематически занижено — не случайно, а всегда в одну сторону. Третий: даже
безупречно измеренный риск относится к тому распределению, из которого пришли
данные, а завтрашний мир может быть другим.
Мы разберём все три на одной реальной таблице. Это велопрокат Capital
Bikeshare: 17 379 часовых записей за 2011–2012 годы — те же данные, на
которых в уроке 49 строилась регрессия. Задачу возьмём
двухклассовую: назовём час «загруженным», если число поездок выше медианы
(142 поездки), и будем предсказывать этот признак по времени суток, погоде
и типу дня. Потеря — индикатор ошибки, значение 0 или 1; это удобно, потому
что такая потеря ограничена, и к ней применимы точные неравенства.
Риск и его выборочная тень
Зафиксируем правило f — до того, как мы посмотрели на тестовые данные, — и
потерю ℓ. Истинный риск
R(f)=E(X,Y)∼Pℓ(f(X),Y)
усредняет потерю по неизвестному распределению P будущих объектов. Это
число существует, но недоступно: оно требует знания P. Доступно другое —
эмпирический риск на независимой выборке D={(xi,yi)}i=1n:
Rn(f)=n1i=1∑nℓ(f(xi),yi).
Ключевое свойство: если строки независимы и распределены как будущее, то
каждое слагаемое имеет среднее R(f), а значит
ERn(f)=R(f).
Оценка несмещённая. Это радует ровно до тех пор, пока не вспомнишь, что мы
наблюдаем не среднее по вселенным, а одно-единственное значение.
Разброс тени считается сразу. Для потери 0/1 слагаемые — испытания
Бернулли с вероятностью успеха R(f), поэтому
VarRn(f)=nR(f)(1−R(f)),se=nR(1−R).
Стандартная ошибка убывает как 1/n: чтобы вдвое сузить облако, нужно
вчетверо больше строк. Это тот же закон, что управлял выборочным средним в
уроке 44, и та же логика, что стоит за доверительными
интервалами урока 46.
Насколько дрожит оценка
Проверим на данных. Обучим логистическую регрессию на 4000 случайных строках и
объявим её замороженной. Оставшиеся 13 379 строк будем считать «всем
будущим миром»: доля ошибок на них, R(f)=0,154, играет роль истины. Теперь
станем многократно вынимать из этого мира тестовые выборки размеров 50, 200 и
2000 и каждый раз считать долю ошибок.
Рис. 58.1. Одна и та же функция, разные тестовые выборки
Реальный велопрокат. Красная вертикаль — истинный риск R(f)=0,154
замороженной модели. Гистограммы — распределения Rn(f) по
независимым тестовым выборкам. Центр не двигается, ширина падает:
se=0,051 при n=50, 0,025 при n=200 и 0,008 при
n=2000. Наблюдаемая по 4000 повторных выборок ширина разошлась
с теоретической R(1−R)/n меньше чем на два процента при каждом из трёх
размеров.
Числа стоит прочувствовать. При n=200 типичное отклонение — два с половиной
процентных пункта, а приближённый интервал
R±1,96nR(1−R)=[0,104;0,203]
шириной в десять пунктов. Две команды, отчитавшиеся «10,5%» и «20,0%», могли
тестировать одну и ту же модель.
Гливенко: почему эмпирическому вообще можно верить
Вопрос, стоящий под всем уроком, старше машинного обучения: имеет ли право
конечная таблица говорить о бесконечной генеральной совокупности? Ответ дал
советский математик Валерий Иванович Гливенко (1897–1940). В 1933 году он
доказал, что эмпирическая функция распределения
Fn(t)=n1i=1∑n1{Xi≤t}
сходится к истинной F(t)равномерно по t с вероятностью единица:
t∈RsupFn(t)−F(t)п.н.n→∞0.
Слово «равномерно» здесь несёт весь вес. Закон больших чисел даёт сходимость
Fn(t)→F(t) для каждого отдельного, заранее выбранногоt. Гливенко
утверждает больше: одновременно для всех t — включая тот, который мы выберем
уже после того, как увидим данные. Именно поэтому теорему называют основной
теоремой статистики: она разрешает подглядывать.
Заменим индикатор 1{Xi≤t} на потерю ℓ(f(xi),yi), а
семейство порогов t — на семейство моделей f∈F, и получится
формулировка, которой машинное обучение живёт до сих пор:
f∈FsupRn(f)−R(f)→0.
Из такой равномерной сходимости следует, что минимизация эмпирического риска
осмысленна. Отсюда прямая линия к работам Вапника и Червоненкиса 1971 года, с
которыми мы встречались в уроке 32: они выяснили, для каких
классов F равномерная сходимость выполняется, и ввели меру сложности
класса. Гливенко предъявил случай, когда семейство — все пороги; дальнейшая
теория отвечает на вопрос «а если семейство богаче».
Хёффдинг: сколько строк стоит уверенность
Скорость 1/n — про типичное отклонение. Про большое отклонение говорит
неравенство Хёффдинга: для независимых потерь 0≤ℓ≤1 и фиксированной
f
P{∣Rn(f)−R(f)∣≥ε}≤2e−2nε2.
Оно не требует нормальности и работает при любом n. Приравняв правую часть к
δ, получаем требование к объёму:
n≥2ε2ln(2/δ).
Подставим δ=0,05. Для точности ε=0,02 нужно
n≥4612; для ε=0,01 — уже n≥18445. Ровно вчетверо
дороже за вдвое более острый ответ: цена точности квадратична.
Рис. 58.2. Граница честна, но щедра; точность вдвое дороже вчетверо
Слева: при n=500 и ε=0,03 Хёффдинг обещает вероятность не
больше 0,813, нормальное приближение — около шести процентов, а честный
эксперимент по 20 000 повторным выборкам дал 0,064. Граница верна, но
крайне осторожна: она ничего не знает о дисперсии. Справа: необходимый объём
теста как функция требуемой точности при δ=0,05.
Практический вывод двойной. Хёффдинг годится как гарантия, которую не стыдно
написать в договоре, и совершенно не годится как оценка нужного размера
выборки, если вы согласны на приближение. Для планирования удобнее нормальная
формула
n≈ε2z2R(1−R):
при R≈0,15, z=1,96 и ε=0,02 она даёт 1225
строк — в 3,8 раза меньше хёффдинговских 4612.
Проклятие победителя
Теперь главное. Всё сказанное относилось к функции, зафиксированной до
взгляда на данные. Реальная работа устроена иначе: мы обучаем много моделей и
берём ту, у которой оценка меньше.
Обучим 120 логистических регрессий на реальном велопрокате — разные случайные
подмножества признаков, разная сила регуляризации, разные куски обучающей
части. Их истинные риски (посчитанные на большом отложенном пуле) лежат от
0,153 до 0,356 с медианой 0,200. Дадим каждой валидационную выборку
из 200 строк и выберем минимум наблюдённой ошибки:
Рис. 58.3. Побеждает тот, кому повезло; цена перебора растёт с числом попыток
Победитель показал на валидации 0,150, а его настоящий риск —
0,179: оптимизм 0,029, больше стандартной ошибки одной оценки.
Справа — средний оптимизм как функция числа просмотренных кандидатов: при
K=1 он равен нулю (оценка несмещённая), при K=10 — уже 0,011, при
K=120 — 0,023. Заметьте: истинный риск лучшего кандидата равен
0,153, то есть перебор нашёл вовсе не его.
Механика проста. Пусть все кандидаты имеют одинаковый истинный риск R, а
оценки Rm=R+ξm с независимым центрированным шумом. Тогда
E[m≤KminRm]=R+E[m≤Kminξm]<R,
потому что минимум нескольких центрированных величин отрицателен в среднем. Для
гауссовского шума со стандартным отклонением σ приближённо
E[m≤Kminξm]≈−σ2lnK.
Смещение растёт как lnK — медленно, но неотвратимо, и падает вместе
с σ∝1/n. Отсюда два рычага: меньше кандидатов или больше
валидация.
Лаборатория: оценка как случайная величина
Истинный риск, выборочное среднее и цена перебора
График шире экрана — листайте по горизонтали →
Загружается живая иллюстрация…
Начните в режиме «одна заранее фиксированная функция»: облако оценок
симметрично окружает истинный риск, синяя и красная вертикали совпадают.
Двигайте n — облако сжимается как 1/n, но центр не сдвигается.
Переключитесь на «минимум по K кандидатам» при нулевом разбросе истинных
рисков: все кандидаты одинаково хороши, поэтому выбор не приносит пользы, зато
синяя вертикаль уползает влево — это чистая плата за перебор. Увеличьте разброс
истинных рисков: теперь выбор частично осмыслен, но оптимизм не исчезает.
Наконец, увеличьте n при большом K: смещение уменьшится, но медленнее, чем
хотелось бы, — как lnK/n.
Три роли данных: train, validation, test
Отсюда следует организационная гигиена, знакомая по уроку 32, но
теперь с точной причиной.
Train оценивает параметры. Его ошибка систематически оптимистична всегда —
именно по ней шла оптимизация.
Validation выбирает гиперпараметры, признаки, архитектуру, порог. Его ошибка
несмещённа для каждого отдельного кандидата и оптимистична для победителя.
Test оценивает замороженную процедуру ровно один раз. Он несмещён тогда и
только тогда, когда ни одно решение не принималось с оглядкой на него.
Если данных мало, валидация циклическая: перекрёстная проверка меняет фолд
местами и усредняет. Но внешний тест остаётся отдельным, и вложенная
кросс-валидация — не роскошь: внутренний цикл выбирает, внешний оценивает.
Утечка: предобработка — часть модели
Среднее и дисперсия для стандартизации, словарь категорий, список отобранных
признаков, заполнение пропусков, целевое кодирование — всё это параметры,
оцениваемые по данным. Если они посчитаны до разбиения, тест уже поучаствовал
в обучении, и оценка занижена.
Насколько занижена — вопрос не риторический. Возьмём модельный пример с
фиксированным зерном (это синтетика, а не измерение мира): 120 объектов, 4000
совершенно случайных признаков и случайные метки, между которыми нет никакой
связи. Отберём 20 признаков с наибольшей корреляцией с меткой по всей
таблице, а потом честно посчитаем пятиблочную кросс-валидацию — получится
ошибка 0,225. Модель, «угадывающая» в трёх случаях из четырёх там, где
угадать нечего. Если же отбор проводить внутри каждого фолда, ошибка становится
0,492 — та самая монетка, которой данные и являются.
Независимость строк — содержательное условие
Формула ER=R опиралась на независимость строк. В таблицах
это условие почти никогда не выполняется буквально. В велопрокате соседние часы
делят погоду; часы одного дня — общий режим города; поездки одного пользователя
похожи между собой.
Случайное перемешивание строк раскладывает почти одинаковые условия в train и
test. Формально ничего не нарушено; содержательно метрика отвечает на вопрос
«сумеем ли предсказать ещё один час из недели, которую мы уже видели», а не
«сумеем ли предсказать следующий месяц».
Полезная поправка на зависимость: если строки собираются в кластеры размера m
с внутрикластерной корреляцией ρ, дисперсия среднего растёт примерно в
1+(m−1)ρ
раз — это так называемый design effect. При m=24 (часы одних суток) и
скромной ρ=0,2 множитель равен 5,6: эффективное число независимых
наблюдений в пять с половиной раз меньше числа строк.
Единица разбиения следует из единицы обобщения
Сравним три разбиения одной и той же таблицы велопроката.
Рис. 58.4. Одна таблица, три разбиения — три разных вопроса о будущем
Случайное разбиение по строкам даёт 0,146; разбиение целыми сутками —
0,150; обучение на 2011 годе с проверкой на 2012 — 0,191. Одна и та же
модель, одна и та же потеря; разница в 4,5 процентных пункта между первым и
третьим — целиком следствие того, какое «будущее» мы изобразили.
Разница между первым и вторым столбцом мала: часы внутри дня в этой задаче не
так уж сильно похожи. Разница между вторым и третьим велика, и у неё есть
физическая причина: сервис за год вырос. Среднее число поездок в час поднялось
со 143,8 до 234,7 — в 1,63 раза, а доля «загруженных» часов (порог
считался по всей истории) выросла с 0,410 до 0,587. Модель 2011 года
попадает в другой мир.
Среднее прячет хвост
Риск — среднее. Среднее сжимает целое распределение потерь в одно число, и это
сжатие теряет ровно то, что часто важнее всего.
Обучим обычную линейную регрессию на числе поездок (не на классе) и посмотрим
на распределение абсолютных ошибок на тесте:
MAE=n1i=1∑n∣yi−yi∣.
Средняя ошибка — 93,1 поездки, медианная — 70,6, но верхний дециль
начинается с 190,8, а один процент худших часов ошибается на 439,2
поездки и больше. Две модели с одинаковым MAE могут вести себя совершенно
по-разному в этом хвосте.
Поэтому рядом со средним показывают медиану, квантили, худшую группу:
Rworst(f)=g∈GmaxE[ℓ(f(X),Y)∣G=g].
Если редкое событие критично — авария, отказ оборудования, пропущенный диагноз,
— среднее по миллиону обычных объектов растворяет его до неразличимости. Выбор
самой потери, как обсуждалось в уроке 57, определяет, какую
популяцию ошибок вы согласны терпеть.
Сдвиг распределения
Равенство ER=R относится к тому P, из которого пришла
выборка. Различают три вида расхождений:
Наш велопрокат демонстрирует всё сразу. Модель, обученная на части 2011 года,
на отложенной части того же года ошибается в 0,168 случаев, а на всём
2012-м — в 0,189. Разрыв 0,021 — не шум измерения: тестовых строк здесь
тысячи, и стандартная ошибка на порядок меньше разрыва.
Рис. 58.5. Тот же протокол, другой год; перевзвешивание платит дисперсией
Слева: одна модель, один протокол, разные годы. Справа: если старый сбор данных
был смещён (ночные часы попадали в выборку в 6,7 раза реже дневных), веса
w(x)=pnew(x)/pold(x) доходят до 5,34, и эффективный
размер выборки падает с 5384 строк до 2414 — до 45% от номинала.
Перевзвешивание пытается пересчитать среднее к нужному распределению:
Оценка становится почти несмещённой, но платит дисперсией. Эффективный размер
выборки
neff=∑iwi2(∑iwi)2
в нашем примере равен 2414 при 5384 строках. Тысячи строк исчезают, не будучи
удалёнными. Надёжнее собрать свежую размеченную выборку и заново очертить
карту применимости.
Offline и online риск
Есть ещё расхождение, которого не видно ни в одной таблице: после запуска
модель меняет среду. Рекомендательная система влияет на то, что пользователь
вообще увидит; маршрутизатор — на пробки; фильтр — на то, какие обращения
дойдут до оператора. Offline-тест меряет риск в мире без модели, online —
внутри контура с ней:
Roffline=EPhistℓ,Ronline=EPfℓ,
где Pf зависит от самой f. Это уже не статистическая, а причинная разница,
и решается она экспериментом — как в уроке 55.
Промежуточный режим — теневой (shadow): новая модель получает боевой поток и
строит прогнозы, но не управляет действиями. Он ловит инженерные расхождения —
задержку, пропуски, дрейф признаков между offline-конвейером и сервисом — без
влияния на пользователя. Он не заменяет A/B, если вопрос про реакцию людей.
Что должно стоять рядом с числом
Эмпирический риск — наблюдение, а не печать качества. Осмысленный отчёт
содержит:
Само число и интервал вокруг него (объём теста, стандартная ошибка).
Определение потери и популяции: на каких объектах, за какой период.
Схему разбиения и единицу независимости.
Число просмотренных кандидатов и правило остановки.
Сколько раз открывали тест.
Метрики по группам и хвост распределения потерь, а не только среднее.
Дату сбора данных и признаки сдвига с тех пор.
Формальный ответ на вопрос «сколько именно стоит перебор» даёт теория oracle
inequality, к которой мы придём в уроке 63. Пока достаточно
рабочего правила: любая цифра качества имеет адрес — распределение, потерю и
процедуру, — и без этих трёх частей строка «ошибка 15,4%» не значит почти
ничего.