Байесовский подход

В этом посте расскажем о формуле Байеса и её применении в машинном обучении. С этого года я буду читать много всяких новых курсов, в том числе, потоковый курс по «Машинному обучению и анализу данных» на факультете ВМК МГУ. Поэтому сейчас пребываю в поисках правильных формы/объёма/манеры подачи материала (чтобы не сильно лезть в теорию, но дать представление, зачем теория нужна). Постарался сделать максимально доступно, но предварительные знания по терверу нужны…

Bayes.jpg

Формула Байеса хорошо известна из курса теории вероятностей и математической статистики и позволяет пересчитывать условную вероятность (или плотность) P(A|B) через P(B|A), см. рис. 1.

формула Байеса.jpg
Рис. 1. Формула Байеса.

Прежде чем читать дальше полезно посмотреть этот небольшой пост, содержащий решение задачи «Тест на болезнь «зеленуху» имеет вероятность ошибки 0.1 (как позитивной, так и негативной), зеленухой болеет 10% населения. Какая вероятность того, что человек болен зеленухой, если у него позитивный результат теста (т.е. тест говорит «болен»)?» (а лучше попробовать самостоятельно решить эту задачу и потом проверить себя).

Кстати, задача решается очень просто графически, на рис. 2 показано множество всех людей в виде квадрата: левая часть (90%) — здоровые, правая часть (10%) — больные. Верхняя часть (90%) — те, у кого тест показывает верный результат, нижняя часть (10%) — те, у кого тест обманывает.

grafika.png
Рис. 2. Графическое решение задачи о зеленухе.

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

Как видите, очень простое графическое решение — без всяких формул. На самом деле, почти все задачи в теории вероятностей можно решать вот так — на картинках, поскольку теория вероятностей — это часть теории меры, т.е. о том, как измерять «объём» множества, и если это множество умело изобразить, то и ответ будет понятен.

Оптимальное решение задач классификации

Предположим, что в задаче классификации на K классов мы знаем такие вероятности

f1

вероятности принадлежности к классам (conditional class probabilities), т.е. вероятности того, что объект принадлежит классу k при условии, что его признаковое описание x. Тогда очевидно, что для решения задачи классификации надо просто выбрать максимальную вероятность! Именно это и делает байесовский классификатор. Кстати, P может быть и плотностью (для них всё аналогично и даже формула Байеса верна, и дальше мы будем их часто «путать»).

Но как же вычислить указанные вероятности? Давайте воспользуемся формулой Байеса…

f2.png

искомая вероятность выражается через априорную вероятность (prior probability) класса P(y=k) (смысл очевиден — если дан случайный объект, то с какой вероятностью он принадлежит классу k) и вероятность / плотность (density) распределения объектов класса P(x|y=k).

Смысл P(x|y=k) тоже понятен: если мы будем рассматривать только объекты класса k, то они как-то распределены… дискретное распределение описывается вероятностями, а непрерывное — плотностями. Здесь как раз стоит одна из таких функций, в которую мы подставили x (признаковое описание).

В знаменателе формулы стоит P(x) — это уже вероятность / плотность распределения всех объектов, но, по сути, она нам не очень нужна: выбор максимальной вероятности принадлежности к классам не зависит от этого значения.

Посмотрим на рис. 3 — розовая и синяя линии изображают плотности распределения двух классов в однопризнаковой задаче. Они могут быть заданы изначально, а могут быть восстановлены по данным (возможно, с некоторыми априорными предположениями, например, что данные распределены нормально). Если бы классы были равновероятны, то точки пересечения линий определяли бы «разделяющие поверхности классов» (да, у нас одномерное пространство, поэтому точки тут это «поверхности»).

f3.png
Рис. 3. Плотности распределения в классах.

Но если классы не равновероятны, то эти самые вероятности классов по формуле Байеса «масштабируют» наши плотности и смещают разделяющие поверхности, см. рис. 4:

f4.png
Рис. 4. Разделяющие точки для неравновероятных классов.

Можно подробно рассмотреть случай однопризнаковой задачи бинарной классификации с нормальными распределениями классов:

ff5.png

Здесь знак «<>» означает сравнение с целью определения максимального значения и классификации. В итоге (после логарифмирования) всё свелось к неравенству порядка не выше 2 (старшая степень при x). Если дисперсии распределений обоих классов равны, то для классификации мы будем значение признака просто сравнивать с порогом, что согласуется с рис. 5.

f6
Рис. 5. Разделяющая точка в случае равных дисперсий.

Если дисперсии различны, то обязательно получится неравенство 2го порядка и здесь разделяющая поверхность состоит из 2х точек (см. рис. 4) или ни одной… если неравенство не имеет решения или решение — вся числовая прямая (это соответствует ситуации, когда какой-то класс очень редкий — вероятность принадлежности к нему близка к нулю).

Кстати, если классы равновероятны и нормально распределены с одинаковой дисперсией, то разделяющая поверхность — точка, которая является средним арифметическим матожиданий классов.

f7.png
Рис. 6. Разделяющая точка в случае равновероятных классов и одинаковых дисперсий.

Аналогично можно рассмотреть двухпризнаковую задачу бинарной классификации. Там разделяющие поверхности не сложнее поверхностей 2-го порядка, т.е. в этом случае байесовский классификатор также разделяет классы достаточно простыми поверхностями.

В различных библиотеках алгоритмов машинного обучения Вы встретите, скорее всего, реализацию наивного байесовского классификатора (naive Bayes). Связано это со сложностью оценки плотностей. Вероятность класса можно оценить пропорцией, в которой представители этого класса есть в обучающей выборке. А вот плотность распределения в классе в многомерном пространстве сложно оценить надёжно из-за проклятия размерности. Поэтому делают сильное предположение, что все признаки независимы, тогда плотность представляется в виде произведения плотностей по отдельным признакам:

f8

Не смотря на то, что предположение сильное и на практике почти никогда не выполняется (если Вы сами не преобразуете признаки), метод часто работает неплохо… почему? Потому что поиск решения в классе простых решений — хороший способ борьбы с переобучением;)

Метод максимального правдоподобия (MLE)

Прежде чем описывать байесовский подход, вспомним самый популярный метод оценивания параметров в математической статистике — метод максимального правдоподобия. Если есть плотность (вероятность) распределения p(y|θ), известная с точностью до параметра θ, то для его оценки надо максимизировать функцию правдоподобия — произведение значений вероятностей в элементах нашей выборки (предполагаем, что они независимые и распределены по p(y|*), * — неизвестное нам истинное значение параметра θ):

f10.png

Точка, в которой правдоподобие достигает максимального значения называется оценкой максимального правдоподобия (MLE = Maximum Likelihood Estimation). Кстати, будем держать в уме, что параметр θ может быть вектором (т.е. это параметры).

f11.png
Рис. 7. Оценка максимального правдоподобия.

Приведём в качестве примера проблему нечестной монетки (coin-toss problem). Пусть кто-то бросает монету и мы наблюдаем исходы: 1 — выпал орёл, 0 — выпала решка. Наша задача оценить вероятность выпадения орла. Предполагая, что наблюдаемая случайная величина подчиняется распределению Бернулли, получаем:

f12.png

Здесь вместо максимизации правдоподобия применили стандартный приём — максимизацию его логарифма. Максимум ищется просто приравниванием к нулю производной (функция вогнута). Я опускаю некоторые довольно простые выкладки. Получили достаточно очевидный ответ: оценка параметра распределения Бернулли (который и является вероятностью выпадения орла) — среднее арифметическое наблюдаемых случайных величин, т.е. доля выпадения орла.

Отметим недостатки полученной оценки:

  • ненадёжность при малом числе экспериментов и явная склонность к переобучению (например, если после двух бросков выпали два орла, то мы утверждаем, что вероятность равна 1).
  • отсутствие возможности внести некоторую дополнительную информацию (например, до бросков мы знаем, что у этой монеты орёл выпадает чаще)

А теперь подход, который одним махом исправит все эти недостатки;)

Байесовский подход

Перепишем формулу Байеса в терминах задачи моделирования данных и приведём нужные термины:

f9.png

Наша задача найти некоторый параметр θ (параметр(ы) нашей модели), у нас есть априорная плотность распределения (prior) этого параметра p(θ) , мы наблюдаем данные D, p(D)вероятность данных (evidence), как видно выполняет роль нормировки, чтобы слева получалась плотность. p(D|θ)правдоподобие (likehood), p(θ|D)апостериорная плотность распределения (posterior). Для дискретных распределений плотности заменяются вероятностями, а интеграл суммой.

Апостериорная плотность именно то, что нам и нужно после наблюдения данных D. С помощью формулы Байеса мы видим, как наша априорная плотность (до наблюдения данных) превращается в апостериорную. Важно сразу понять, что формулу можно применять итерационно после поступления каждой новой порции данных. Текущее распределение параметра считается априорным, поступили данные — получили апостериорное распределение, потом, при необходимости, оно становится априорным для нового применения формулы.

Посмотрим, что даст применение байесовского подхода в задаче с монеткой… Допустим, у нас нет никаких априорных знаний о монетке, тогда считаем, что априорное распределение параметра равномерное p(θ)=1 на отрезке [0, 1]. Напомним, что это параметр распределения Бернулли и одновременно вероятность выпадения орла. Если был произведён ровно один бросок и выпал орёл, то правдоподобие p(y|θ) = θ. На рис. 8 показаны априорное распределение, правдоподобие и их произведение, нормированное так, чтобы получилась плотность (площадь под кривой равнялась единице): 1·θ / 0.5.

f13.png
Рис. 8. Превращение априорного распределения в апостериорное после выпадения орла.

Теперь пусть наше априорное распределение это полученное апостериорное p(θ) = 2θ, т.е. мы верим, что скорее монета выпадает орлом, а не решкой. Пусть опять сделан ровно один бросок и выпала решка, тогда функция правдоподобия p(y|θ) = 1-θ, после применения формулы Байеса (перемножения и нормировки) получили апостериорную плотность p(θ|y) =6θ(1-θ)

f14.png
Рис. 9. Превращение априорного распределение в апостериорное после выпадения решки.

Уже видно фундаментальное отличие от MLE, которое является характерным для байесовского подхода. В MLE мы получаем конкретное значение параметра, а здесь — работаем с распределениями и в итоге получаем апостериорное распределение на значение нашего параметра.

Как ответить, какая вероятность выпадения орла? Мы получили целое распределение на возможных значениях этой вероятности. Можно найти моду (точку, в которой она максимальна) — это метод максимизации апостериорной плотности (MAP = Maximum a Posteriori). На рис. 9 это 0.5, что вполне логично после двух бросков и одного выпавшего орла. Давайте прологарифмируем формулу Байеса и запишем задачу максимизации:

f15.png

(максимизация производится по θ, мы удалили слагаемое, которое от него не зависит).

Видно, что метод MAP максимизирует логарифм правдоподобия (как и MLE) плюс логарифм априорного распределения. Второе слагаемое играет роль своеобразного регуляризатора, которое позволяет не переобучаться (ниже покажем почему).

Задача с монеткой и MAP

Предположим, что априорное распределение на значения оцениваемого параметра распределения Бернулли — бета-распределение:

f16

Если вдруг Вам показалось такое предположение странным и/или Вы вообще до этого не работали с бета-распределением, боитесь гамма-функций (но они тут только для вычислений нормировочных констант), то подождите немного, дальше будет понятно, почему выбрано именно оно. Пока скажем, что это довольно большой класс распределений, на рис. 10 показаны некоторые его представители

f17.png
Рис. 10. Представители семейства бета-распределений.

Запишем выражение для максимизации методом MAP, возьмём производную и приравняем к нулю:

f18.png

Интересно, что при α=β=1 оценки MLE и MAP совпадают. Если же α+β>2 и эти параметры целые, то по-сути они играют роль фиктивных экспериментов в количестве α+β-2 штук, в которых выпал α1 орёл. Теперь оценка параметра будет адекватнее вести себя при малом числе экспериментов! Кстати, такая оценка часто называется сглаживанием Лапласа.

Почему же мы взяли бета-распределение? Всё дело в том, что если функцию правдоподобия для распределения Бернулли умножить на плотность бета-распределения, то мы снова получим бета-распределение:

f19.png

Таким образом, мы не просто переходим от априорного распределения к апостериорному, а ещё и остаёмся в одном классе распределений! Да и вообще, все формулы красиво аналитически считаются… Распределения, которые не выводят из класса априорного распределения (как здесь Бернулли и бета), называются сопряжёнными.

С помощью бета-распределений удобно формализовать свою веру в то, что вероятность имеет определённое значение. Как мы видели, это вера будет просто эквивалентна серии фиктивных бросков. На рис. 11 показано несколько функций, которые формализуют априорную информацию о том, что θ=2/3.

f20.png
Рис. 11. Представители бета-распределения с центром в точке 2/3.

Обоснование регуляризации

Вспомним статистическую теорию линейной регрессии. Пусть нам известно, что целевая переменная зависит от других линейно с точностью до нормального шума:f1

Тогда можно искать коэффициенты с помощью MLE:

f2

Задача максимизации логарифма правдоподобия обучающей выборке свелась к минимизации квадратичной ошибки, что, собственно, обосновывает использование этой функции ошибки в задачах регрессии.

Теперь давайте применим байесовский подход. До наблюдения обучающей выборки мы ничего не знаем о нашей модели, но мы можем сформулировать наши пожелания. Например, пусть неизвестные (а, следовательно, случайные) коэффициенты линейной регрессии будут нормально распределены:

f3

Тогда

f4

В задаче минимизации мы оставили только слагаемые, которые зависят от w. Здесь легко узнаётся формула, которая используется в ридж-регрессии. Первое слагаемое — квадратичная ошибка, второе — член L2-регуляризации. Как мы и обещали, логарифм априорного распределения играет роль регуляризатора. Таким образом, мы доказали корректность регуляризации (фактически вывели её) в рамках рассматриваемых ограничений.

f5
Рис. 12. Априорные и апостериорные распределения в задаче регрессии.

На рис. 12 показано, как априорная плотность «оттягивает» решение задачи MAP к нулю. MLE получает нерегуляризованное решение. С точки зрения байесовского подхода, регуляризация — априорное распределение параметров.

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

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

Итак, байесовский подход теоретически обосновывает регуляризацию (мы привели один пример, но примеров много), придаёт используемым параметрам теоретический смысл.

Байесовский подход к машинному обучению

До сих пор мы говорили о нахождении параметров модели, т.е. фактически о машинном обучении (как известно, сама процедура обучения и есть не что иное, как настройка параметров). Вместо одного значения параметра мы научились находить целое распределение на множестве значений. Что с ним делать дальше, когда потребуется сделать классификацию (или регрессию) новых объектов? Итак, по формуле Байеса, в случае, когда у нас есть обучающая выборка (X, Y), мы получили распределение параметров

f7b.png

Если со штрихами обозначить тестовый объект, то

f21

Здесь интегрирование проводится по распределению параметра модели w. Получается своеобразный ансамбль: мы используем модель сразу при всех значениях параметра! Правда, такое интегрирование не всегда удаётся выполнить, поэтому вместо него используют модель с параметром, который получается с помощью MAP-оценки:

f9b

Предположим, что параметр w сам, в свою очередь, зависит от некоторого параметра α. Тогда надо определить значение α. Воспользуемся опять формулой Байеса:

f22

Правдоподобие параметра α

f23

называется обоснованностью (evidence) — интегрированием мы просто исключаем переменную w. Принцип максимальной обоснованности состоит в том, чтобы найти значение параметра

f24.png

и потом при классификации / регрессии использовать его. Именно так выводится метод Relevance Vector Machine (RVM). Метод похож на SVM, но вместо опорных векторов, которые находятся на границе классов, здесь решение зависит от «релевантных векторов», которые находятся «внутри класса». Часто это преподносится как большой плюс: при моделировании мы смотрим не на пограничные случаи, а на типичные. Желающие могут почитать классическую работу Типпинга (у которой уже почти 1000 цитирований).

Итак, байесовский подход позволяет получать новые методы машинного обучения!

Что такое случайность

В теории вероятностей есть два классических подхода к пониманию того, что такое случайность. Наиболее широко распространённый — частотный подход, который предполагает, что случайность – объективная неопределённость. Поэтому, чтобы установить истину, надо делать эксперименты… в пределе она и устанавливается, подобно тому, как частота выпадения орлов сходится к вероятности. Понятно, что MLE — классический метод частотников.

Второй подход, более распространённый среди специалистов по машинному обучению, — байесовский (Bayesian).  Здесь случайность – мера нашего незнания, соответственно, эксперименты просто уменьшают незнание переходом от априорной информации к апостериорной. MAP — пример метода байесианцев. Заметьте, что даже параметры в распределениях здесь случайные (они же неизвестны!).

Второй подход кажется более общим и красивым (мы уже привели значительное число плюсов). Есть правда несколько «но»

  • Сама техника и многие результаты байесианцев плохо интерпретируемы для простых смертных. Можно поверить, что объекты как-то распределены (например, клиенты интернет-магазина), но вот поверить, что параметры распределений как-то распределены нормальному человеку сложнее…
  • Мы не зря сказали про сопряжённые распределения, если они не сопряжённые, то нет такой красоты и эффектности.
  • Утверждается, что байесовский подход работает даже при отсутствии выборки (экспериментов). Но это рекламный слоган, который описывает наличие априорного распределения, но откуда его взять? Часто его выбор просто эвристика, но тогда зачем навешивать эвристику на распределение? Можно сразу на оценку! Скажем, до сглаживания Лапласа догадываются даже те, кто понятия не имеют о байесовском подходе.
  • Удобно вносить свои знания с помощью распределения, но мы можем внести и заблуждения…
  • Методы вычислительно ресурсоёмкие (но об этом нужно писать подробнее).
  • Методы, полученные с помощью байесовского подхода, не так хороши на практике, как многие эвристические (например, я не встречал, чтобы кто-нибудь использовал RVM в проде или на кэгле).

На самом деле, я описал лишь 2/3 того, что хотел… но пост уже получился большим. Дочитал ли кто-нибудь до конца? Все пожелания и замечания оставляйте в комментариях.

Что почитать

  • Универсальный совет: читайте Бишопа и будете умными;)
  • По вопросам, связанным с байесовским подходом, в России проводится целая научная школа. Доступны материалы прошлого года. Возможно, будут и этого.
  • Есть курс, который так и называется «Байесовские методы машинного обучения», разработанный Д. Ветровым и Д. Кропотовым на факультете ВМК МГУ.
  • Неплохая лекция Буре В.М., Грауэр Л.В.

П.С. В заключение несколько малоизвестных фактов.

1. Вы, наверное, видели изображение Томаса Байеса, см. рис.12

bayes.jpg
Рис. 12. Томас Байес или кто-то ещё…

Так вот, точно не известно, кто изображён на этом рисунке. По одной из гипотез — Байес. На самом деле, о его жизни мы знаем очень мало… например, точно не известен год (1701 или 1702) и место рождения (скорее всего, Hertfordshire).

2. Правильно фамилия учёного произносится [бейз], т.е. надо бы говорить «формула Бейза».

3. На википедии написано, что Байес опубликовал две работы. Одна из них «Divine Benevolence, or an Attempt to Prove That the Principal End of the Divine Providence and Government is the Happiness of His Creatures«. На самом деле, автор этой работы Джон Нун. По одной из гипотез — «Нун» это псевдоним Томаса Байеса.

Немного об основной идее этой работы. Это не математическая, а философская статья, в которой рассматривается проблема существования зла: как в мире, который создал Бог (а Бог есть добро), может существовать зло. Если кратко, то ответ прост — дело в нас (людях).

4. В том виде, в котором мы знаем формулу Байеса, её вывел не Байес, а Пьер-Симон Лаплас. Они с Байесом очень не похожи друг на друга. Например, Лаплас был атеистом, а Байес — священником.

5. Термин «байесовский» (Bayesian) впервые применил Рональд Фишер. Но в его лексиконе этот термин был ругательным. Он считал, что теория Байеса «должна быть полностью отвергнута».

Байесовский подход: 29 комментариев

  1. >Дочитал ли кто-нибудь до конца?
    дочитали

    >левая часть (90%) — больные, правая часть (10%) — здоровые.
    не наоборот?

  2. Спасибо Вам большое за очередную очень интересную статью!

    > Итак, байесовский подход позволяет получать новые методы машинного обучения!
    Или переосмыслять существующие, как в случае с регуляризацией:)

    > Вопрос для проверки понимания: а почему отношение, а не произведение?
    Можно подсказку?:) Я попытался рассмотреть крайние случаи:
    1) дисперсия самих данных сильно больше дисперсии параметров — тогда основной вклад делает нормировка параметров.
    2) дисперсия самих данных сильно меньше дисперсии параметров — тогда основной вклад делает MLE.
    Но я не очень понимаю, как это интерпретировать(

    Еще, возможно не совсем в тему, но Ваш пост помог мне чуть лучше понять, как работает линейный дискриминантрый анализ в R. Вот откуда там prior параметр:)) А в python, похоже, по-другому реализовано: просто собственные вектора SW^{-1}*SB.
    Кстати, было бы здорово, если бы был пост, посвященный LDA/QDA, а то там много путаницы, похоже. Из того, что «накопилось» уже:
    * есть линейный дискриминантный анализ и линейный дискриминант Фишера, которые часто называют(в пакетах) одинаково LDA, но, как я понял, относятся они друг к другу примерно как метод наименьших квадратов и максимального правдоподобия в случае линейной регрессии.
    * QDA (quadratic discriminant analysis) — иногда LDA без предположения об одинаковой дисперсии в группах, а иногда LDA с добавлением попарных произведений в качестве параметров, т.е. x1,x2 -> x1,x2,x1^2,x2^2,x1*x2
    * Еще «мутная» тема, то как делаются предсказания. В R вообще несколько методов, а python, как я понял просто логистическая функция от «проекции». В общем до конца не смог пока разобраться.

    P.S. Я прошу прощения, если не туда все это пишу, т.к. последнее не совсем в тему поста:)

    • > Можно подсказку?
      Я уточню, для начала. Там в формуле сигма в квадрате умножить на лямбда в квадрате. А я пишу, что дисперсии делятся… с виду кажется, что это нестыковка. Вот я и спрашиваю, а что здесь не так?

      Ответ очень простой;)

      По поводу Вашего вопроса…
      Подумаю, может напишу про это.
      В R, как правило, всегда всё реализовано в бОльшем количестве и со статистическим уклоном. Скажем, градиентный бустинг — gbm — в R надо указывать параметр «распределение», в питоне — «ошибку», как Вы заметили, связь как между правдоподобием и минимизируемым функционалом.

      LDA для меня более широкое понятие, чем ЛД Фишера, но часто их отождествляют, поскольку в курсах, кроме Фишера, ни о чём больше не рассказывают. Это как сейчас бустинг и градиентный бустинг. Первое понятие более широкое, но если Вы скажете, что использовали бустинг, то вряд ли это был какой-нибудь AdaBoost.

      Спасибо большое за сообщение! Любой отклик очень ценен.

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

    Если серьезно, то ты большой молодец, что через себя пропустил такой материал. Могу лишь добавить, что при переходе к большим данным байесовские методы становятся сравнимыми по эффективности с классическим подходом на основе максимизации правдоподобия. Это очень необычно и клево :))

  4. Статья заинтересовала. А теперь чисто практический вопрос.
    Например простая задача.
    Мы впервые видим человека в дорогом ресторане.
    1) Как этот один случай позволит нам предположить, что он богатый человек?
    Ведь он вполне может быть бедным и при этом решил зайти в ресторан, чтобы произвести на кого-то впечатление, или он богат и каждый день ходит на обед? Этой информации у нас нет. Я интуитивно делаю вывод, что 80% что он богат и 20% что он просто разово зашел перекусить.
    2)Предположим, что на следующей неделе мы снова пришли в этот ресторан и снова увидели его. Как изменилась вероятность при этом?
    Интуитивно понятно, что два случая — это уже тенденция и вероятность того, что он богат возрастает многократно, но как это решается с помощью этого подхода?
    Сейчас очень интересны данные задачи, и главное решал ли их кто-то практически при помощи Python?
    Заранее спасибо

    • Вот эту фразу хотел уточнить: «Cлучайность – мера нашего незнания, соответственно, эксперименты просто уменьшают незнание переходом от априорной информации к апостериорной.»
      Исходя из нее даже один эксперимент, который я привел в примере уже должен уменьшать наше незнание, но вот, что понять более точные цифры, нужно иметь в запасе некий более ранний опыт, который я использовал, когда делал интуитивное предположение о смещении вероятностей. Ведь я уже знаю, что как правило в дорогие рестораны ходят богатые люди, но в качестве исключения там встречаются и не богатые, и я уже могу использовать эти накопленные знания для построения грубой модели и дальше от нее отталкиваться при накоплении экспериментов.
      А как быть машине? Ведь такого опыта у нее нет или он он должен первоначально задаваться экспертом в программу?

  5. Большое спасибо! Очень интересно!

    Лет 7-8 назад одноклассник рассказывал, что юзал RVM как базу для торговых стратегий (кажется в Атоне)

  6. Александр, спасибо огромное за статью!
    Заметил неточность в формуле. Блок «Обоснование регуляризации» prior оценка параметров.
    P(w)=norm(w|0,1 / lambda^2 * I)=…
    Должно быть «лямбда в степени n», вы потеряли степень n. На правильность решения это никак не влияет, но все же.

    Вы используете матрицу ковариации n-мерного случайного вектора Sigma = 1 / lambda^2 * I, а чему равен корень квадратный из ее детерминанта?

    • И Вам спасибо! Да вроде всё правильно. Я так и задаю эту матрицу Sigma = (1 / lambda^2) * I. Её определить равен 1 / lambda^2, а корень из него = 1 / lambda

      • Добрый вечер!
        Спасибо за быстрый ответит.
        Вы пишите «Её определить равен 1 / lambda^2» — я не могу с этим согласиться. Для случая единичной матрицы размера nxn, и коэффициента 1 / lambda^2, их определитель будет равен 1 / lambda^(2n).

        https://www.wolframalpha.com/input/?i=det%282*eye%28n%29%29

        В изначальной формуле коэффициент перед единичной матрицей должен быть «лямбда в степени минус 2/n», только в этом случае их определитель будет равен 1 / lambda^2.

      • Здравствуйте, Павел! Да, понял о чём Вы! Спасибо. Я, действительно, ошибся. Как Вы и написали изначально: должна быть «лямбда в степени n».

        Я , наверное, не буду менять в посте — пусть будет проверкой на внимательность;)

  7. Очень полезная статья. Хочу уточнить, правильно ли я понимаю, что несмотря на название, байесовский классификатор (и, в частности, NaiveBayes) по сути является частотной (frequentist) моделью, так как за исключением теоремы Байеса, он не использует вышеописанные в статье идеи байесовского подхода к машинному обучению (если оценивать плотность EM-алгоритмом или методами LDA/QDA, ведь эти методы основаны на методе максимизации правдоподобия — классическом методе из частотной статистики; либо вообще оценивать плотность методами непараметрической статистики) ??
    По крайней мере, так написано вот здесь:
    https://stats.stackexchange.com/questions/180582/when-is-a-naive-bayes-model-not-bayesian
    Очень интересно ваше мнение, как специалиста, по этому вопросу!

    • Здравствуйте. Это философский вопрос: являтся ли БК байесовской моделью?! Мне кажется, что на любой ответ можно здраво возразить. Я сначала подумал над ответом, потом посмотрел Вашу ссылку. И надо сказать, что мой ответ почти совпадает с тем, что дан там.

  8. Здравствуйте! Спасибо большое за статью. Не понимаю, как связано распределение шума и априорное предположение о распределении весов?
    В случае MSE и L2, коэффициент регуляризации будет равен отношению дисперсий шума и априорного распределения параметров – это понятно. Но почему нельзя использовать MSE и предполагать, что веса распределены по Лапласу? Или наоборот, предполагать, что шум распределён по Лапласу, а веса из нормального распределения с фиксированной дисперсией? Как понять какое априорное распределение весов лучше подходит для решения задачи?

    • > Но почему нельзя использовать MSE…
      Здесь речь о соответствии модели данным. Допустим (это пример отвлечённый — совсем из другой области), у Вас задача регрессии такая, что y = x^2 + шум. Можно ли применять линейную регрессию? Формально можно — Вам никто не запрещает, реально — полиномиальная регрессия лучше. Также и здесь — можно, но лучше, чтобы функция ошибки соответствовала природе данных.

      > Как понять какое априорное распределение…
      Опять же можно провести аналогию с регрессией — надо «посмотреть на данные». В данном случае, можно проанализировать распределение ошибки.

      • Возможно, не очень понятно выразился. Я не до конца понял вот это утверждение: «Отметим, что если бы ошибка была распределена по Лапласу, то мы бы получили L1-регуляризацию.» – для меня «ошибка была распределена по Лапласу» значит, что нужно минимизировать MAE, но я не понимаю почему это значит, что веса у модели тоже априори должны быть из распределения Лапласа.

      • О, слушайте, а Вы косяк нашли:)
        Фраза «Отметим, что если бы ошибка была распределена по Лапласу, то мы бы получили L1-регуляризацию» некорректная.
        Надо было писать «если бы априорное распределение параметров…»

        Спасибо.

  9. Здравствуйте! Спасибо за такую подробную статью! Я не могу понять мотивацию метода максимизации апостериорной вероятности.
    Мотивация метода максимизации правдоподобия интуитивно понятна — мы хотим взять такие веса, при которых вероятность понаблюдать данные, которые мы понаблюдали, максимальна. То есть по сути хотим, чтобы модель как можно лучше описывала, то что уже произошло.
    Взять в расчёт информацию о априорном распределении параметров тоже интуитивно понятная идея — это дополнительное знание и степень свободы. Вопрос — почему для получения лучшей оценки опять нужно брать максимум? Мы знаем из MLE, что один из множителей (правдоподобие) точно лучше максимизировать. Есть ли объяснения, почему произведение тоже лучше всего максимизировать?

Оставьте комментарий