Априорное знание
Начнём с простого вопроса: как нам внести в модель априорные знания.
Представьте, что мы обучаем модель линейной регрессии , . С помощью MLE мы получили некоторую оценку на веса — всякие ли их значения мы встретим с покорностью и смирением? Наверное, мы удивимся, если какие-то компоненты вектора будут очень большими по сравнению с элементами : пожалуй, наша физическая интуиция будет бунтовать против этого, мы задумаемся о том, что из-за потенциальных ошибок сокращения вычисление предсказаний окажутся неточным — в общем, хотелось бы по возможности избежать этого. Но как?
Будь мы приверженцами чисто инженерного подхода, мы бы сделали просто: прибавили бы к функции потерь слагаемое , или , или ещё что-то такое — тогда процедура обучения стала бы компромиссом между минимизацией исходного лосса и этой добавки, что попортило бы слегка близость , но зато позволило бы лучше контролировать масштаб . Надо думать, вы узнали в этой конструкции старую добрую регуляризацию.
Но наша цель — зашить наше априорное знание о том, что компоненты не слишком велики по модулю, в вероятностную модель. Введение в модель априорного знания соответствует введению априорного распределения на . Какое распределение выбрать? Ну, наверное, компоненты будут независимыми (ещё нам не хватало задавать взаимосвязи между ними!), а каждая из них будет иметь какое-то непрерывное распределение, в котором небольшие по модулю значения более правдоподобны, а совсем большие очень неправдоподобны.
Мы знаем такие распределения? Да, и сразу несколько. Например, нормальное. Логично было бы определить
где — какая-то дисперсия, которую мы возьмём с потолка или подберём по валидационной выборке. Отметим, что выбор нормального распределение следует и из принципа максимальной энтропии: ведь у него наибольшая энтропия среди распределений на всей числовой оси с нулевым матожиданием и дисперсией .
Контроль масштаба весов — это, вообще говоря, не единственное, что мы можем потребовать. Например, мы можем из каких-то физических соображений знать, что тот или иной вес в линейной модели непременно должен быть неотрицательным. Тогда в качестве априорного на этот вес мы можем взять, например, показательное распределение (которое, напомним, обладает максимальной энтропией среди распределений на положительных числах с данным матожиданием).
Оцениваем не значение параметра, а его распределение
Раз уж мы начали говорить о распределении на веса , то почему бы не пойти дальше. Решая задачу классификации, мы уже столкнулись с тем, что может быть важна не только предсказанная метка класса, но и вероятности. Аналогичное верно и для задачи регрессии. Давайте рассмотрим две следующих ситуации, в каждой из которых мы пытаемся построить регрессию :
Несмотря на то, что в каждом из случаев «точная формула» или градиентный спуск выдадут нам что-то, степень нашей уверенности в ответе совершенно различная. Один из способов выразить (не)уверенность — оценить распределение параметров. Так, для примеров выше распределения на параметр могли бы иметь какой-то такой вид:
Дальше мы постараемся формализовать процесс получения таких оценок.
Построение апостериорного распределения
Давайте ненадолго забудем про линейную регрессию и представим, что мы подобрали с пола монету, которая выпадает орлом с некоторой неизвестной пока вероятностью . До тех пор, пока мы не начали её подкидывать, мы совершенно ничего не знаем о , эта вероятность может быть совершенно любой — то есть априорное распределение на является равномерным (на отрезке ):
Теперь представим, что мы подкинули её раз, получив результаты ( — решка, — орёл), среди которых решек и орлов. Определённо наши познания о числе стали точнее: так, если мало, то можно заподозрить, что и невелико (уже чувствуете, запахло распределением!).
Распределение мы посчитаем с помощью формулы Байеса:
в нашем случае:
В этом выражении нетрудно узнать бета-распределение: . Давайте нарисует графики его плотности для нескольких конкретных значений и :
Как можно заметить, с ростом мы всё лучше понимаем, каким может быть , при этом если орёл выпадал редко, то пик оказывается ближе к нулю, и наоборот. Ширина пика в каком-то смысле отражает нашу уверенность в том, какими могут быть значения параметра, и не случайно чем больше у нас данных — тем уже будет пик, то есть тем больше уверенности.
Распределение параметра, полученное с учётом данных, называется апостериорным. Переход от априорного распределения к апостериорному отражает обновление нашего представления о параметрах распределения с учётом полученной информации, и этот процесс является сердцем байесовского подхода. Отметим, что если нам придут новые данные , в которых решек и орлов, мы сможем ещё раз обновить распределение по той же формуле Байеса:
Вопрос на подумать. Пусть — нормальное распределение с фиксированной дисперсией , а для параметра в качестве априорного выбрано также нормальное распределение . Каким будет апостериорное распределение при условии данных ?
Ответ (не открывайте сразу; сначала подумайте сами!)
С точностью до множителей, не зависящих от , это экспонента квадратичной формы, то есть распределение будет нормальным. Давайте найдём его параметры. Для этого нам нужно выделить в показателе полный квадрат:
Обозначим
Теперь уже хорошо видно, что получилось нормальное распределение с параметрами
Формулы жутковатые, но проинтерпретировать их можно. Например, мы видим, что появление больших будет сдвигать среднее, а дисперсия уменьшается с ростом .
Сопряжённые распределения
В двух предыдущих примерах нам очень сильно повезло, что апостериорные распределения оказались нашими добрыми знакомыми. Если же взять случайную пару распределений и , результат может оказаться совсем не таким приятным.
В самом деле, нет никакой проблемы в том, чтобы посчитать числитель формулы Байеса, но вот интеграл в знаменателе может и не найтись. Поэтому выбирать распределения нужно с умом. Более того, поскольку апостериорное распределение само станет априорным, когда придут новые данные, хочется, чтобы априорное и апостериорное распределения были из одного семейства; пары (семейств) распределений и , для которых это выполняется, называются сопряжёнными называется сопряжённым к . Полезно помнить несколько наиболее распространённых пар сопряжённых распределений:
- — распределение Бернулли с вероятностью успеха , — бета распределение;
- — нормальное с матожиданием и фиксированной дисперсией , также нормальное;
- — показательное с параметром , — гамма распределение;
- — пуассоновское с параметром , — гамма распределение;
- — равномерное на отрезке , — Парето;
Возможно, вы заметили, что почти все указанные выше семейства распределений (кроме равномерного и Парето) относятся к экспоненциальному классу. И это не случайность! Экспоненциальный класс и тут лучше всех: оказывается, что для из экспоненциального класса можно легко подобрать сопряжённое . Давайте же это сделаем.
Пусть имеет вид
Положим
где — множитель, обеспечивающий равенство единице интеграла от этой функции. Найдём апостериорное распределение:
Это распределение действительно из того же семейства, что и , только с новыми параметрами:
Пример. Пусть подчиняется распределению Бернулли. Напомним, что оно следующим образом представляется в привычном для экспоненциального класса виде:
Предлагается брать априорное распределение вида
Тогда апостериорное распределение будет иметь вид (проверьте, посчитав по формуле Байеса!)
Превратив логарифм частного в сумму, а экспоненту суммы в произведение, легко убедиться, что получается то самое бета распределение, которое мы уже получали выше.
Оценка апостериорного максимума (MAP)
Апостериорное распределение — это очень тонкий инструмент анализа данных, но иногда надо просто сказать число (или же интеграл в знаменателе не берётся и мы не можем толком посчитать распределение). В качестве точечной оценки логично выдать самое вероятное значение (интеграл в знаменателе от не зависит, поэтому на максимизацию не влияет):
Это число называется оценкой апостериорного максимума (MAP).
Если же в формуле выше перейти к логарифмам, то мы получим кое-что, до боли напоминающее старую добрую регуляризацию (и не просто так, как мы вскоре убедимся!):
Пример. Рассмотрим снова распределение Бернулли и априорное распределение . Тогда MAP-оценка будет равна
Дифференцируя по и приравнивая производную к нулю, мы получаем
В отличие от оценки максимального правдоподобия мы здесь используем априорное знание: параметры и работают как «память о воображаемых испытаниях», как будто бы до того, как получить данные , мы уже имели успехов и неудач.
Связь MAP- и MLE-оценок
Оценка максимального правдоподобия является частным случаем апостериорной оценки.
В самом деле, если априорное распределение является равномерным, то есть не зависит (если веса вещественные, могут потребоваться дополнительные усилия, чтобы понять, как такое вообще получается), и тогда
Байесовские оценки для условных распределений
В предыдущих разделах мы разобрали, как байесовский подход работает для обычных, не условных распределений. Теперь вернёмся к чему-то более близкому к машинному обучению, а именно к распределениям вида , и убедимся, что для них байесовских подход работает точно так же, как и для обычных распределений.
Имея некоторое распределение , мы подбираем для него априорное распределение на веса (и да, оно не зависит от : ведь априорное распределение существует ещё до появления данных) и вычисляем апостериорное распределение на веса:
Вычислять его мы будем по уже привычной формуле Байеса:
Повторим ещё разок, в чём суть байесовского подхода: у нас было некоторое априорное представление о распределении весов , а теперь, посмотрев на данные , мы уточняем своё понимание, формулируя апостериорное представление .
Если же нам нужна только точечная оценка, мы можем ограничиться оценкой апостериорного максимума (MAP):
что уже до неприличия напоминает регуляризованную модель
Пример: линейная регрессия с -регуляризацией как модель с гауссовским априорным распределением на веса
В модели линейной регрессии , введём априорное распределение на веса вида
Тогда — точка минимума следующего выражения:
Получается, что
а это же функция потерь для линейной регрессии с -регуляризацией! Напомним на всякий случай, что у этой задачи есть «точное» решение
Для этого примера мы можем вычислить и апостериорное распределение . В самом деле, из написанного выше мы можем заключить, что
Таким образом, — это квадратичная функция от , откуда следует, что апостериорное распределение является нормальным. Чтобы найти его параметры, нужно немного преобразовать полученное выражение:
Таким образом,
Как видим, от априорного распределения оно отличается корректировкой как матожидания , так и ковариационной матрицы . Отметим, что — это, с точностью до численного множителя, оценка ковариационной матрицы признаков нашего датасета (элементы матрицы — это скалярные произведения столбцов , то есть столбцов значений признаков).
Иллюстрация. Давайте на простом примере (датасет с двумя признаками) посмотрим, как меняется апостериорное распределение с ростом размера обучающей выборки:
Как видим, не только мода распределения, то есть приближается к своему истинному значению, но и дисперсия распределения постепенно уменьшается.
Ещё иллюстрация. Теперь рассмотрим задачу аппроксимации неизвестной функции одной переменной (чьи значения в обучающей выборке искажены нормальным шумом) многочленом третьей степени. Её, разумеется, тоже можно решать, как задачу линейной регрессии на коэффициенты многочлена. Давайте нарисуем, как будут выглядеть функции, сгенерированные из распределения для разного объёма обучающей выборки:
Тут тоже видим, что функции не только становятся ближе к истинной, но и разброс их уменьшается.
Пример: линейная регрессия с -регуляризацией как модель с лапласовским априорным распределением на веса
Другое распределение, которое тоже может кодировать наше желание, чтобы небольшие по модулю значения были правдоподобными, а большие не очень, — распределение Лапласа. Посмотрим, что будет, если его взять в качестве априорного распределения на веса.
Проводя такое же вычисление, получаем, что
а это же функция потерь для линейной регрессии с -регуляризацией!
Как делать предсказания
Все изложенные выше рассуждения проводились в ситуации, когда — обучающая выборка. Для неё мы можем посчитать
и точечную апостериорную оценку . А теперь пусть нам дан новый объект . Какой таргет мы для него предскажем?
Было бы естественным, раз уж мы предсказываем распределение для , и для тоже предсказывать распределение. Делается это следующим образом:
Надо признать, что вычисление этого интеграла не всегда посильная задача, поэтому зачастую приходится «просто подставлять ». В вероятностных терминах это можно описать так: вместо сложного апостериорного распределения мы берём самое грубое на свете приближение
где — дельта-функция, которая не является честной функцией (а является тем, что математики называют обобщёнными функциями), которая определяется тем свойством, что для достаточно разумных функций . Если не мудрствовать лукаво, то это всё значит, что
Пример. Пусть , — модель линейной регрессии с априорным распределением на параметры. Тогда, как мы уже видели раньше,
Попробуем для новой точки посчитать распределение на . Рекомендуем читателю попробовать самостоятельно посчитать интеграл или же обратиться к пункту 7.6.2 книжки «Machine Learning A Probabilistic Perspective» автора Kevin P. Murphy, убедившись, что
что, очевидно, более содержательно, чем оценка, полученная с помощью приближения :
Собственно, видно, что в этом случае
Пример в примере. Рассмотрим полюбившуюся уже нам задачу приближения функции многочленом степени не выше (в которой мы строим модели с ). Для мы получали такую картинку:
Если оценить по приведённым выше формулам для разных , то можно убедиться, что модель в большей степени уверена в предсказаниях для точек из областей, где было больше точек из обучающей выборки:
Байесовский подход и дообучение моделей
До сих пор мы в основном рассуждали о моделях машинного обучения как о чём-то, что один раз обучается и дальше навсегда застывает в таком виде, но в жизни такое скорее редкость. Мы пока не будем обсуждать изменчивость истинных зависимостей во времени, но даже если истина неизменна, к нам могут поступать новые данные, которые очень хотелось бы использовать для дообучения модели.
Обычные, не байесовские вероятностные модели не предоставляют таких инструментов. Оценку максимального правдоподобия придётся пересчитывать заново (хотя, конечно, можно схитрить, использовав старое значение в качестве начального приближения при итеративной оптимизации). Байесовский же подход позволяет оформить дообучения в виде простой и элегантной формулы: при добавлении новых данных имеем
Байесовский подход к выбору модели: мотивация
Нам часто приходится выбирать: дерево или случайный лес, линейная модель или метод ближайших соседей; да, собственно, и внутри наших вероятностных моделей есть параметры (скажем, дисперсия шума и ), которые надо бы подбирать. Но как?
В обычной ситуации мы выбираем модель, обученную на выборке в зависимости от того, как она себя ведёт на валидационной выборке (сравниваем правдоподобие или более сложные метрики) — или же делаем кросс-валидацию. Но как сравнивать модели, выдающие распределение?
Ответим вопросом на вопрос: а как вообще сравнивать модели? Назначение любой модели — объяснять мир вокруг нас, и её качество определяется именно тем, насколько хорошо она справляется с этой задачей. Тестовая выборка — это хороший способ оценки, потому что она показывает, насколько вписываются в модель новые данные. Но могут быть и другие соображения, помогающие оценить качество модели.
Пример №1
Аналитик Василий опоздал на работу. Своему руководителю он может предложить самые разные объяснения — и это будет выработанная на одном обучающем примере модель, описывающая причины опоздания и потенциально позволяющая руководителю принять решение о том, карать ли Василия.
Конечно, руководитель мог бы принять изложенную Василием модель к сведению, подождать, пока появятся другие опоздавшие, и оценить её, так скажем, на тестовой выборке, но стоит ли? Давайте рассмотрим несколько конкретных примеров:
-
Модель «Василий опоздал, потому что так получилось», то есть факт опоздания — это просто ни от чего не зависящая случайная величина. Такая модель плоха тем, что (а) не предлагает, на самом деле, никакого объяснения тому факту, что Василий опоздал, а его коллега Надежда не опоздала и (б) совершенно не помогает решить, наказывать ли за опоздание. Наверное, такое не удовлетворит руководителя.
-
Модель «Василий опоздал, потому что рядом с его домом открылся портал в другой мир, где шла великая битва орков с эльфами, и он почувствовал, что просто обязан принять в ней участие на стороне орков, которых привёл к победе, завоевав руку и сердце орочьей принцессы, после чего был перенесён обратно в наш скучный мир завистливым шаманом». Чем же она плоха? Битва с эльфами — это, безусловно, важное и нужное дело, и на месте руководителя мы бы дружно согласились, что причина уважительная. Но заметим, что в рамках этой модели можно объяснить множество потенциальных исходов, среди которых довольно маловероятным представляется наблюдаемый: тот, в котором Василий не погиб в бою, не остался со своей принцессой и не был порабощён каким-нибудь завистливым шаманом. Отметим и другой недостаток этой модели: её невозможно провалидировать. Если в совершенно случайной модели можно оценить вероятность опоздания и впоследствии, когда накопятся ещё примеры, проверить, правильно ли мы её посчитали, то в мире, где открываются порталы и любой аналитик может завоевать сердце орочьей принцессы, возможно всё, и даже если больше никто не попадёт в такую ситуацию, Василий всё равно сможет бить себя в грудь кулаком и говорить, что он избранный. Так что, наверное, это тоже не очень хорошая модель.
-
Модель «Василий опоздал, потому что проспал» достаточно проста, чтобы в неё поверить, и в то же время даёт руководителю возможность принять решение, что делать с Василием.
Пример №2
Обратимся к примеру из машинного обучения. Сравним три модели линейной регрессии:
Даже и не запрашивая тестовую выборку, мы можем сделать определённые выводы о качестве этих моделей. Средняя (квадратичная) явно лучше левой (линейной), потому что она лучше объясняет то, что мы видим: тот факт, что облако точек обучающей выборки выглядит вогнутым вниз.
А что с правым, почему мы можем утверждать, что он хуже? Есть много причин критиковать его. Остановимся вот на какой. На средней картинке у нас приближение квадратичной функцией, а на правой — многочленом довольно большой степени (на самом деле, десятой). А ради интереса: как выглядит график квадратичной функции и как — многочлена десятой степени со случайно сгенерированными коэффициентами? Давайте сгенерируем несколько и отметим их значения в точках обучающей выборки:
Обратите внимание на масштаб на графиках справа. И какова вероятность, что нам достался именно тот многочлен десятой степени, у которого значения в обучающих точках по модулю в пределах сотни? Очевидно, она очень мала. Поэтому мы можем сказать, что выбор в качестве модели многочлена десятой степени не очень обоснован.
Попробуем резюмировать
Слишком простая модель плохо объясняет наблюдаемые нами данные, тогда как слишком сложная делает это хорошо, но при этом описывает слишком многообразный мир, в котором имеющиеся у нас данные оказываются уже слишком частным случаем. В каком-то смысле наш способ выбора модели оказывается переформулировкой бритвы Оккама: из моделей, пристойно описывающих наблюдаемые явления, следует выбирать наиболее минималистичную.
Байесовский подход к выбору модели: формализация
Пусть у нас есть некоторое семейство моделей и для каждого задана какая-то своя вероятностная модель. В духе байесовского подхода было бы оценить условное распределение моделей
и в качестве наилучшей модели взять её моду. Если же считать все модели равновероятными, то мы сводим всё к максимизации только лишь :
Величина называется обоснованностью (evidence, marginal likelihood) модели.
Отметим, что такое определение вполне согласуется с мотивацией из предыдущего подраздела. Слишком простая модель плохо описывает наблюдаемые данные, и потому будет отвергнута. В свою очередь, слишком сложная модель способна описывать гораздо большее многообразие явлений, чем нам было бы достаточно. Таким образом, компромисс между качеством описания и сложностью и даёт нам оптимальную модель.
Пример
Вернёмся к нашей любимой задаче аппроксимации функции одной переменной многочленом небольшой степени по нескольким точкам, значение в которых было искажено нормальным шумом. Построим несколько моделей, приближающих многочленом степени не выше некоторого (будет принимать значения 1, 3 и 6), положив в вероятностной модели .
Мы не будем приводить полный вывод обоснованности для задачи регрессии , а сразу выпишем ответ:
Посмотрим, какой будет обоснованность для разного числа обучающих точек:
Можно убедиться, что для регрессии по двум точкам наиболее обоснованная — линейная модель (и неудивительно), тогда как с ростом числа точек более обоснованной становится модель с многочленом третьей степени; слишком сложная же модель шестой степени всегда плетётся в хвосте.
Аппроксимация обоснованности и байесовский информационный критерий
Точно вычислить обоснованность может быть трудной задачей (попробуйте проделать это сами хотя бы для линейной регрессии!). Есть разные способы посчитать её приближённо; мы рассмотрим самый простой.
Напомним, что
Воспользуемся приближением Лапласа, то есть разложим (как функцию от ) вблизи своего максимума, то есть вблизи в ряд Тейлора:
где линейный член отсутствует, поскольку разложение делается в точке локального экстремума, а — знакомая нам матрица Фишера .
Далее, мы можем с точностью до второго порядка приблизить . Получается, что
Несмотря на то, что и , сгруппированные нами во «всякие штуки», существенным образом зависят от модели, при больших они вносят в показатель гораздо меньше вклада, чем первые два слагаемых. Таким образом, мы можем себе позволить вместо трудновычисляемых использовать для сравнения модели $ \color{blue} { \mbox{байесовский информационный критерий (BIC)}:} $
Фреквентисты против байесиан: кто кого?
Мы с вами познакомились с двумя парадигмами оценивания:
- фреквентистской (frequentist, от слова "frequency", частота) — в которой считается, что данные являются случайным (настоящая случайность!) семплом из некоторого фиксированного распределения, которое мы стараемся оценить по этому семплу, и
- байесовской — в которой данные считаются данностью и в которой мы используем данные для обновления наших априорных представлений о распределении параметров (здесь случайности нет, а есть лишь нехватка знания).
У обеих есть свои достоинства и недостатки, поборники и гонители. К недостаткам байесовской относится, безусловно, её вычислительная сложность: возможно, вы помните, в пучину вычислений сколь мрачных нас низвергла банальная задача линейной регрессии, и дальше становится только ещё трудней. Если мы захотим байесовский подход применять к более сложным моделям, например, нейросетям, нам придётся прибегать к упрощениям, огрублениям, приближениям, что, разумеется, ухудшает наши оценки. Но, если простить ему эту вынужденную неточность, он логичнее и честней, и мы продемонстрируем это на следующем примере.
Одно известное свойство оценки максимального правдоподобия — асимптотическая нормальность. Если оценивать наши веса по различным наборам из обучающих примеров, причём считать, что наборы выбираются случайно (не будем уточнять, как именно), то оценка тоже превращается в случайную величину, которая как-то распределена. Теория утверждает, что при
где — истинное значение весов, а — матрица информации Фишера, которая определяется как
что при некоторых не слишком обременительных ограничениях равно
При этом поскольку , матрица тоже распадается в сумму, и получается, что , то есть с ростом ковариация оценки максимального правдоподобия стремится к нулю.
На интуитивном уровне можно сказать, что матрица информации Фишера показывает, сколько информации о весах содержится в .
Поговорим о проблемах. В реальной ситуации мы не знаем и тем более не можем посчитать матрицу Фишера, то есть мы с самого начала вынуждены лукавить. Ясно, что вместо можно взять просто , а вместо — матрицу , которую можно даже при желании определить как
безо всякого математического ожидания. Итак, хотя мы можем теперь построить доверительный интервал для оцениваемых параметров, по ходу нами было сделано много упрощений: мы предположили, что асимптотическая оценка распределения уже достигнута, от перешли к , а для полноты чувств ещё и избавились от математического ожидания. В байесовском подходе мы такого себе не позволяем.
Если вам интересно, посмотрите, как это будет выглядеть для линейной регрессии.
Рассмотрим модель линейной регрессии , . Для неё
Нетрудно убедиться, что
Соответственно,
где — это полученная по датасету оценка весов. Заметим, что — это с точностью до коэффициента оценка ковариационной матрицы признаков нашего датасета (элементы — это скалярные произведения столбцов , то есть столбцов признаков). Можно легко убедиться, что
По-хорошему, нам надо было бы ещё взять математическое ожидание. Найти его мы не можем, но можем очень наивно оценить как . Тогда получаем, что . Таким образом, имея один датасет и одну посчитанную по нему оценку , мы можем довольно грубо оценить распределение оценок максимального правдоподобия для заданного как
Пример в примере. Давайте рассмотрим задачу аппроксимации функции одной переменной (чьи значения в обучающей выборке искажены нормальным шумом) многочленом степени не выше . Положим в вероятностной модели . Тогда различный выбор обучающих датасетов будет приводить к различным результатам:
Но разброс результатов падает с ростом .
Ещё пример в примере. Рассмотрим ещё одну задачу регрессии с двумя признаками (в которой всё так же будем полагать ), для которой оценим распределение через первую компоненту для одного конкретного и нарисуем несколько различных , полученных из других датасетов той же мощности:
Видим, что средние оцененного распределения сходятся к истинному значению ; при этом дисперсия падает. Красные крестики не вполне подчиняются синему распределению, но мы от них ждём лишь приближённой согласованности, которая имеет место.