Школьная U-кривая обещает: слишком простая модель недоучивается, слишком сложная запоминает шум, где-то посередине — золотая середина. Обещание верное, но неполное. Если продолжить ось сложности за точку, где модель впервые проходит ровно через все обучающие ответы, ошибка на тесте иногда снова падает — и падает ниже прежнего минимума. Разберёмся, откуда берётся пик, почему за ним бывает второй спуск и чего из этого категорически не следует.

Три слагаемых на реальных данных

Возьмём велопрокат из урока 49: два года почасовых записей. Будем считать истинной функцией f(h)f(h) среднее число поездок в час hh за все 730 дней — по каждому часу набралось столько наблюдений, что среднее устойчиво. Обучающей выборкой назовём один случайно выбранный реальный день: 24 точки, по одной на час. Задача — восстановить ff полиномом степени dd.

Повторив розыгрыш 400 раз, мы получаем для каждой степени три измеримые величины:

bias2(h)=(E[f^(h)]f(h))2,\operatorname{bias}^2(h)=\bigl(\mathbb E[\widehat f(h)]-f(h)\bigr)^2, variance(h)=E[(f^(h)E[f^(h)])2],\operatorname{variance}(h)=\mathbb E\bigl[(\widehat f(h)-\mathbb E[\widehat f(h)])^2\bigr], E[(Yf^(h))2]=bias2(h)+variance(h)+σ2(h).\mathbb E\bigl[(Y-\widehat f(h))^2\bigr] =\operatorname{bias}^2(h)+\operatorname{variance}(h)+\sigma^2(h).

Первые два слагаемых — про модель, третье — про мир. Вывод короткий: если Y=f(h)+εY=f(h)+\varepsilon с Eε=0\mathbb E\varepsilon=0, то

E[(Yf^)2]=E[(ff^)2]+E[ε2],\mathbb E\bigl[(Y-\widehat f)^2\bigr] =\mathbb E\bigl[(f-\widehat f)^2\bigr]+\mathbb E[\varepsilon^2],

а первое слагаемое, в свою очередь, распадается прибавлением и вычитанием среднего прогноза fˉ=E[f^]\bar f=\mathbb E[\widehat f]:

E[(ff^)2]=(ffˉ)2+E[(f^fˉ)2].\mathbb E\bigl[(f-\widehat f)^2\bigr] =(f-\bar f)^2+\mathbb E\bigl[(\widehat f-\bar f)^2\bigr].

Здесь σ2\sigma^2 — разброс реальных дней вокруг своего часового среднего; это не выдумка, а измеренная величина: в среднем по часам σ216310\sigma^2\approx16\,310 поездок2^2, то есть типичное отклонение около 128 поездок. Никакая модель этого не уберёт.

Что происходит с двумя другими слагаемыми, видно на рисунке. Смещение падает с 1656516\,565 (степень 0, то есть одна горизонтальная прямая) до 14651\,465 при степени 12. Разброс растёт в обратную сторону: с 702702 до 69016\,901. Их сумма — единственная часть ошибки, которой мы управляем, — минимальна при степени 7 и равна 63816\,381.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Слева: логарифмический график, синяя кривая bias квадрат падает с 16565 до 1465, красная кривая variance растёт с 702 до 6901, их сумма имеет минимум при степени 7, серая штриховая линия шума проходит выше всех. Справа: средние кривые прогноза для степеней 1, 7 и 12 с коридорами 5–95 процентов на фоне истинного двугорбого профиля суток
Рис. 59.1. Смещение, разброс и неустранимый шум на реальном велопрокате

Слева — разложение по степеням полинома: чем богаче класс, тем меньше систематический промах и тем сильнее модель шатается от выборки к выборке. Справа видно то же самое глазами: прямая (степень 1) не догоняет два горба суточного профиля — это смещение; двенадцатая степень в среднем идёт по истине, но её коридор 5–95% размахивается на сотни поездок — это разброс.

Что значит «пройти через все точки»

Полином степени n1n-1 проходит через любые nn точек с различными абсциссами: система на коэффициенты — это система Вандермонда, у неё единственное решение. Определитель этой системы не равен нулю при попарно различных узлах:

detV=i<k(xkxi)0.\det V=\prod_{i<k}(x_k-x_i)\ne0 .

Так возникает первое важное число: количество параметров, при котором обучающая ошибка впервые обращается в нуль. В общем виде множество интерполяторов — это решение линейной системы, и его размерность считается по рангу:

dim{w:  Zw=y}=prankZ.\dim\{w:\;Zw=y\}=p-\operatorname{rank}Z .

Важно слово «эффективных». Две сети с разным числом весов могут задавать почти одинаковые семейства функций: симметрии, повторяющиеся признаки и ограничения оптимизации съедают часть степеней свободы. Ранг матрицы признаков честнее голого счёта параметров.

Пик: эксперимент на реальных цифрах

Теперь честный опыт. Берём набор рукописных цифр digits (8×8 пикселей), n=100n=100 обучающих объектов, у 20% из них метка заменена на случайную — имитация неаккуратной разметки. Модель: pp случайных признаков zj(x)=max(0,wjx+bj)z_j(x)=\max(0,\,w_j^\top x+b_j) с фиксированными случайными wj,bjw_j,b_j, поверх них — обычный метод наименьших квадратов по one-hot ответам. Меняем только pp, всё остальное держим постоянным; каждая точка усреднена по восьми независимым розыгрышам — выборки и случайных признаков сразу.

W^=argminW  ZWYF2,ZRn×p.\widehat W=\arg\min_{W}\;\|ZW-Y\|_F^2, \qquad Z\in\mathbb R^{n\times p}.

При pnp\le n это обычные нормальные уравнения, при p>np>n — интерполяция с выбором среди множества решений:

ZZw^=Zy(pn),w^=Z(ZZ)1y(p>n).Z^\top Z\widehat w=Z^\top y \quad(p\le n), \qquad \widehat w=Z^\top(ZZ^\top)^{-1}y \quad(p>n).

Результат: при p=30p=30 ошибка на тесте 37,5%37{,}5\% — это классический минимум. Дальше она растёт и при p=n=100p=n=100 достигает 88,4%88{,}4\%, то есть модель угадывает хуже, чем при p=10p=10. Затем — второй спуск: 32,6%32{,}6\% при p=300p=300 и 26,7%26{,}7\% при p=2000p=2000. Ошибка на обучении при этом обращается в нуль начиная с p=85p=85 и больше нуля не покидает.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Логарифмическая ось числа признаков: синяя ошибка на обучении падает до нуля к 85 признакам, красная ошибка на тесте имеет минимум 37 процентов при 30 признаках, острый пик 88 процентов ровно при 100 признаках и второй спуск до 27 процентов при 2000 признаках
Рис. 59.2. Двойной спуск на реальных цифрах

Одна кривая, три режима. Слева — недообучение, признаков не хватает. В золотой полосе — порог интерполяции p=n=100p=n=100: единственный интерполятор вынужден повторить и сигнал, и все испорченные метки, и платит за это катастрофой. Справа — переопределённый режим: интерполяторов много, и тот, который выбирает алгоритм, оказывается лучше классического оптимума.

Спектр объясняет катастрофу

Запишем сингулярное разложение из урока 38: Z=UΣVZ=U\Sigma V^\top. Решение наименьших квадратов раскладывается по правым сингулярным векторам:

w^=jujyσjvj.\widehat w=\sum_{j}\frac{u_j^\top y}{\sigma_j}\,v_j.

Если ответ yy содержит шумовую составляющую, её проекция на uju_j делится на σj\sigma_j. Малое сингулярное число работает как усилитель шума. Норма решения и ошибка по шуму записываются одной и той же суммой:

w^2=j(ujy)2σj2,Ew^w2=σε2j1σj2.\|\widehat w\|^2=\sum_j\frac{(u_j^\top y)^2}{\sigma_j^2}, \qquad \mathbb E\|\widehat w-w^\ast\|^2=\sigma_\varepsilon^2\sum_j\frac{1}{\sigma_j^2}.

Одно почти нулевое σj\sigma_j портит обе суммы независимо от того, сколько хороших направлений рядом.

Измерения на нашем опыте: наименьшее сингулярное число матрицы признаков равно 0,2700{,}270 при p=30p=30, падает до 0,00270{,}0027 при p=100p=100 — в сто раз! — и возвращается к 1,1061{,}106 при p=2000p=2000. Число обусловленности ϰ=σmax/σmin\varkappa=\sigma_{\max}/\sigma_{\min} в точке порога равно 83378\,337 против 6666 в переопределённом режиме. Норма решения ведёт себя так же: 8,068{,}06 при p=30p=30, 358,7358{,}7 при p=100p=100 и 2,552{,}55 при p=2000p=2000 — в 141141 раз меньше пика.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Три панели: спектр матрицы признаков при 30 признаках убывает плавно до 0.27; при 100 признаках последние сингулярные числа обрушиваются до 0.0027; справа норма решения по числу признаков образует острый пик высотой 359 ровно при p равном n
Рис. 59.3. У порога появляется почти нулевое сингулярное число

Слева и в центре — спектры матрицы признаков. При p=30p=30 он пологий, при p=100p=100 хвост обрушивается почти к нулю. Справа — норма обученного решения: острый шпиль ровно на пороге. Пик ошибки и пик нормы — одно и то же явление, увиденное с двух сторон.

Фаддеевы: обусловленность старше нейросетей

За тридцать лет до первых разговоров о переобучении сетей ленинградские математики Дмитрий Константинович Фаддеев и Вера Николаевна Фаддеева написали книгу, с которой в СССР начиналась вычислительная линейная алгебра, — «Вычислительные методы линейной алгебры» (1960, расширенное издание 1963). Там уже сказано всё, что нужно нам сегодня: у системы бывает не только решение, но и чувствительность решения; мера этой чувствительности — число обусловленности; а нормальные уравнения ZZw=ZyZ^\top Zw=Z^\top y, которыми мы считаем МНК, возводят обусловленность в квадрат, потому что ϰ(ZZ)=ϰ(Z)2\varkappa(Z^\top Z)=\varkappa(Z)^2.

Δww    ϰ(Z)Δyy,ϰ(Z)=σmaxσmin.\frac{\|\Delta w\|}{\|w\|}\;\le\;\varkappa(Z)\,\frac{\|\Delta y\|}{\|y\|}, \qquad \varkappa(Z)=\frac{\sigma_{\max}}{\sigma_{\min}}.

Подставим наш опыт: при p=100p=100 имеем ϰ8337\varkappa\approx8\,337, значит, относительная ошибка в метках может усилиться в тысячи раз. Ровно это и показывает пик на рис. 59.2. Тот же язык даёт и определение «правильного» интерполятора. Псевдообратная матрица и псевдорешение записываются через сингулярное разложение:

Z+=VΣ+U,Σjj+={1/σj,σj>0,0,σj=0,Z^{+}=V\Sigma^{+}U^\top, \qquad \Sigma^{+}_{jj}=\begin{cases}1/\sigma_j,&\sigma_j>0,\\[2pt]0,&\sigma_j=0,\end{cases} w^=Z+y=argminwargminZwyw.\widehat w=Z^{+}y=\arg\min_{w\in\arg\min\|Zw-y\|}\|w\| .

В. Н. Фаддеева, кроме того, была одним из первых советских программистов-вычислителей: она переводила матричные методы на язык машинных программ, когда «машина» означала шкаф с лампами.

Минимальная норма — скрытое правило выбора

При p>np>n интерполяторов бесконечно много. Какой из них получит ученик? Ответ зависит не от функции потерь (она у всех нулевая), а от алгоритма. Градиентный спуск из нулевой инициализации для квадратичной ошибки движется только в подпространстве строк матрицы ZZ и приходит к

w^=argminZw=yw2.\widehat w=\arg\min_{Zw=y}\|w\|_2 .

Причина проста: шаг спуска всегда лежит в строках матрицы,

wt+1wt=ηZrtRow(Z),w_{t+1}-w_t=-\eta\,Z^\top r_t\in\operatorname{Row}(Z),

поэтому и предел лежит там же, а в аффинном множестве {Zw=y}\{Zw=y\} ровно одна точка принадлежит Row(Z)\operatorname{Row}(Z) — она и есть минимальная по норме. Это и называют неявной регуляризацией (implicit bias): формально мы ничего не штрафовали, но траектория оптимизации выбрала конкретное решение. Тот же предел даёт ridge при λ0\lambda\to0:

limλ0w^λ=argminZw=yw2.\lim_{\lambda\to0}\widehat w_\lambda =\arg\min_{Zw=y}\|w\|_2 .

Простейший пример. Один объект x=(1,1)x=(1,1) с ответом y=1y=1 задаёт уравнение w1+w2=1w_1+w_2=1. Ему удовлетворяют (1,0)(1,0), (0,1)(0,1), (10,9)(10,-9) — на новом объекте (1,0)(1,0) они предскажут 11, 00 и 1010. Нулевая ошибка на обучении не определила функцию. Минимальную норму находим по формуле для одного уравнения aw=ba^\top w=b:

w^=ba2a=12(1,1)=(0,5;0,5),w^=120,707.\widehat w=\frac{b}{\|a\|^2}\,a =\frac{1}{2}(1,1)=(0{,}5;\,0{,}5), \qquad \|\widehat w\|=\frac{1}{\sqrt2}\approx0{,}707 .

Лаборатория двойного спуска

Порог интерполяции, шум меток и ridge

Загружается живая иллюстрация…

Сорок обучающих объектов, восьмимерный вход, ответ порождён небольшой сетью и зашумлён. Ведите ползунок pp слева направо и следите за двумя панелями сразу.

Сначала поставьте шум σ=0\sigma=0: пик станет заметно ниже — интерполировать чистый сигнал не страшно. Верните σ=0,3\sigma=0{,}3: у p=n=40p=n=40 облако прогнозов разлетается, красные точки вылетают за рамку, норма весов вырастает на порядки. Пройдите дальше, к p=800p=800: ошибка на тесте становится меньше, чем в лучшей точке слева от порога. Наконец включите ridge λ=1\lambda=1 — пик исчезает совсем, и кривая превращается в скучную монотонную линию. Это главный практический вывод: катастрофа у порога узкая и лечится, а «чем больше, тем лучше» — не закон природы, а следствие того, какой интерполятор выбирает алгоритм.

Ridge срезает пик

Проверим то же самое на цифрах. Добавим к задаче штраф λWF2\lambda\|W\|_F^2 из урока 51:

W^λ=argminWZWYF2+λWF2,\widehat W_\lambda=\arg\min_W\|ZW-Y\|_F^2+\lambda\|W\|_F^2, w^λ=jσjσj2+λ(ujy)vj.\widehat w_\lambda=\sum_j\frac{\sigma_j}{\sigma_j^2+\lambda}(u_j^\top y)\,v_j .

Множитель σj/(σj2+λ)\sigma_j/(\sigma_j^2+\lambda) вместо 1/σj1/\sigma_j ограничивает усиление. Проверим два предела и максимум:

σσ2+λσ00,σσ2+λ1σпри σ2λ,\frac{\sigma}{\sigma^2+\lambda}\xrightarrow[\sigma\to0]{}0, \qquad \frac{\sigma}{\sigma^2+\lambda}\approx\frac1\sigma \quad\text{при }\sigma^2\gg\lambda, maxσ>0σσ2+λ=12λпри σ=λ.\max_{\sigma>0}\frac{\sigma}{\sigma^2+\lambda}=\frac{1}{2\sqrt\lambda} \quad\text{при }\sigma=\sqrt\lambda .

Никакое направление не усиливается сильнее, чем в 1/(2λ)1/(2\sqrt\lambda) раз, — вот и весь секрет исчезнувшего пика. Измерения: пик 88,4%88{,}4\% при λ=0\lambda=0 становится 44,9%44{,}9\% при λ=0,01\lambda=0{,}01 и 20,9%20{,}9\% при λ=1\lambda=1. Более того, лучшая точка регуляризованной кривой (20,0%20{,}0\% при p=130p=130) лучше лучшей точки всей нерегуляризованной кривой (26,7%26{,}7\% при p=2000p=2000).

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Три кривые ошибки на тесте по числу признаков: без регуляризации острый пик 88 процентов при 100 признаках, при лямбда 0,01 пик сглажен до 45 процентов, при лямбда 1 пика нет вовсе и кривая монотонно спадает до 20 процентов
Рис. 59.4. Ridge превращает двойной спуск в монотонную кривую

Одна и та же задача, три уровня регуляризации. Пик — свойство не данных, а процедуры без штрафа. Правильно настроенный λ\lambda и умеренное pp дают 20,0%20{,}0\% — лучше, чем гигантская модель без регуляризации.

Двойной спуск по числу объектов

Все три оси удобно свести к одному отношению

γ=pn,порог: γ=1.\gamma=\frac{p}{n}, \qquad\text{порог: }\gamma=1 .

Пик живёт при γ=1\gamma=1, и до него можно дойти как справа (увеличивая pp), так и слева (увеличивая nn).

Ось сложности — не единственная. Зафиксируем p=300p=300 случайных признаков и будем менять размер обучающей выборки nn. Порог теперь пересекается с другой стороны, и получается контринтуитивная картина: при n=80n=80 ошибка 34,6%34{,}6\%, при n=300n=300 (то есть ровно n=pn=p) — 86,6%86{,}6\%, при n=900n=9008,4%8{,}4\%. Добавление данных временно ухудшает модель.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Слева ошибка на тесте по размеру выборки при фиксированных 300 признаках: 35 процентов при 80 объектах, пик 87 процентов при 300 объектах, 8 процентов при 900. Справа четыре кривые ошибки по числу признаков для шума меток 0, 10, 20 и 40 процентов, все с пиком при 100 признаках
Рис. 59.5. Двойной спуск по числу объектов и роль шума меток

Слева: больше данных — временно хуже. Никакого парадокса: с ростом nn система проходит через ту же точку n=pn=p, где интерполятор единственный и безальтернативный. Справа: шум меток поднимает всю кривую целиком — классический минимум с 24,0%24{,}0\% до 48,2%48{,}2\%, — но положение пика не двигается.

Шум меток: что именно ломается

Формально испорченная разметка — это подмена ответа с вероятностью ρ\rho:

y~i={yi,с вероятностью 1ρ,случайный класс,с вероятностью ρ,\tilde y_i=\begin{cases}y_i,&\text{с вероятностью }1-\rho,\\[2pt] \text{случайный класс},&\text{с вероятностью }\rho,\end{cases} P(y~iyi)=ρ(11K)=0,20,9=0,18(K=10, ρ=0,2).\mathbb P(\tilde y_i\ne y_i)=\rho\Bigl(1-\frac1K\Bigr) =0{,}2\cdot0{,}9=0{,}18 \quad (K=10,\ \rho=0{,}2).

Интерполятор обязан воспроизвести и эти 18%18\% заведомо неверных ответов.

Разложим наблюдения по уровню испорченных меток. Классический минимум деградирует ровно так, как подсказывает интуиция: 24,0%24{,}0\% при чистой разметке, 31,7%31{,}7\% при 10%, 37,5%37{,}5\% при 20% и 48,2%48{,}2\% при 40% шума. Точка после второго спуска ведёт себя так же (8,7%8{,}7\%, 17,3%17{,}3\%, 26,7%26{,}7\% и 43,7%43{,}7\%), но всегда остаётся лучше классического минимума: выигрыш переопределённого режима падает с 15,315{,}3 пункта на чистых метках до 4,54{,}5 пункта при 40% шума.

Отсюда честный вывод: переопределённость — не индульгенция для грязных данных. Она смягчает последствия шума, но каждый процент испорченных меток по-прежнему стоит процентов качества.

Двойной спуск по времени обучения

Третья ось — не размер модели и не размер выборки, а число шагов оптимизации. Обучим фиксированную модель (p=400p=400, 30% испорченных меток) градиентным спуском и будем смотреть на тест по ходу дела: после 100 шагов ошибка 23,2%23{,}2\%, к 20 000 шагов она вырастает до 40,8%40{,}8\% и там и остаётся, а ошибка на обучении к этому моменту равна нулю.

wt+1=wtηZ(Zwty),η<2σmax2.w_{t+1}=w_t-\eta\,Z^\top(Zw_t-y), \qquad \eta<\frac{2}{\sigma_{\max}^2}.

Координата решения вдоль vjv_j после tt шагов и её «эффективный λ\lambda»:

cj(t)=ujyσj[1(1ησj2)t],λэфф1ηt.c_j(t)=\frac{u_j^\top y}{\sigma_j}\Bigl[1-(1-\eta\sigma_j^2)^t\Bigr], \qquad \lambda_{\text{эфф}}\approx\frac{1}{\eta t}.

Это чистое запоминание шума во времени: сначала спуск ловит крупные сингулярные направления (сигнал), потом добирается до мелких (шум). Ранняя остановка из урока 61 — не хитрость, а способ выбрать точку до того, как оптимизация доберётся до опасных направлений; по действию она близка к ridge.

Как честно строить такую кривую

Кривая «качество против сложности» — научное утверждение, и её легко испортить незаметной подменой. При увеличении pp меняются не только параметры: другая скорость сходимости, другое число операций, иногда другой допустимый размер батча из урока 24. Если широкую модель учили дольше или с другим λ\lambda, ось графика смешивает модель и бюджет.

Минимальные требования к такому эксперименту:

  • фиксировать всё, кроме одной оси, и говорить прямо, что именно фиксировано;
  • показывать кривые при равных эпохах и при равных вычислениях — это разные картинки;
  • для каждого размера настраивать λ\lambda и шаг отдельно, иначе сравнение нечестно;
  • повторять на нескольких выборках и нескольких розыгрышах признаков: один seed способен сдвинуть узкий пик или сгладить его;
  • проходить сетку по pp достаточно мелко около pnp\approx n, иначе пик просто не попадёт в измерения.

Что из второго спуска не следует

Он не отменяет отложенную выборку: все приведённые числа получены именно на независимых данных, и без них ни один из выводов не был бы виден.

Он не оправдывает грязную разметку: при 40% испорченных меток даже переопределённая модель даёт 43,7%43{,}7\% ошибок против 8,7%8{,}7\% на чистых.

Он не обещает, что увеличение ширины улучшит качество: при фиксированном λ=1\lambda=1 ошибка от p=130p=130 к p=2000p=2000 выросла с 20,0%20{,}0\% до 24,1%24{,}1\%.

Он не означает, что интерполятор понял механизм: он мог выучить нестабильную корреляцию, которая рассыплется при сдвиге распределения.

Что двойной спуск действительно даёт — это поправку к школьной метафоре. Число параметров и функциональная сложность — разные вещи; алгоритм выбора среди решений не менее важен, чем пространство решений; а «сложность» полезнее описывать не одним числом, а несколькими: нормой, спектром, эффективным рангом. Три величины, которые стоит писать в отчёте рядом с числом параметров:

w^2,ϰ(Z)=σmaxσmin,rэфф=(jσj2)2jσj4.\|\widehat w\|_2, \qquad \varkappa(Z)=\frac{\sigma_{\max}}{\sigma_{\min}}, \qquad r_{\text{эфф}}=\frac{\bigl(\sum_j\sigma_j^2\bigr)^2}{\sum_j\sigma_j^4}.

Последняя — эффективный ранг: он равен числу признаков, если спектр плоский, и близок к единице, если одно направление доминирует.

Формальные правила выбора модели ждут нас в уроке 63, а язык эмпирического риска, на котором всё это записывается, — в уроке 58.

Задачи