Одна ошибочная строка поворачивает прямую, а два почти одинаковых признака
разводят коэффициенты в противоположные стороны на десятки единиц. Это две
разные болезни: первая живёт в ответах, вторая — в столбцах матрицы. Робастная
ошибка лечит первую, регуляризация вторую, и путать лекарства опасно.
Одна строка поворачивает прямую
Возьмём реальный вечерний час велопроката — все 730 наблюдений в 17:00,
температура в градусах и число поездок. Прямая наименьших квадратов даёт прирост
14,74 поездки на градус. Теперь в одной строке — той, где было холодно,
+2,34 °C, и город накатал скромные 159 поездок, — оператор ошибся регистром
и вписал 2159. На семистах тридцати строках наклон почти не шелохнулся:
14,24, потеря 3,4%. Одна ячейка тонет в толпе.
Но таблицы редко бывают такими полными. Возьмём случайные 60 вечерних часов
(seed 51) — ровно тот размер, на котором работает медицинский пример из
последнего раздела урока. Там та же прямая даёт 13,70, а после той же
опечатки — 6,97: 49% зависимости исчезло из-за одной ячейки. По
шести seed падение наклона лежит между 30% и 72% — величина эффекта
зависит от того, какие 60 часов достались, но не его знак и не его порядок.
Дальше в этом разделе мы работаем с этими 60 строками, потому что на них видно
глазом то, что на 730 строках прячется в третьем знаке.
В уроке 49 квадратичная ошибка была выведена честно: при
нормальном шуме сумма квадратов — это минус логарифм правдоподобия, и большой
остаток обязан сильно влиять на оценку, потому что при нормальном законе он
почти невероятен. Беда в том, что реальные таблицы редко бывают нормальными.
Опечатка, сбой датчика, смешение двух режимов работы — и хвост распределения
оказывается куда толще, чем обещала колоколообразная модель.
Посмотрим на источник силы. Для одного наблюдения вклад в градиент равен
∂w∂21(yi−w⊤xi)2=−(yi−w⊤xi)xi=−eixi.
Тяга пропорциональна остатку ei и не имеет потолка. Удвоив ошибку в строке,
мы удваиваем её голос; увеличив в сто раз — даём ей сто голосов. Наклон
поворачивается ровно туда, куда тянет самый громкий крикун.
Рис. 51.1. Одна испорченная строка убрала 49 % наклона МНК
Случайные 60 вечерних часов велопроката (seed 51). Жёлтая точка — та же
холодная строка, поднятая на 2000. Красная прямая наименьших квадратов уходит
за ней и теряет 49% наклона (13,70→6,97). Зелёная прямая Хьюбера
остаётся почти там же, где серая штриховая — подгонка по нетронутым данным:
13,51 против 13,70.
Медиана против среднего
Разберём простейший случай: модель без признаков, одна константа c. Для суммы
квадратов
dcdi∑(yi−c)2=−2i∑(yi−c)=0⟹c⋆=yˉ.
Для суммы модулей производная считается по кускам и равна разности числа точек
справа и слева:
dcdi∑∣yi−c∣=#{yi<c}−#{yi>c},
Эта производная существует всюду, кроме самих точек yi; она кусочно
постоянна, скачет на каждой точке выборки и меняет знак ровно в медиане. При
чётном n она обращается в ноль на всём отрезке между двумя средними
порядковыми значениями — там и лежит множество минимумов. При нечётном n в
самой медиане производной нет: слева она отрицательна, справа положительна, —
и минимум достигается именно там. Здесь важна не формула, а её геометрия:
модуль знает только направление промаха, а не его величину.
Классическая иллюстрация — набор 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.
На наших 60 вечерних часах MAD=130 поездок, значит
σ^≈193. Стандартный выбор δ=1,35σ^≈261
оставляет в линейной зоне около 13% наблюдений — то есть подозрительной
считается примерно каждая восьмая строка, остальные обрабатываются точно так же,
как в обычном МНК.
Слева — распределение остатков и три порога, отложенные в единицах
σ^=1,4826⋅MAD. Справа — доля наблюдений, попадающих в
линейную (то есть приглушённую) зону. При δ=1,35σ^ приглушены
13% строк; при δ>2,5σ^ метод почти неотличим от МНК.
Выброс по ответу и рычаг по признаку
Робастная ошибка защищает от необычного y. Но бывает необычный x. Вспомним
матрицу проектирования из урока 49: прогноз есть
y=Hy, где
Равенство ∑ihii=p — это след проектора: trH равен
размерности того подпространства, на которое H проектирует, и она равна p
ровно тогда, когда столбцы X линейно независимы. Диагональ hii и
называют рычагом: она говорит, какую долю собственного ответа точка тянет на
себя. При p параметрах и n строках средний рычаг равен p/n; строка с
hii в несколько раз выше среднего опасна независимо от того, какова её
ошибка.
Добавим к нашим 60 вечерним часам одну строку с температурой 45 °C, какой в
таблице нет вовсе, и правдоподобным на вид числом поездок — 1400. Её рычаг
h=0,14 при медианном 0,025 — почти в шесть раз больше типичного.
Наклон МНК уезжает с 13,70 до 16,41. А Хьюбер? До 16,29. Он не
спас — но не потому, что приглушать было нечего.
Посмотрим честно. Остаток этой строки после подгонки равен 483 поездки при
2σ^=387: он второй по модулю среди всех 61 и стоит выше порога.
Хьюбер её и правда приглушает — вес δ/∣e∣=261/491=0,53, ровно вдвое.
Но вклад строки в наклон пропорционален не только весу, а произведению
ui(xi−xˉ)2, и второй множитель у неё в 13,9 раза больше
медианного. Приглушение вдвое против рычага в четырнадцать раз — этого мало.
Робастность по остатку ограничивает голос строки, но не её позицию.
Точка с редким значением признака поворачивает обе прямые почти одинаково:
16,4 у МНК и 16,3 у Хьюбера. Справа видно, почему приглушение не
спасло: рычаг у неё в шесть раз выше типичного, и хотя остаток 483 заметно
выше порога 2σ^=387 и Хьюбер режет её вес вдвое, множитель
(x−xˉ)2 у этой строки в четырнадцать раз больше типичного.
Робастность по остатку — не броня против необычного x.
Когда коэффициенты не определены данными
Вторая болезнь живёт в столбцах. Возьмём реальную таблицу диабета: 442 больных,
десять признаков, среди них два показателя крови — общий холестерин s1 и
липопротеины низкой плотности s2. Их корреляция равна 0,897: почти одна и
та же величина, записанная дважды. Корреляция не меняется при
z-стандартизации — она инвариантна к сдвигу и положительному растяжению каждого
столбца; стандартизация меняет масштаб коэффициентов, а не силу связи.
Метод наименьших квадратов отвечает на такую таблицу вызывающе:
ws1=−37,7,ws2=+22,7.
Один и тот же биологический сигнал получил огромный отрицательный вес и почти
столь же огромный положительный. Прогноз при этом разумный: две большие
величины гасят друг друга. Но интерпретация невозможна, а устойчивость нулевая.
Чтобы понять причину, доведём ситуацию до предела. Пусть одна и та же площадь
записана дважды: x1 — в квадратных метрах, x2 — в квадратных футах. Фут
равен 0,3048 метра, поэтому 1м2=1/0,30482=10,764 фут², и
x2=10,764x1. Тогда
y=w1x1+w2x2=(w1+10,764w2)x1,
и любая пара с одной и той же комбинацией w1+10,764w2 даёт одинаковый
прогноз. Матрица X⊤X вырождена, решений бесконечно много. При почти
дублированных столбцах решение формально единственно, но ковариация оценок
Cov(w)=σ2(X⊤X)−1приCov(ε)=σ2IификсированнойX
содержит обратную к почти вырожденной матрице, и дисперсия отдельных
коэффициентов взлетает. Оговорки существенны: формула выведена в предположении,
что шум некоррелирован и одинаково разбросан во всех строках, а матрица
признаков не случайна. Для соседних часов велопроката первое предположение уже
неверно.
Рис. 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,70≈470.
Здесь стоит быть точным в том, что именно усиливается. Число обусловленности
самой матрицы признаков равно κ(X)=dmax/dmin=470=21,7,
и именно оно управляет тем, как шум в ответах y переходит в шум в
коэффициентах. Квадрат κ(X⊤X)=κ(X)2=470 появляется, когда
возмущают саму матрицу X (или когда решают нормальные уравнения численно, в
лоб). Спутав эти два числа, читатель завышает чувствительность вдвое по
логарифмической шкале.
После добавки α оно становится
κα=(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∣}.
Разберём один коэффициент. Пусть столбцы ортогональны и нормированы так, что
X⊤X=nI (после z-стандартизации ∥xj∥22=n автоматически, остаётся
потребовать ортогональность). Тогда
потому что при X⊤X=nI решение МНК равно (X⊤y)j/n. Задача
распадается на p независимых скалярных, и каждая из них — это
f(w)=21(w−a)2+λ∣w∣,a=wOLS,j.
(Если X⊤X=diag(cj) без общего множителя, задача тоже
распадается, но порог у каждой координаты свой и равен nλ/cj.)
При w>0 производная равна w−a+λ=0, откуда w=a−λ — но это
годится, только если a>λ. При w<0 симметрично w=a+λ при
a<−λ. В нуле производной нет: слева наклон равен −a−λ, справа
−a+λ. Ноль оптимален ровно тогда, когда слева спуск идёт вниз, а справа вверх,
то есть при ∣a∣≤λ. Собирая:
w⋆=sign(a)max(∣a∣−λ,0)=:Sλ(a).
Эта операция — мягкий порог. Ridge в той же нормировке решает
21(w−a)2+λw2; приравнивая производную нулю, получаем
(w−a)+2λw=0, то есть
w⋆=1+2λa
— множитель, который никогда не даёт ровного нуля. (Двойка здесь не украшение:
она приходит из производной λw2. В записи с 1/n и без множителя
21 у квадрата ошибки тот же вывод даёт a/(1+λ) — сравнивать
формулы можно только внутри одной нормировки.) Разница не в силе сжатия, а в её
форме: L1 вычитает постоянную величину, L2 делит.
Ноль делает метод, а не сам штраф
Мы сказали: «lasso зануляет коэффициенты». Строго говоря, это неправда: зануляет не
сам штраф, а способ, которым мы ищем минимум. Проверить легко — решим одну и ту же
задачу двумя способами.
У модуля ∣w∣ в нуле нет производной: слева наклон −1, справа +1. Первый способ —
не обращать на это внимания: в нуле взять любое число между −1 и +1 и делать
обычный шаг wk+1=wk−αkgk. Такой шаг попадает ровно в ноль только чудом —
это всё равно что бросать камешек и надеяться, что он остановится точно на черте.
Второй способ — шагать в два приёма. Сначала обычный шаг по гладкой части (без
штрафа), а потом штраф применяется отдельно, одной операцией: всё, что по модулю
меньше порога, обнуляется, а остальное придвигается к нулю на величину порога:
Это тот самый мягкий порог, который мы получили выше из геометрии ромба. Он не
приближается к нулю постепенно — он в него защёлкивает. Отсюда и точные нули: не
потому, что так устроен штраф, а потому, что так устроен последний шаг.
Рис. 51.8. Одна задача, два метода, разная разреженность
Реальный диабет, λ=1, оба способа стартуют из нуля. Шаг с порогом набирает три
точных нуля к сотому шагу; обычный шаг не даёт ни одного никогда. При этом значения
цели почти совпадают: 1533,77 против 1535,30. То есть по качеству решения
способы неразличимы, а по смыслу ответа — совершенно разные: у обычного шага
наименьший вес равен 0,00038, и «выбросить признак» на этом основании нельзя.
Путь 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,065 до 0,099 ненулевых девять, а по
обе стороны от неё — десять. Там коэффициент s3 пересекает ноль и ненадолго
исчезает.
Насколько устойчив такой выбор? Пересоберите выборку — уберите половину строк
или добавьте немного шума измерения, — и делегатом может стать s2, а s1
уйти в ноль. Прогноз при этом почти не изменится, а список «важных признаков»
изменится полностью. Отсюда практическое правило: разреженность читают по
частоте попадания признака в модель на многих подвыборках, а не по одному
запуску.
Elastic net удерживает группу
Если жаль терять группу целиком, штрафы складывают:
Квадратичная часть делает задачу строго выпуклой, поэтому у неё единственное
решение даже при точно совпадающих столбцах, а модульная часть сохраняет
способность зануления. С этой смесью связывают свойство группировки: Цзоу и
Хасти доказали оценку
∣wi−wj∣≤α(1−γ)∥y∥22(1−ρij),
и у неё есть условия: столбцы должны быть стандартизованы, а корреляция
ρij — положительна. Это верхняя граница, а не обещание близости: она
говорит, что при ρ→1 коэффициенты обязаны совпасть, но ничего не
обещает при ρ=0,9. При ρ→−1 сближаются не wi и wj, а wi
и −wj.
Чистый предел виден на точно совпадающих столбцах. Продублируем s1 в таблице:
elastic net при α=1,γ=0,5 делит вес поровну (−0,17 и
−0,17), а lasso раскладывает как придётся — −0,12 и −4,72.
Теперь сравним на настоящей таблице, причём при равнойL1-силе:
elastic net с α=1,γ=0,5 несёт перед ∥w∥1 множитель 0,5,
значит его честный соперник — lasso с α=0,5, а не с α=1.
Оба показателя крови остались в модели у смеси и с согласованными знаками —
и это не артефакт сравнения: lasso той же L1-силы всё равно выбрасывает s2
(вместе с age). Но заметьте, чего здесь нет: коэффициенты пары не сблизились
— −0,24 и −2,37 отличаются в десять раз. Группировка при ρ=0,897
означает «оба живы», а не «оба равны». Для справки: lasso с α=1 отбросил
бы s2, age и s4, оставив s1 с весом −4,84.
Рис. 51.10. При одинаковой L₁-силе ромб теряет s2, а смесь его удерживает
Красные столбики — lasso с α=0,5, зелёные — elastic net с α=1 и
γ=0,5: у обоих множитель перед ∥w∥1 равен 0,5, то есть
L1-сила одинакова. Lasso обнулил age и s2; смесь оставила все десять
признаков. В выделенной полосе видно главное различие: пара s1/s2 жива
целиком — хотя и очень неравными весами.
Штраф как априорное распределение
У обоих штрафов есть вероятностное прочтение. Запишем логарифм апостериорной
плотности при нормальном шуме и нормальном априорном распределении весов
w∼N(0,τ2I):
logp(w∣y)=−2σ21∥y−Xw∥22−2τ21∥w∥22+const.
Максимум по w (оценка MAP) — это минимум ненормированной суммы квадратов
∥y−Xw∥22 плюс штраф с коэффициентом σ2/τ2. Чтобы не путать
буквы, вспомним обозначения урока: α — то, что прибавляется к диагонали
X⊤X, а λ=α/n — множитель при ∥w∥2 в функционале со
средним n1∥y−Xw∥2. В этих обозначениях
α=τ2σ2,λ=nτ2σ2.
Разница не косметическая: при n=442 одно и то же априорное распределение даёт
λ в 442 раза меньше, чем α.
Смысл прозрачен: сильная регуляризация означает узкое априорное распределение,
то есть заранее сделанное утверждение, что большие веса маловероятны. Отношение
дисперсий говорит, чему мы доверяем больше — измерениям или своему ожиданию.
Для lasso роль prior играет распределение Лапласа
p(wj)∝exp(−∣wj∣/b): у него острый пик в нуле, поэтому апостериорный
максимум охотно садится ровно на ноль.
MAP — только вершина апостериорного распределения, одна точка вместо всей
картины неопределённости. Что теряется при таком сжатии и как выглядит полный
ответ, разбирает урок 52. Полезно помнить: выбирая λ по
кросс-валидации, мы фактически подбираем prior по данным — приём законный, но
уже не вполне байесовский.
Как честно выбирать штраф
Величину α не выводят из формулы — её выбирают по данным, которых модель
не видела. Пятикратная кросс-валидация на таблице диабета даёт
Честный вывод: при 442 строках и десяти признаках регуляризация почти ничего не
даёт. Строк много, столбцов мало, МНК и сам справляется. Красивая история про
пользу штрафа здесь не подтверждается, и это тоже результат.
Теперь уменьшим обучающую выборку до 60 больных — режим, в котором работает
почти любое медицинское исследование. Оценим по двум сотням бутстреп-повторов
разброс прогноза и полную ошибку на отложенных данных:
Здесь надо остановиться и прочитать числа, а не учебник. Разброс упал в
4,2 раза — это ожидаемо. Но смещение вместе с шумом тоже упало, с 4100
до 3704, примерно на десятую часть. Классическая картинка «платим смещением
за устойчивость» на этом участке просто не работает: при n=60 и p=10
нерегуляризованная подгонка настолько неустойчива, что даже её средний по
бутстрепу прогноз промахивается сильнее, чем средний прогноз слегка
стянутой модели. Штраф здесь бесплатен.
Плата приходит позже. При α=104 смещение с шумом вырастает до 5867, а
полная ошибка — до 5971: тут уже видна честная цена сжатия. Вот та самая
U-образная кривая, ради которой всё и затевалось; просто её левая ветвь
образована падением обеих составляющих сразу, а не борьбой одной против другой.
Рис. 51.11. Сначала падают обе составляющие, цена приходит справа
Обучение по 60 больным. Жёлтая кривая — разброс прогноза по бутстреп-повторам,
синяя — смещение вместе с неустранимым шумом, красная — их сумма. Синяя кривая
до минимума слегка снижается (4100→3704) и только потом резко идёт вверх
(→5867). Минимум суммы при α≈63: ошибка 3829 против 4623 у
почти нерегуляризованной модели.
Три правила честного выбора. Первое: стандартизацию признаков обучают внутри
каждого train-fold, иначе среднее и разброс validation-части просачиваются в
обучение. Второе: сетку α берут логарифмическую и достаточно широкую,
чтобы минимум оказался внутри, а не на краю. Третье: если сеток и моделей
перебрано много, лучший validation-результат сам становится оптимистичным, и
окончательную оценку берут на отложенной test-части ровно один раз — этой
ловушке посвящён урок 63.
Робастность как свойство всей процедуры
Ничто не мешает лечить обе болезни разом:
wminn1i∑ρδ(yi−w⊤xi)+λ∥w∥22.
Первое слагаемое ограничивает влияние больших остатков, второе стабилизирует
плохо определённые направления. Задача остаётся выпуклой, решается тем же
взвешенным МНК с добавкой к диагонали.
Но и эта комбинация не броня. Она не спасает от высокого рычага, от ошибок в
самих признаках, от зависимости строк (соседние часы велопроката коррелируют
между собой), от сдвига популяции между обучением и применением. Устойчивая
функция потерь — один слой защиты, а не весь доспех.
Поэтому робастность проверяют экспериментом, а не выбором формулы. Полезный
набор проб: удалить 1% самых влиятельных строк по расстоянию Кука и
переобучить; обучиться на первом году данных и проверить на втором; изменить
кодирование редких категорий; добавить к признакам шум измерения нужного
масштаба; повторить весь конвейер на бутстреп-выборках и посмотреть на разброс
выводов. Если после любой из этих проб содержательный вывод переворачивается,
одна средняя метрика скрывала хрупкость.
Лаборатория сжатия
Путь коэффициентов и робастная прямая
График шире экрана — листайте по горизонтали →
Загружается живая иллюстрация…
В первой сцене — та самая таблица диабета со z-стандартизованными признаками.
Оставьте режим ridge, уведите ползунок в самый левый край (log10α=−4)
и убедитесь, что пара s1/s2 показывает −37,7 и +22,7 — те самые
числа, с которых начался разговор о коллинеарности. Затем ведите ползунок
вправо и следите не за общей картинкой, а за двумя фиолетовыми столбиками. В
режиме ridge они сходятся плавно; переключите на lasso — и увидите, как счётчик
ненулевых весов падает ступеньками, а s2 исчезает раньше s1. Найдите штраф,
при котором в модели остаётся ровно три признака (log10α≈1,25,
то есть α≈18), и сравните его R2 на обучении с полным:
0,392 против 0,518.
Во второй сцене возьмитесь за жёлтую точку и тащите её вверх. Красная прямая
квадратичной ошибки поедет за ней сразу; зелёная прямая Хьюбера будет
держаться. Теперь увеличивайте порог δ и следите за наклоном Хьюбера в
показаниях. Для исходного положения точки (строка поднята на 2000) при
δ=1,35σ^ он равен 12,9, при δ=4σ^ — ещё
10,3, и только начиная с δ=8σ^ он в точности совпадает с
МНК-овскими 7,0: порог должен перекрыть остаток выброса, а вообще говоря
совпадение с МНК — это предел δ→∞. Утащите точку выше, и граница
уедет вместе с ней. Затем утащите её далеко вправо по температуре и посмотрите,
как обе прямые поворачиваются вместе.
Что делать с плохо определённым
Две болезни, два лекарства, и они не взаимозаменяемы. Странная строка лечится
формой функции потерь: ограниченная производная не даёт одному наблюдению
захватить оптимизацию. Плохо определённое направление в пространстве признаков
лечится штрафом или ограничением на веса: подъём диагонали превращает узкую
долину ошибки в понятную чашу. Высокий рычаг не лечится ни тем, ни другим — его
находят диагностикой и разбирают руками.
Есть и третья ситуация, которую легко спутать с первыми двумя: новая популяция.
Если строки перестали приходить из того же распределения, ни ρδ, ни
λ∥w∥2 не помогут, потому что менять надо не оценку, а модель мира.
Умение различить «опечатка», «дублированный признак» и «другой мир» стоит
дороже любой формулы сжатия — а формулы, к счастью, выводятся за полстраницы.