Почему модель с параметрами больше числа примеров иногда снова улучшается?
Школьная U-кривая обещает: слишком простая модель недоучивается, слишком
сложная запоминает шум, где-то посередине — золотая середина. Обещание верное,
но неполное. Если продолжить ось сложности за точку, где модель впервые
проходит ровно через все обучающие ответы, ошибка на тесте иногда снова падает
— и падает ниже прежнего минимума. Разберёмся, откуда берётся пик, почему за
ним бывает второй спуск и чего из этого категорически не следует.
Три слагаемых на реальных данных
Возьмём велопрокат из урока 49: два года почасовых записей.
Будем считать истинной функцией f(h) среднее число поездок в час h за все
730 дней — по каждому часу набралось столько наблюдений, что среднее устойчиво.
Обучающей выборкой назовём один случайно выбранный реальный день: 24 точки,
по одной на час. Задача — восстановить f полиномом степени d.
Повторив розыгрыш 400 раз, мы получаем для каждой степени три измеримые
величины:
Первые два слагаемых — про модель, третье — про мир. Вывод короткий: если
Y=f(h)+ε с Eε=0, то
E[(Y−f)2]=E[(f−f)2]+E[ε2],
а первое слагаемое, в свою очередь, распадается прибавлением и вычитанием
среднего прогноза fˉ=E[f]:
E[(f−f)2]=(f−fˉ)2+E[(f−fˉ)2].
Здесь σ2 — разброс реальных дней вокруг своего часового среднего; это
не выдумка, а измеренная величина: в среднем по часам σ2≈16310
поездок2, то есть типичное отклонение около 128 поездок. Никакая модель
этого не уберёт.
Что происходит с двумя другими слагаемыми, видно на рисунке. Смещение падает с
16565 (степень 0, то есть одна горизонтальная прямая) до 1465 при
степени 12. Разброс растёт в обратную сторону: с 702 до 6901. Их сумма —
единственная часть ошибки, которой мы управляем, — минимальна при степени 7 и
равна 6381.
Рис. 59.1. Смещение, разброс и неустранимый шум на реальном велопрокате
Слева — разложение по степеням полинома: чем богаче класс, тем меньше
систематический промах и тем сильнее модель шатается от выборки к выборке.
Справа видно то же самое глазами: прямая (степень 1) не догоняет два горба
суточного профиля — это смещение; двенадцатая степень в среднем идёт по
истине, но её коридор 5–95% размахивается на сотни поездок — это разброс.
Что значит «пройти через все точки»
Полином степени n−1 проходит через любые n точек с различными абсциссами:
система на коэффициенты — это система Вандермонда, у неё единственное решение.
Определитель этой системы не равен нулю при попарно различных узлах:
detV=i<k∏(xk−xi)=0.
Так возникает первое важное число: количество параметров, при котором
обучающая ошибка впервые обращается в нуль. В общем виде множество
интерполяторов — это решение линейной системы, и его размерность считается по
рангу:
dim{w:Zw=y}=p−rankZ.
Важно слово «эффективных». Две сети с разным числом весов могут задавать почти
одинаковые семейства функций: симметрии, повторяющиеся признаки и ограничения
оптимизации съедают часть степеней свободы. Ранг матрицы признаков честнее
голого счёта параметров.
Пик: эксперимент на реальных цифрах
Теперь честный опыт. Берём набор рукописных цифр digits (8×8 пикселей),
n=100 обучающих объектов, у 20% из них метка заменена на случайную —
имитация неаккуратной разметки. Модель: p случайных признаков
zj(x)=max(0,wj⊤x+bj) с фиксированными случайными wj,bj, поверх
них — обычный метод наименьших квадратов по one-hot ответам. Меняем только
p, всё остальное держим постоянным; каждая точка усреднена по восьми
независимым розыгрышам — выборки и случайных признаков сразу.
W=argWmin∥ZW−Y∥F2,Z∈Rn×p.
При p≤n это обычные нормальные уравнения, при p>n — интерполяция с
выбором среди множества решений:
Z⊤Zw=Z⊤y(p≤n),w=Z⊤(ZZ⊤)−1y(p>n).
Результат: при p=30 ошибка на тесте 37,5% — это классический минимум.
Дальше она растёт и при p=n=100 достигает 88,4%, то есть модель
угадывает хуже, чем при p=10. Затем — второй спуск: 32,6% при p=300 и
26,7% при p=2000. Ошибка на обучении при этом обращается в нуль начиная
с p=85 и больше нуля не покидает.
Одна кривая, три режима. Слева — недообучение, признаков не хватает.
В золотой полосе — порог интерполяции p=n=100: единственный интерполятор
вынужден повторить и сигнал, и все испорченные метки, и платит за это
катастрофой. Справа — переопределённый режим: интерполяторов много, и тот,
который выбирает алгоритм, оказывается лучше классического оптимума.
Спектр объясняет катастрофу
Запишем сингулярное разложение из урока 38:
Z=UΣV⊤. Решение наименьших квадратов раскладывается по правым
сингулярным векторам:
w=j∑σjuj⊤yvj.
Если ответ y содержит шумовую составляющую, её проекция на uj делится на
σj. Малое сингулярное число работает как усилитель шума. Норма решения
и ошибка по шуму записываются одной и той же суммой:
∥w∥2=j∑σj2(uj⊤y)2,E∥w−w∗∥2=σε2j∑σj21.
Одно почти нулевое σj портит обе суммы независимо от того, сколько
хороших направлений рядом.
Измерения на нашем опыте: наименьшее сингулярное число матрицы признаков равно
0,270 при p=30, падает до 0,0027 при p=100 — в сто раз! — и
возвращается к 1,106 при p=2000. Число обусловленности
ϰ=σmax/σmin в точке порога равно 8337 против
66 в переопределённом режиме. Норма решения ведёт себя так же: 8,06 при
p=30, 358,7 при p=100 и 2,55 при p=2000 — в 141 раз меньше
пика.
Рис. 59.3. У порога появляется почти нулевое сингулярное число
Слева и в центре — спектры матрицы признаков. При p=30 он пологий, при
p=100 хвост обрушивается почти к нулю. Справа — норма обученного решения:
острый шпиль ровно на пороге. Пик ошибки и пик нормы — одно и то же явление,
увиденное с двух сторон.
Фаддеевы: обусловленность старше нейросетей
За тридцать лет до первых разговоров о переобучении сетей ленинградские
математики Дмитрий Константинович Фаддеев и Вера Николаевна Фаддеева написали
книгу, с которой в СССР начиналась вычислительная линейная алгебра, —
«Вычислительные методы линейной алгебры» (1960, расширенное издание 1963).
Там уже сказано всё, что нужно нам сегодня: у системы бывает не только
решение, но и чувствительность решения; мера этой чувствительности — число
обусловленности; а нормальные уравнения Z⊤Zw=Z⊤y, которыми мы
считаем МНК, возводят обусловленность в квадрат, потому что
ϰ(Z⊤Z)=ϰ(Z)2.
∥w∥∥Δw∥≤ϰ(Z)∥y∥∥Δy∥,ϰ(Z)=σminσmax.
Подставим наш опыт: при p=100 имеем ϰ≈8337, значит,
относительная ошибка в метках может усилиться в тысячи раз. Ровно это и
показывает пик на рис. 59.2. Тот же язык даёт и определение «правильного» интерполятора. Псевдообратная
матрица и псевдорешение записываются через сингулярное разложение:
В. Н. Фаддеева, кроме того, была одним из первых
советских программистов-вычислителей: она переводила матричные методы на язык
машинных программ, когда «машина» означала шкаф с лампами.
Минимальная норма — скрытое правило выбора
При p>n интерполяторов бесконечно много. Какой из них получит ученик?
Ответ зависит не от функции потерь (она у всех нулевая), а от алгоритма.
Градиентный спуск из нулевой инициализации для квадратичной ошибки движется
только в подпространстве строк матрицы Z и приходит к
w=argZw=ymin∥w∥2.
Причина проста: шаг спуска всегда лежит в строках матрицы,
wt+1−wt=−ηZ⊤rt∈Row(Z),
поэтому и предел лежит там же, а в аффинном множестве {Zw=y} ровно одна
точка принадлежит Row(Z) — она и есть минимальная по норме.
Это и называют неявной регуляризацией (implicit bias): формально мы ничего не
штрафовали, но траектория оптимизации выбрала конкретное решение. Тот же
предел даёт ridge при λ→0:
λ→0limwλ=argZw=ymin∥w∥2.
Простейший пример. Один объект x=(1,1) с ответом y=1 задаёт уравнение
w1+w2=1. Ему удовлетворяют (1,0), (0,1), (10,−9) — на новом объекте
(1,0) они предскажут 1, 0 и 10. Нулевая ошибка на обучении не
определила функцию. Минимальную норму находим по формуле для одного уравнения a⊤w=b:
w=∥a∥2ba=21(1,1)=(0,5;0,5),∥w∥=21≈0,707.
Лаборатория двойного спуска
Порог интерполяции, шум меток и ridge
График шире экрана — листайте по горизонтали →
Загружается живая иллюстрация…
Сорок обучающих объектов, восьмимерный вход, ответ порождён небольшой сетью
и зашумлён. Ведите ползунок p слева направо и следите за двумя панелями
сразу.
Сначала поставьте шум σ=0: пик станет заметно ниже — интерполировать
чистый сигнал не страшно. Верните σ=0,3: у p=n=40 облако прогнозов
разлетается, красные точки вылетают за рамку, норма весов вырастает на
порядки. Пройдите дальше, к p=800: ошибка на тесте становится меньше, чем в
лучшей точке слева от порога. Наконец включите ridge λ=1 — пик
исчезает совсем, и кривая превращается в скучную монотонную линию. Это главный
практический вывод: катастрофа у порога узкая и лечится, а «чем больше, тем
лучше» — не закон природы, а следствие того, какой интерполятор выбирает
алгоритм.
Ridge срезает пик
Проверим то же самое на цифрах. Добавим к задаче штраф λ∥W∥F2 из
урока 51:
Никакое направление не усиливается сильнее, чем в 1/(2λ) раз, —
вот и весь секрет исчезнувшего пика.
Измерения: пик 88,4% при λ=0 становится 44,9% при
λ=0,01 и 20,9% при λ=1. Более того, лучшая точка
регуляризованной кривой (20,0% при p=130) лучше лучшей точки всей
нерегуляризованной кривой (26,7% при p=2000).
Рис. 59.4. Ridge превращает двойной спуск в монотонную кривую
Одна и та же задача, три уровня регуляризации. Пик — свойство не данных, а
процедуры без штрафа. Правильно настроенный λ и умеренное p дают
20,0% — лучше, чем гигантская модель без регуляризации.
Двойной спуск по числу объектов
Все три оси удобно свести к одному отношению
γ=np,порог: γ=1.
Пик живёт при γ=1, и до него можно дойти как справа (увеличивая p),
так и слева (увеличивая n).
Ось сложности — не единственная. Зафиксируем p=300 случайных признаков и
будем менять размер обучающей выборки n. Порог теперь пересекается с другой
стороны, и получается контринтуитивная картина: при n=80 ошибка 34,6%,
при n=300 (то есть ровно n=p) — 86,6%, при n=900 — 8,4%.
Добавление данных временно ухудшает модель.
Рис. 59.5. Двойной спуск по числу объектов и роль шума меток
Слева: больше данных — временно хуже. Никакого парадокса: с ростом n система
проходит через ту же точку n=p, где интерполятор единственный и
безальтернативный. Справа: шум меток поднимает всю кривую целиком —
классический минимум с 24,0% до 48,2%, — но положение пика не
двигается.
Шум меток: что именно ломается
Формально испорченная разметка — это подмена ответа с вероятностью ρ:
Интерполятор обязан воспроизвести и эти 18% заведомо неверных ответов.
Разложим наблюдения по уровню испорченных меток. Классический минимум
деградирует ровно так, как подсказывает интуиция: 24,0% при чистой
разметке, 31,7% при 10%, 37,5% при 20% и 48,2% при 40% шума.
Точка после второго спуска ведёт себя так же (8,7%, 17,3%, 26,7%
и 43,7%), но всегда остаётся лучше классического минимума: выигрыш
переопределённого режима падает с 15,3 пункта на чистых метках до 4,5
пункта при 40% шума.
Отсюда честный вывод: переопределённость — не индульгенция для грязных данных.
Она смягчает последствия шума, но каждый процент испорченных меток по-прежнему
стоит процентов качества.
Двойной спуск по времени обучения
Третья ось — не размер модели и не размер выборки, а число шагов оптимизации.
Обучим фиксированную модель (p=400, 30% испорченных меток) градиентным
спуском и будем смотреть на тест по ходу дела: после 100 шагов ошибка
23,2%, к 20 000 шагов она вырастает до 40,8% и там и остаётся,
а ошибка на обучении к этому моменту равна нулю.
wt+1=wt−ηZ⊤(Zwt−y),η<σmax22.
Координата решения вдоль vj после t шагов и её «эффективный λ»:
cj(t)=σjuj⊤y[1−(1−ησj2)t],λэфф≈ηt1.
Это чистое запоминание шума во времени: сначала спуск ловит крупные
сингулярные направления (сигнал), потом добирается до мелких (шум). Ранняя
остановка из урока 61 — не хитрость, а способ выбрать точку до
того, как оптимизация доберётся до опасных направлений; по действию она близка
к ridge.
Как честно строить такую кривую
Кривая «качество против сложности» — научное утверждение, и её легко испортить
незаметной подменой. При увеличении p меняются не только параметры: другая
скорость сходимости, другое число операций, иногда другой допустимый размер
батча из урока 24. Если широкую модель учили дольше или с другим
λ, ось графика смешивает модель и бюджет.
Минимальные требования к такому эксперименту:
фиксировать всё, кроме одной оси, и говорить прямо, что именно фиксировано;
показывать кривые при равных эпохах и при равных вычислениях — это разные
картинки;
для каждого размера настраивать λ и шаг отдельно, иначе сравнение
нечестно;
повторять на нескольких выборках и нескольких розыгрышах признаков: один
seed способен сдвинуть узкий пик или сгладить его;
проходить сетку по p достаточно мелко около p≈n, иначе пик просто
не попадёт в измерения.
Что из второго спуска не следует
Он не отменяет отложенную выборку: все приведённые числа получены именно
на независимых данных, и без них ни один из выводов не был бы виден.
Он не оправдывает грязную разметку: при 40% испорченных меток даже
переопределённая модель даёт 43,7% ошибок против 8,7% на чистых.
Он не обещает, что увеличение ширины улучшит качество: при фиксированном
λ=1 ошибка от p=130 к p=2000 выросла с 20,0% до 24,1%.
Он не означает, что интерполятор понял механизм: он мог выучить
нестабильную корреляцию, которая рассыплется при сдвиге распределения.
Что двойной спуск действительно даёт — это поправку к школьной метафоре.
Число параметров и функциональная сложность — разные вещи; алгоритм выбора
среди решений не менее важен, чем пространство решений; а «сложность» полезнее
описывать не одним числом, а несколькими: нормой, спектром, эффективным
рангом. Три величины, которые стоит писать в отчёте рядом с числом параметров:
∥w∥2,ϰ(Z)=σminσmax,rэфф=∑jσj4(∑jσj2)2.
Последняя — эффективный ранг: он равен числу признаков, если спектр плоский, и
близок к единице, если одно направление доминирует.
Формальные правила выбора модели ждут нас в уроке 63, а
язык эмпирического риска, на котором всё это записывается, — в
уроке 58.