Обычная регрессия выдаёт одну линию. Байесовская оставляет целое облако линий,
взвешенных по тому, насколько каждая согласуется и с данными, и с тем, что мы
знали до них. Там, где измерений мало, облако расходится веером — и честно
расширяет прогнозный интервал ровно настолько, насколько мы не знаем ответа.
Шесть вечеров и целый веер прямых
Возьмём реальные данные проката велосипедов: вечерний час пик, 17:00, только
рабочие дни 2011 года — всего 250 вечеров. Признак один: нормированная
температура temp. Ответ — число поездок за час. По всем 250 вечерам метод
наименьших квадратов из урока 49 даёт наклон 599 поездок на
полный размах температуры и средний уровень 395 поездок; типичный разброс
вокруг прямой — 111 поездок.
Теперь представим, что мы — лаборатория, у которой измерений почти нет.
Возьмём случайные шесть вечеров из этих же 250. МНК по шести точкам выдаёт
наклон 799. Ошибка относительно «полного» наклона — 200 поездок, треть
величины. И главное: МНК не сообщает об этом ни слова. Он возвращает число,
как если бы оно было измерено, а не угадано по шести шумным точкам.
Байесовский подход отвечает иначе. Он не выбирает прямую — он приписывает
каждой прямой вес и держит их все. Через область шести точек проходит плотный
пучок; левее и правее пучок расходится. Наклон получается 542 с собственным
стандартным отклонением 170 — и, что приятно, эта оценка ближе к «полному»
наклону 599, чем МНК: промах 57 вместо 200.
Рис. 52.1. Не одна линия, а веер линий, согласованных с данными
Шесть жирных точек — те вечера, которые «видела» модель; бледное облако —
остальные 244, которые она не видела (мы показываем их только для сверки).
Красная штриховая линия — МНК по шести точкам, наклон 799. Синий пучок — сорок
прямых, взятых из posterior; их плотность и есть ответ модели. Внутри
серого коридора наблюдений прямые почти совпадают, вне его — расходятся веером.
Что мы считаем неизвестным
В уроке 49 вектор весов w был неизвестной константой, которую
мы оцениваем. Здесь мы делаем шаг из урока 47 и объявляем w
случайным вектором: у него есть распределение до данных и распределение после.
Модель наблюдений остаётся прежней:
y=Xw+ε,ε∼N(0,σ2I),
то есть
p(y∣X,w)=i=1∏n2πσ1exp[−2σ2(yi−xi⊤w)2].
К ней добавляется нормальный prior
w∼N(m0,S0),
а правило Байеса из урока 42 в форме плотностей даёт
p(w∣D)∝p(y∣X,w)p(w).
Prior — это не «вера в удачу», а записанное предметное знание. Для велопроката
мы взяли m0=0 и S0=τ2I с τ=300: заранее считаем, что переход от
самого холодного вечера к самому тёплому вряд ли меняет спрос больше чем на
несколько сотен поездок, а знак эффекта не навязываем. Это слабое, но не пустое
утверждение — и именно оно удержало наклон от прыжка на 799.
Две нормальные формы умножаются в третью
Логарифм правдоподобия по w — квадратичная форма:
lnp(y∣X,w)=−2σ21(y−Xw)⊤(y−Xw)+const,
логарифм prior — тоже:
lnp(w)=−21(w−m0)⊤S0−1(w−m0)+const.
Сумма двух квадратичных форм — снова квадратичная форма, а экспонента от
квадратичной формы — снова нормальная плотность. Значит, posterior нормален, и
достаточно собрать коэффициенты. При m0=0 показатель равен
−21w⊤(S0−1+σ2X⊤X)w+w⊤σ2X⊤y+const,
откуда, сравнивая с общим видом −21w⊤Sn−1w+w⊤Sn−1mn,
Складываются не ковариации, а точности — матрицы, обратные ковариациям.
Prior приносит точность S0−1, данные — точность X⊤X/σ2. Это
дословно многомерная версия сопряжённого обновления из
урока 48, где складывались счётчики бета-распределения.
Обратите внимание на асимметрию: Snне зависит от y. Ширина posterior
определяется тем, где мы измеряли и насколько шумен прибор, но не тем, что
получилось. Это свойство нормальной модели, и оно же делает возможным
планирование эксперимента заранее — к нему мы вернёмся ниже.
Одно измерение на бумаге
Проследим формулы на числах, которые можно проверить в уме. Пусть модель
одномерна: y=xw+ε, шум ε∼N(0,4), prior
w∼N(0,1). Получено одно измерение: x=2, y=6. Точность posterior:
Sn−1=11+σ2x2=1+44=2,Sn=0,5.
Среднее:
mn=Sn⋅σ2xy=0,5⋅42⋅6=1,5.
МНК по одной точке дал бы w=y/x=3. Prior и данные принесли одинаковую
точность (по единице каждый), поэтому ответ встал ровно посередине между нулём
prior и тройкой данных. Никакой мистики: посередине — потому что голоса равны.
Для нового входа x∗=3 средний прогноз равен 4,5. Дисперсия самой линии
составляет x∗2Sn=9⋅0,5=4,5, а будущее наблюдение добавляет ещё
σ2=4:
Var(y∗∣x∗,D)=4,5+4=8,5,8,5≈2,92.
Сообщить одно только 4,5 значит потерять обе причины разброса сразу.
Ridge — это posterior с нормальным prior
Возьмём m0=0, S0=τ2I. Тогда
mn=(X⊤X+τ2σ2I)−1X⊤y,
то есть в точности решение гребневой регрессии из урока 51 с
параметром
λ=τ2σ2.
Это не аналогия, а тождество. На реальном наборе diabetes (442 пациента, 10
стандартизованных признаков, оценка шума σ=54,1) мы прогнали
шестьдесят значений τ и сравнили posterior mean с решением ridge: обе
формулы совпали до машинной точности, максимальное расхождение по всем
коэффициентам и всем τ оказалось меньше 10−8.
Рис. 52.2. Ширина prior — это и есть сила регуляризации
Слева: как меняется posterior mean каждого из десяти коэффициентов при росте
τ. Узкий prior (τ→0) прижимает всё к нулю, широкий (τ→∞)
отпускает к МНК. Справа: шесть самых крупных коэффициентов при τ=10, что
отвечает λ=29,3. Коэффициент bmi почти не двинулся: 24,7→23,9
при собственном стандартном отклонении 3,0 — данные держат его крепко.
А s1 рухнул с −37,7 до −5,4: этот признак сильно коррелирует с
соседними, и данные почти не различают его вклад.
Разница между ridge и байесовской моделью не в точке ответа, а в том, что
байесовская модель отдаёт ещё и Sn. Ridge говорит «наклон 542». Posterior
говорит «наклон 542 плюс-минус 170» — и это совсем другое сообщение
руководителю проекта.
Гаусс вывел метод наименьших квадратов именно как поиск наиболее вероятного
значения при нормальных ошибках — то есть, на нашем языке, как поиск моды
posterior при плоском prior. Байесовская регрессия просто отказывается
выбрасывать всё, кроме моды.
Эллипс незнания: сумма известна, разность — нет
В наборе велопроката есть два почти одинаковых признака: temp (температура) и
atemp (ощущаемая температура). Их корреляция на наших 250 вечерах равна
0,991. Что произойдёт, если подать в модель оба?
Правдоподобие вытянется в узкий гребень: данные хорошо определяют сумму
коэффициентов (потому что признаки почти совпадают и работает именно сумма) и
почти не определяют их разность. Prior круглый, он ограничивает общую норму
вектора. Произведение даёт эллипс покороче гребня, но всё ещё вытянутый.
Рис. 52.3. Prior, likelihood и posterior в пространстве весов
По осям — коэффициенты при temp и atemp (признаки стандартизованы, ответ
центрирован). Круглый prior не имеет любимого направления. Правдоподобие
вытянуто вдоль антидиагонали: отношение полуосей 12,7 — данные различают одно
направление в тринадцать раз хуже другого. Posterior короче (отношение 9,5), но
наклон сохранил: prior укоротил гребень, а не выпрямил его.
Числа таковы: стандартное отклонение posterior вдоль направления суммы
(w1+w2)/2 равно 22 поездкам, а вдоль направления разности
(w1−w2)/2 — 200 поездок, в 9,1 раза больше. Сумма коэффициентов
получилась 129 и определена уверенно; сами коэффициенты по отдельности —
почти нет.
Предсказательное распределение: два слоя незнания
Для нового объекта x∗ прогноз при фиксированных весах равен x∗⊤w.
Усредним по posterior. Линейная функция нормального вектора нормальна, поэтому
x∗⊤w∣D∼N(x∗⊤mn,x∗⊤Snx∗),
а будущее наблюдение добавляет собственный шум:
y∗∣x∗,D∼N(x∗⊤mn,σ2+x∗⊤Snx∗).
Формально это интеграл
p(y∗∣x∗,D)=∫N(y∗∣x∗⊤w,σ2)N(w∣mn,Sn)dw,
и он берётся в явном виде именно потому, что обе части нормальны. Дисперсия
распадается на два слагаемых с разной судьбой:
Второе слагаемое стремится к нулю с ростом числа наблюдений — незнание
поправимо. Первое не исчезает никогда: даже зная веса точно, мы не знаем,
сколько именно человек завтра решит поехать. Это ровно то различие между
интервалом для среднего и интервалом для нового наблюдения, которое мы
разбирали в уроке 46.
Рис. 52.4. Две причины ширины: шум мира и незнание весов
Верхняя панель: синяя полоса — 95% для условного среднего, золотая — 95% для
нового вечера. Нижняя панель: та же дисперсия по слоям. В середине данных
шум мира даёт 86% всей дисперсии, а на холодном краю — только 56%: там
преобладает наше незнание наклона. Половина ширины интервала для нового вечера
при средней температуре равна 234 поездкам, на краю — 290.
Почему веер раскрывается на краю
Запишем предсказательную дисперсию для одномерной модели с центрированным
признаком, ϕ(x)=(1,x−xˉ):
x⊤Snx=S00+2(x−xˉ)S01+(x−xˉ)2S11.
Это парабола по x с минимумом вблизи центра данных. Геометрически всё просто:
прямые из posterior поворачиваются вокруг области наблюдений, как ножницы, и
чем дальше от точки опоры, тем больше расхождение концов. На наших шести
вечерах стандартное отклонение среднего равно 45 поездкам при temp=0,5
и 98 поездкам при temp=0 — веер раскрылся в 2,2 раза.
Лаборатория веера
Веер posterior-прямых, полоса среднего и полоса нового вечера
График шире экрана — листайте по горизонтали →
Загружается живая иллюстрация…
Внутри — те же данные: вечера велопроката из той же выборки 2011 года, только
шестёрка взята другая, поэтому и числа будут другие. Начните с шести точек и
включите режим «полосы и линии»: сорок прямых из posterior наглядно показывают,
что именно скрыто за полосой. Потом растяните ползунок ширины prior: при
τ=25 наклон почти прижат к нулю (модель отказывается верить, что
температура вообще влияет), при τ=800 синяя линия почти ложится на красную
штриховую линию МНК — почти, а не точно: prior конечной ширины никогда не
отпускает оценку до конца.
Увеличьте шум σ: золотая полоса раздувается всюду, а синяя — только
вслед за ростом x⊤Snx. Наконец переключитесь на 12 вечеров и заметьте,
где веер схлопнулся, а где остался: он остаётся там, где нет точек. Щёлкните по
пустому полю слева — вы добавили измерение на холодном краю, и левый край веера
сжался сильнее, чем от точки, добавленной в центре.
Когда σ неизвестна: хвосты Стьюдента
До сих пор σ2 считалась известной. На практике её оценивают по тем же
данным. Сопряжённый выбор — нормально-обратно-гамма prior:
σ2∼InvGamma(a0,b0),w∣σ2∼N(m0,σ2V0).
Posterior остаётся в том же семействе, а предсказательное распределение,
проинтегрированное по σ2, оказывается не нормальным, а
стьюдентовским:
y∗∣x∗,D∼t2an(x∗⊤mn,anbn(1+x∗⊤Vnx∗)).
Смысл прост: сомнение в масштабе шума утяжеляет хвосты. Квантиль 97,5% для
нормального распределения равен 1,96, для t с тремя степенями свободы —
3,18. Подставить одну оценку σ и взять 1,96 — значит сделать вид,
что масштаб известен точно.
Проверка обещания: калибровка интервала
Интервал, который называет себя 95-процентным, обязан накрывать истину в 95
случаях из ста. Это проверяемое утверждение — и его надо проверять. Здесь мы
переходим к явно модельному эксперименту с фиксированным seed: настоящих
данных с известной истиной не бывает, а нам нужна именно известная истина.
Схема: истинная прямая y=1+2x, шум σ=2, всего n=5 наблюдений,
4000 повторов. В каждом повторе строим 95-процентный предсказательный интервал
для нового объекта тремя способами и смотрим, попал ли он.
Модельный эксперимент, 4000 повторов, n=5. Когда σ известна, покрытие
0,954 — обещание выполнено. Если подставить σ и оставить квантиль
1,96, покрытие падает до 0,868: интервал лжёт почти вдвое чаще обещанного.
Квантиль Стьюдента с n−2=3 степенями свободы восстанавливает покрытие
(0,959) ценой ширины: медианная ширина растёт с 8,7 до 14,1.
Вывод общий и выходит далеко за рамки регрессии: если неизвестная величина
влияет на прогноз, её неопределённость нужно либо проинтегрировать, либо
обоснованно показать, что ею можно пренебречь. Подстановка точечной оценки —
это молчаливое утверждение «я знаю это точно», и цена такого утверждения
измеряется в недопокрытии.
Куда поставить седьмое измерение
Раз Sn не зависит от y, можно спросить: если разрешено одно новое
измерение, где его сделать? Добавление точки xn+1 меняет точность на
матрицу ранга один:
Sn+1−1=Sn−1+σ21ϕϕ⊤,ϕ=ϕ(xn+1),
а по формуле Шермана–Моррисона
Sn+1=Sn−σ2+ϕ⊤SnϕSnϕϕ⊤Sn.
Из неё видно: сокращение неопределённости тем больше, чем больше
ϕ⊤Snϕ — то есть чем меньше модель уверена в этой точке. Критерии
выбора называют буквами: D-оптимальность минимизирует detSn+1 (объём
эллипсоида незнания), A-оптимальность — след, G-оптимальность — максимум
предсказательной дисперсии по области.
Рис. 52.6. Планирование эксперимента: критерий указывает на края
Для наших шести вечеров: слева — x⊤Snx, минимум 45 поездок в
середине и 98 на холодном краю. Справа — во сколько раз упадёт detSn после
седьмого измерения в точке x. Измерение на краю (temp=0) снимает 43,7%
объёма незнания, измерение в центре (temp≈0,51) — только 14,0%.
Формальный критерий уверенно гонит нас на границу диапазона.
И тут начинается взрослая часть. Точка с максимальной математической
неопределённостью может быть недоступна, дорога или опасна: temp=0 — это
мороз, в который поездок почти не бывает, а при калибровке химического датчика
предельная концентрация может быть попросту ядовитой. Кроме того, D-оптимальный
план ставит точки только на края — и потому не способен обнаружить кривизну:
по двум кучкам на концах прямая и парабола неразличимы. Оптимальность всегда
оптимальна относительно принятой модели.
Валерий Фёдоров и теория оптимального эксперимента
Идея «модель сама подсказывает, где мерить дальше» превратилась в
математическую дисциплину в 1960–1970-е годы, и большой вклад в неё внесла
московская школа. Валерий Вадимович Фёдоров, работавший тогда на кафедре
математической статистики МГУ, в 1971 году выпустил монографию «Теория
оптимального эксперимента» — книгу, которая уже через год вышла по-английски и
стала одним из самых цитируемых текстов по планированию эксперимента в мире.
Фёдоров придал теории вычислительную форму: он разработал последовательные
алгоритмы построения оптимальных планов, в которых точки добавляются по одной —
каждая туда, где текущий план даёт наибольшую предсказательную дисперсию. Это
буквально та процедура, которую мы только что проделали на правой панели
рисунка 52.6, и её сходимость к оптимальному непрерывному плану опирается на
теорему эквивалентности Кифера–Вольфовица: план D-оптимален тогда и только
тогда, когда максимум ϕ⊤M−1ϕ по области равен числу параметров.
Для нас важно следствие: активное обучение, о котором сегодня говорят в связи с
разметкой данных для нейросетей, — прямой потомок этой теории. Модель не только
отвечает на вопросы, но и предлагает следующий вопрос миру, и предлагает его,
глядя на собственную ковариацию.
От весов к функциям: шаг к гауссовскому процессу
Prior на веса индуцирует распределение на самих функциях. Если
w∼N(0,S0), то для любых двух точек
Cov(f(x),f(x′))=E[x⊤ww⊤x′]=x⊤S0x′.
Заменив исходную координату богатым набором базисных функций из
урока 50, получаем
k(x,x′)=ϕ(x)⊤S0ϕ(x′),
и предсказательные формулы можно переписать через одну лишь функцию k.
Гауссовский процесс делает следующий шаг: задаёт k напрямую, не перечисляя
базис — иногда бесконечный. Модель тогда описывается не «какие признаки», а
«какие точки считать соседними»:
Периодическое ядро связывает одинаковые часы разных суток, гладкое радиальное —
близкие координаты, линейное — похожие направления. И снова вывод тот же, что в
уроке 50: неопределённость зависит не от мира, а от выбранного
представления.
Что писать в отчёте
Полезный отчёт по байесовской регрессии содержит четыре вещи. Первое —
posterior mean коэффициентов с их совместной неопределённостью, а не
таблицу голых чисел: если два признака коррелируют, отдельные стандартные
отклонения обманывают, и лучше показать ковариацию или несколько прямых из
posterior. Второе — предсказательные интервалы, явно разделённые на интервал
для среднего и интервал для нового объекта. Третье — описание prior на
предметном языке («эффект температуры вряд ли превышает несколько сотен
поездок») вместе с анализом чувствительности: как изменится вывод при τ
вдвое больше и вдвое меньше. Четвёртое — проверка воспроизведения структуры
данных: сгенерируйте выборки из предсказательного распределения и сравните их
гистограмму с реальной.
Чего интервал не знает
Байесовская линейная регрессия честна ровно в тех пределах, в которых честны её
допущения. Она предполагает линейность по весам, нормальный шум с постоянной
дисперсией, независимость наблюдений и правильный набор признаков. Каждое из
этих допущений проверяемо: кривизна видна на графике остатков, растущий разброс
требует σ(x) или логарифма ответа, зависимость наблюдений во времени
ломает формулу X⊤X/σ2, а забытый признак не выдаст себя вовсе — его
эффект просто впитается в шум и в веса соседей.
И всё же главное достижение этой главы — смена формы ответа. Мы вышли из урока
с распределением вместо числа. Наклон 542 плюс-минус 170; прогноз на тёплый
вечер 565 поездок с интервалом от 297 до 833; полоса, которая расширяется там,
где мы не смотрели. Такой ответ труднее вставить в презентацию и невозможно
подать как окончательный, но именно он позволяет спросить: достаточно ли мы
знаем, чтобы действовать? В уроке 53 мы посмотрим, что делать,
когда сопряжённых формул нет и posterior приходится добывать численно.