Одна ошибочная строка поворачивает прямую, а два почти одинаковых признака
разводят коэффициенты в противоположные стороны на десятки единиц. Это две
разные болезни: первая живёт в ответах, вторая — в столбцах матрицы. Робастная
ошибка лечит первую, регуляризация вторую, и путать лекарства опасно.
Одна строка поворачивает прямую
Возьмём реальный вечерний час велопроката: 60 наблюдений, температура в
градусах и число поездок. Прямая наименьших квадратов даёт прирост
13,7 поездки на градус. Теперь в одной строке — той, где было холодно,
+2,3 °C, и город накатал скромные 159 поездок, — оператор ошибся регистром
и вписал 2159. Больше ничего не менялось: те же 59 остальных строк, тот же
метод. Наклон падает до 6,97. Половина зависимости исчезла из-за одной
ячейки.
В уроке 49 квадратичная ошибка была выведена честно: при
нормальном шуме сумма квадратов — это минус логарифм правдоподобия, и большой
остаток обязан сильно влиять на оценку, потому что при нормальном законе он
почти невероятен. Беда в том, что реальные таблицы редко бывают нормальными.
Опечатка, сбой датчика, смешение двух режимов работы — и хвост распределения
оказывается куда толще, чем обещала колоколообразная модель.
Посмотрим на источник силы. Для одного наблюдения вклад в градиент равен
∂w∂21(yi−w⊤xi)2=−(yi−w⊤xi)xi=−eixi.
Тяга пропорциональна остатку ei и не имеет потолка. Удвоив ошибку в строке,
мы удваиваем её голос; увеличив в сто раз — даём ей сто голосов. Наклон
поворачивается ровно туда, куда тянет самый громкий крикун.
Рис. 51.1. Одна испорченная строка вдвое уменьшила наклон МНК
Реальные вечерние часы велопроката. Жёлтая точка — та же холодная строка,
поднятая на 2000. Красная прямая наименьших квадратов уходит за ней и теряет
половину наклона (13,7→6,97). Зелёная прямая Хьюбера остаётся почти
там же, где серая штриховая — подгонка по нетронутым данным.
Медиана против среднего
Разберём простейший случай: модель без признаков, одна константа c. Для суммы
квадратов
dcdi∑(yi−c)2=−2i∑(yi−c)=0⟹c⋆=yˉ.
Для суммы модулей производная считается по кускам и равна разности числа точек
справа и слева:
dcdi∑∣yi−c∣=#{yi<c}−#{yi>c},
и ноль достигается, когда точек с каждой стороны поровну, то есть в медиане.
Здесь важна не формула, а её геометрия: модуль знает только направление
промаха, а не его величину.
Классическая иллюстрация — набор 0,0,0,0,M. Среднее равно M/5 и уезжает в
бесконечность вместе с M; медиана равна нулю при любом M. Долю выборки,
которую оценка выдерживает без разрушения, называют точкой отказа: у среднего
она нулевая, у медианы — половина.
Рис. 51.2. Среднее уезжает за выбросом, медиана стоит
Набор 0,0,0,0,M: среднее растёт линейно по M, медиана не двигается вовсе.
Справа — предельная доля испорченных наблюдений, которую оценка переносит без
катастрофы. Ноль процентов против пятидесяти.
Хьюбер соединяет две геометрии
У модуля есть цена: он негладкий в нуле и, что хуже, одинаково реагирует на
остаток в одну единицу и в одну сотую. При настоящем нормальном шуме, который
всё-таки лежит в основе большинства измерений, квадрат эффективнее. Питер
Хьюбер предложил склейку: квадрат в центре, модуль в хвостах.
Проверим склейку в точке e=δ. Значения совпадают:
21δ2=δ(δ−21δ). Производные тоже:
ρδ′(e)={e,δsign(e),∣e∣≤δ,∣e∣>δ=clip(e,−δ,δ).
Производная — это и есть сила, с которой наблюдение тянет параметры. У квадрата
она не ограничена, у Хьюбера упирается в потолок δ. Далёкая точка не
теряет голос совсем, но и не получает мегафон.
Сверху три штрафа за один и тот же промах, снизу их производные. У квадрата
сила растёт без границ; у модуля она мгновенно прыгает от −1 до +1; у
Хьюбера плавно растёт до δ и там останавливается. Ограниченная
производная и есть техническое определение робастности.
а это то же самое, что взвешенные нормальные уравнения с весами
ui=ψδ(ei)/ei=min(1,δ/∣ei∣):
(X⊤UX)w=X⊤Uy,U=diag(ui).
Веса зависят от остатков, остатки от весов, поэтому шаги повторяют до
сходимости. Строка с промахом в пять порогов получает вес 0,2: её не
выбрасывают, её приглушают.
Порог измеряют в единицах разброса
Число δ нельзя назначить абстрактно: остаток в 200 поездок велопроката
и остаток в 200 рублей — разные события. Порог задают в единицах масштаба
остатков, причём масштаб тоже нужен робастный, иначе выброс раздует ту самую
величину, по которой мы собирались его ловить.
Стандартное отклонение не годится: оно само построено на квадратах. Берут
медиану абсолютных отклонений
MAD=mediei−medjej,σ^=1,4826⋅MAD.
Множитель 1,4826 подобран так, чтобы при точно нормальном шуме σ^
оценивала настоящее σ: для N(0,σ2) выполняется
med∣Z∣=Φ−1(0,75)σ≈0,6745σ, а
1/0,6745≈1,4826.
На наших вечерних часах MAD=130 поездок, значит
σ^≈193. Стандартный выбор δ=1,35σ^≈261
оставляет в линейной зоне около 13% наблюдений — то есть подозрительной
считается примерно каждая восьмая строка, остальные обрабатываются точно так же,
как в обычном МНК.
Слева — распределение остатков и три порога, отложенные в единицах
σ^=1,4826⋅MAD. Справа — доля наблюдений, попадающих в
линейную (то есть приглушённую) зону. При δ=1,35σ^ приглушены
13% строк; при δ>2,5σ^ метод почти неотличим от МНК.
Выброс по ответу и рычаг по признаку
Робастная ошибка защищает от необычного y. Но бывает необычный x. Вспомним
матрицу проектирования из урока 49: прогноз есть
y=Hy, где
H=X(X⊤X)−1X⊤,∂yi∂yi=hii,i∑hii=p.
Диагональ hii и называют рычагом: она говорит, какую долю собственного
ответа точка тянет на себя. При p параметрах и n строках средний рычаг
равен p/n; строка с hii в несколько раз выше среднего опасна независимо
от того, какова её ошибка.
Добавим к нашим вечерним часам одну строку с температурой 45 °C, какой в
таблице нет вовсе, и правдоподобным на вид числом поездок. Её рычаг
h=0,14 при медианном 0,025 — почти в шесть раз больше типичного.
Наклон МНК уезжает с 13,7 до 16,4. А Хьюбер? До 16,3. Он не спас:
прямая просто повернулась к новой точке, остаток стал умеренным, и приглушать
оказалось нечего.
Точка с редким значением признака поворачивает обе прямые почти одинаково:
16,4 у МНК и 16,3 у Хьюбера. Справа видно, почему приглушение не
сработало: рычаг у неё в шесть раз выше типичного, а остаток после подгонки
уже не выделяется. Робастность по остатку — не броня против необычного x.
Когда коэффициенты не определены данными
Вторая болезнь живёт в столбцах. Возьмём реальную таблицу диабета: 442 больных,
десять признаков, среди них два показателя крови — общий холестерин s1 и
липопротеины низкой плотности s2. Их корреляция после z-стандартизации равна
0,897: почти одна и та же величина, записанная дважды.
Метод наименьших квадратов отвечает на такую таблицу вызывающе:
ws1=−37,7,ws2=+22,7.
Один и тот же биологический сигнал получил огромный отрицательный вес и почти
столь же огромный положительный. Прогноз при этом разумный: две большие
величины гасят друг друга. Но интерпретация невозможна, а устойчивость нулевая.
Чтобы понять причину, доведём ситуацию до предела. Пусть площадь дана в метрах
x1 и в футах x2=10,764x1. Тогда
y=w1x1+w2x2=(w1+10,764w2)x1,
и любая пара с одной и той же комбинацией даёт одинаковый прогноз. Матрица
X⊤X вырождена, решений бесконечно много. При почти дублированных
столбцах решение формально единственно, но ковариация оценок
Cov(w)=σ2(X⊤X)−1
содержит обратную к почти вырожденной матрице, и дисперсия отдельных
коэффициентов взлетает.
Рис. 51.6. Корреляция 0,897 разводит коэффициенты на −37,7 и +22,7
Слева: два признака почти повторяют друг друга. Справа: линии уровня ошибки в
плоскости (ws1,ws2) вытянуты в узкую долину — вдоль неё прогноз почти
не меняется, а веса меняются на десятки единиц. Решение МНК сидит в дальнем
конце долины; штраф стягивает его к началу координат.
Ridge поднимает диагональ
Добавим к ошибке штраф за длину вектора весов:
wλ=argwmin{n1∥y−Xw∥22+λ∥w∥22}.
Обе части гладкие, поэтому просто приравняем градиент нулю:
−n2X⊤(y−Xw)+2λw=0⟹(X⊤X+nλI)wλ=X⊤y.
Матрица X⊤X симметрична и неотрицательно определена; прибавление
nλI делает её строго положительно определённой, а значит обратимой при
любом λ>0. Задача, у которой не было единственного решения, его
получает. В библиотеках чаще пишут α=nλ, и дальше мы держимся этой
записи: α — то, что прибавляется к диагонали.
Пара перестала воевать. При α=100 оба коэффициента маленькие и
отрицательные — теперь их можно читать как «повышенные липиды слегка связаны с
худшим исходом», а не как гигантские силы разного знака.
Собственные значения и число обусловленности
Формула (X⊤X+αI)−1 становится прозрачной в собственном базисе.
Пусть X⊤X=VΛV⊤ с собственными значениями dj2 (это квадраты
сингулярных чисел из урока 38). Тогда в координатах V
wλ,j(V)=dj2+αdj2⋅wOLS,j(V).
Каждое собственное направление сжимается своим множителем. Там, где данных много
(dj2≫α), множитель близок к единице и ridge почти ничего не трогает.
Там, где направление плохо освещено данными (dj2≪α), множитель близок
к нулю, и штраф просто гасит шум. Это избирательное лечение, а не общее
затупление модели.
Для нашей таблицы собственные значения лежат между 3,78 и 1778,7, то
есть число обусловленности
κ(X⊤X)=dmin2dmax2=3,781778,7≈470.
После добавки α оно становится
κα=(dmax2+α)/(dmin2+α) и падает: до 129,8
при α=10, до 18,1 при α=100 и до 1,40 при α=4420
(это λ=10 в записи со средним по n). Геометрия из
урока 36 здесь буквальна: κ — вытянутость эллипса, в
который преобразование переводит окружность, и ridge делает этот эллипс круглее.
Рис. 51.7. Ridge поднимает малые собственные значения
Слева: наименьшее собственное значение 3,78 поднимается добавкой к
диагонали, наибольшее почти не замечает её. Справа: число обусловленности
падает с 470 до 1,40. Чем ближе κ к единице, тем меньше шум в
ответах превращается в шум в коэффициентах.
Ограничение вместо штрафа: форма Иванова
Тот же метод можно записать иначе — не как штраф, а как ограничение:
wminn1∥y−Xw∥22приусловии∥w∥2≤c.
Две записи связаны множителем Лагранжа из урока 23: каждому c
отвечает своё λ, и обратно. Но геометрически формулировка с
ограничением честнее: мы прямо говорим, в каком множестве ищем ответ, и рисуем
это множество — шар для L2, ромб для L1.
Именно так к регуляризации подошёл ленинградский и свердловский математик
Валентин Константинович Иванов. В начале 1960-х он изучал уравнения, у которых
решение существует, но не устойчиво: сколь угодно малое изменение правой части
уводит ответ сколь угодно далеко. Иванов показал, что устойчивость
восстанавливается, если заранее сузить множество допустимых решений до
компактного — например, потребовать ограниченности нормы. Так появилось понятие
условно-корректной задачи и метод, который сегодня называют регуляризацией
Иванова.
Рядом работала вся советская школа некорректных задач: Андрей Николаевич
Тихонов, чей стабилизирующий функционал мы разбирали в
уроке 23, и Михаил Михайлович Лаврентьев, изучавший условную
устойчивость обратных задач геофизики. Наш λ∥w∥2 — это тихоновский
штраф, а ∥w∥≤c — ивановское ограничение; одна и та же идея с двух
сторон.
Lasso создаёт нули
Заменим шар ромбом, то есть ∥w∥22 на ∥w∥1:
wλ=argwmin{2n1∥y−Xw∥22+λj∑∣wj∣}.
Разберём один коэффициент при ортогональных столбцах. Нужно минимизировать
f(w)=21(w−a)2+λ∣w∣.
При w>0 производная равна w−a+λ=0, откуда w=a−λ — но это
годится, только если a>λ. При w<0 симметрично w=a+λ при
a<−λ. В нуле производной нет, есть субдифференциал [−λ,λ],
и ноль оптимален ровно когда ∣a∣≤λ. Собирая:
w⋆=sign(a)max(∣a∣−λ,0)=:Sλ(a).
Эта операция — мягкий порог. У ridge аналог был бы a/(1+λ): множитель,
который никогда не даёт ровного нуля. Разница не в силе сжатия, а в её форме:
L1 вычитает постоянную величину, L2 делит.
Путь lasso: кто представляет группу
В уроке 23 мы уже строили путь lasso на этой же таблице и
смотрели, какие признаки выживают дольше всех. Ответ был: bmi, s5 и bp —
индекс массы тела, показатель липидного обмена и давление. Здесь нас занимает
другой вопрос, который тогда остался за кадром: что происходит внутри группы
похожих признаков и насколько устойчив выбор представителя.
Проследим пару s1/s2 вдоль пути. Первым из них в модель входит s1 при
α≈3,2; s2 молчит почти до самого конца и появляется лишь при
α≈0,25 — предпоследним из всех десяти признаков. При α=1
картина такая:
ws1=−4,84,ws2=0,ненулевыхвесов7.
Lasso выбрал одного делегата от коррелированной пары и отправил второго в ноль.
Это удобно для чтения, но обманчиво: нулевой коэффициент s2 не означает, что
липопротеины не связаны с исходом. Он означает, что их вклад уже учтён соседним
столбцом.
Траектории коэффициентов вдоль пути штрафа. Первыми входят bmi, s5 и bp,
и надолго остаются единственными. Из коррелированной пары s1 появляется рано
и сразу с большим весом; s2 ждёт почти до нулевого штрафа. Внизу — счётчик
ненулевых весов: 0→3→4→7→8→10.
Насколько устойчив такой выбор? Пересоберите выборку — уберите половину строк
или добавьте немного шума измерения, — и делегатом может стать s2, а s1
уйти в ноль. Прогноз при этом почти не изменится, а список «важных признаков»
изменится полностью. Отсюда практическое правило: разреженность читают по
частоте попадания признака в модель на многих подвыборках, а не по одному
запуску.
Elastic net удерживает группу
Если жаль терять группу целиком, штрафы складывают:
Квадратичная часть делает задачу строго выпуклой, поэтому у неё единственное
решение даже при точно совпадающих столбцах, а модульная часть сохраняет
способность зануления. У этой смеси есть свойство группировки: чем сильнее
коррелированы два признака, тем ближе друг к другу их коэффициенты. В пределе
x1=x2 решение elastic net удовлетворяет w1=w2, тогда как lasso
допускает любой делёж.
На нашей таблице при α=1 и γ=0,5
ws1=−0,24,ws2=−2,37,ненулевыхвесов10,
то есть оба показателя крови остались в модели с согласованными знаками — тогда
как чистый lasso при том же α отбросил s2 и оставил s1 с весом
−4,84.
Рис. 51.9. Ромб выбирает одного из пары, смесь оставляет обоих
Красные столбики — lasso, зелёные — elastic net при том же общем штрафе.
Lasso обнулил age, s2 и s4; смесь оставила все десять признаков, но
уменьшила их согласованно. В выделенной полосе видно главное различие: пара
s1/s2 жива целиком.
Штраф как априорное распределение
У обоих штрафов есть вероятностное прочтение. Запишем логарифм апостериорной
плотности при нормальном шуме и нормальном априорном распределении весов
w∼N(0,τ2I):
logp(w∣y)=−2σ21∥y−Xw∥22−2τ21∥w∥22+const.
Максимум по w (оценка MAP) — это минимум суммы квадратов плюс штраф, причём
λ=τ2σ2.
Смысл прозрачен: сильная регуляризация означает узкое априорное распределение,
то есть заранее сделанное утверждение, что большие веса маловероятны. Отношение
дисперсий говорит, чему мы доверяем больше — измерениям или своему ожиданию.
Для lasso роль prior играет распределение Лапласа
p(wj)∝exp(−∣wj∣/b): у него острый пик в нуле, поэтому апостериорный
максимум охотно садится ровно на ноль.
MAP — только вершина апостериорного распределения, одна точка вместо всей
картины неопределённости. Что теряется при таком сжатии и как выглядит полный
ответ, разбирает урок 52. Полезно помнить: выбирая λ по
кросс-валидации, мы фактически подбираем prior по данным — приём законный, но
уже не вполне байесовский.
Как честно выбирать штраф
Величину α не выводят из формулы — её выбирают по данным, которых модель
не видела. Пятикратная кросс-валидация на таблице диабета даёт
Честный вывод: при 442 строках и десяти признаках регуляризация почти ничего не
даёт. Строк много, столбцов мало, МНК и сам справляется. Красивая история про
пользу штрафа здесь не подтверждается, и это тоже результат.
Теперь уменьшим обучающую выборку до 60 больных — режим, в котором работает
почти любое медицинское исследование. Оценим по двум сотням бутстреп-повторов
разброс прогноза и полную ошибку на отложенных данных:
α=0,1:MSE=4623,Var=523;α=63:MSE=3829,Var=124.
Разброс упал вчетверо, смещение выросло чуть-чуть, и полная ошибка снизилась на
17%. Дальше, при α=104, смещение берёт своё и ошибка вырастает до
5971. Вот та самая U-образная кривая, ради которой всё и затевалось.
Рис. 51.10. Разброс падает быстрее, чем растёт смещение
Обучение по 60 больным. Жёлтая кривая — разброс прогноза по бутстреп-повторам,
синяя — смещение вместе с неустранимым шумом, красная — их сумма. Минимум при
α≈63: ошибка 3829 против 4623 у почти нерегуляризованной
модели.
Три правила честного выбора. Первое: стандартизацию признаков обучают внутри
каждого train-fold, иначе среднее и разброс validation-части просачиваются в
обучение. Второе: сетку α берут логарифмическую и достаточно широкую,
чтобы минимум оказался внутри, а не на краю. Третье: если сеток и моделей
перебрано много, лучший validation-результат сам становится оптимистичным, и
окончательную оценку берут на отложенной test-части ровно один раз — этой
ловушке посвящён урок 63.
Робастность как свойство всей процедуры
Ничто не мешает лечить обе болезни разом:
wminn1i∑ρδ(yi−w⊤xi)+λ∥w∥22.
Первое слагаемое ограничивает влияние больших остатков, второе стабилизирует
плохо определённые направления. Задача остаётся выпуклой, решается тем же
взвешенным МНК с добавкой к диагонали.
Но и эта комбинация не броня. Она не спасает от высокого рычага, от ошибок в
самих признаках, от зависимости строк (соседние часы велопроката коррелируют
между собой), от сдвига популяции между обучением и применением. Устойчивая
функция потерь — один слой защиты, а не весь доспех.
Поэтому робастность проверяют экспериментом, а не выбором формулы. Полезный
набор проб: удалить 1% самых влиятельных строк по расстоянию Кука и
переобучить; обучиться на первом году данных и проверить на втором; изменить
кодирование редких категорий; добавить к признакам шум измерения нужного
масштаба; повторить весь конвейер на бутстреп-выборках и посмотреть на разброс
выводов. Если после любой из этих проб содержательный вывод переворачивается,
одна средняя метрика скрывала хрупкость.
Лаборатория сжатия
Путь коэффициентов и робастная прямая
График шире экрана — листайте по горизонтали →
Загружается живая иллюстрация…
В первой сцене — та самая таблица диабета со z-стандартизованными признаками.
Поставьте штраф в минимум и убедитесь, что пара s1/s2 показывает −37,7
и +22,7; затем ведите ползунок вправо и следите не за общей картинкой, а за
двумя фиолетовыми столбиками. В режиме ridge они сходятся плавно; переключите
на lasso — и увидите, как счётчик ненулевых весов падает ступеньками, а s2
исчезает раньше s1. Найдите штраф, при котором в модели остаётся ровно три
признака, и сравните его R2 с полным.
Во второй сцене возьмитесь за жёлтую точку и тащите её вверх. Красная прямая
квадратичной ошибки поедет за ней сразу; зелёная прямая Хьюбера будет держаться,
пока вы не увеличите порог δ. Доведите δ до четырёх σ^
и убедитесь, что робастность исчезла: при большом пороге Хьюбер — это тот же
МНК. Затем утащите точку далеко вправо по температуре и посмотрите, как обе
прямые поворачиваются вместе.
Что делать с плохо определённым
Две болезни, два лекарства, и они не взаимозаменяемы. Странная строка лечится
формой функции потерь: ограниченная производная не даёт одному наблюдению
захватить оптимизацию. Плохо определённое направление в пространстве признаков
лечится штрафом или ограничением на веса: подъём диагонали превращает узкую
долину ошибки в понятную чашу. Высокий рычаг не лечится ни тем, ни другим — его
находят диагностикой и разбирают руками.
Есть и третья ситуация, которую легко спутать с первыми двумя: новая популяция.
Если строки перестали приходить из того же распределения, ни ρδ, ни
λ∥w∥2 не помогут, потому что менять надо не оценку, а модель мира.
Умение различить «опечатка», «дублированный признак» и «другой мир» стоит
дороже любой формулы сжатия — а формулы, к счастью, выводятся за полстраницы.