Начните с байесовского вывода

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

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

Что такое байесовский вывод?
Согласно Ричарду Макэлриту в его книге «Статистическое переосмысление», байесовский вывод использует теорему Байеса (также включающую предварительные знания в наш анализ) для количественной оценки неопределенности параметров и моделей. .

Давайте быстро пересмотрим теорему Байеса

Теорема Байеса: P (θ | D) = P (D | θ) P (θ) / P (D)

θ - это параметр в нашей вероятностной модели, а D - в наших данных. Мы вычисляем апостериорное распределение P (θ | D) - вероятность того, насколько правдоподобны различные значения параметров, учитывая данные, на основе:

  • Вероятность P (D | θ): вероятность наблюдения данных, учитывая, что параметр θ принимает разные значения. Это то, что мы обычно максимизируем в традиционном машинном обучении Frequentist (вспомните MLE).
  • Предыдущий P (θ): вероятность того, что θ принимает разные значения, в зависимости от того, что мы знаем о параметре до того, как увидим данные. Например, он может быть неинформативным (плоское - все значения одинаково вероятны), слабо информативным (регуляризация - защита от крайних ассоциаций между переменными), субъективным (личные убеждения в некоторых значениях более правдоподобны). Предыдущее также может быть просто апостериорным от другой проблемы (или той же проблемы, но теперь у нас есть только новые наблюдения).
  • Свидетельство P (D): вероятность наблюдения имеющихся данных. Это также называется предельной вероятностью или средней вероятностью. Это средняя вероятность данных при всех возможных значениях, которые может принимать θ.

Когда мы делаем вывод, мы часто заботимся только об относительных значениях параметров. В этом смысле мы можем опустить маргинальное правдоподобие и рассматривать апостериорную как пропорциональную: P (θ | D) ∝P (D | θ) P (θ). Этого достаточно, чтобы выбрать значения θ и понять форму задней части, поскольку P (D) является постоянным для одной и той же модели.

Мы можем легко включить предыдущие знания

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

Это может сделать модель более надежной и менее чувствительной к плохим / малым данным, поскольку знания, которыми мы, возможно, располагаем, могут направить модель в правильном направлении.

Кто-то может возразить, что это искажает результаты из-за наших собственных убеждений. Однако важно помнить, что никакая статистическая модель не является правильной, а представляет собой просто приближение описания различных свойств мира в определенных контекстах. Если мы знаем некоторые из ожидаемых нами свойств, это могло бы привести к лучшему решению проблемы, чем полностью полагаться на наблюдения, выраженные с вероятностью. Например, если в какой-либо области было проведено много исследований, было бы абсурдно начинать с нуля и не использовать его при моделировании. Приоры предлагают мощный способ выразить эти знания в модели. Это неестественно для моделей Frequentist.

Когда у нас много данных, байесовские и частотные выводы в конечном итоге сходятся к одному и тому же.

Это потому, что предыдущие знания будут размыты новыми наблюдениями. Поскольку методы Frequentist могут быть очень быстрыми, их может быть удобнее использовать, когда у вас есть большие данные. Однако более сложные аналитические задачи часто основываются на данных среднего или особенно небольшого размера. Включение предшествующих знаний здесь может быть хорошей идеей.

Как создать модель?
Чтобы конкретизировать ситуацию, давайте создадим вероятностную модель для классического примера подбрасывания монеты в байесовской структуре. Мы хотим решить распределение орлов и решек. Мы могли бы использовать распределение Бернулли для наблюдения орлов как вероятность y ~ Бернулли (n = 1, p = θ), где p = 0,5, если монета справедливая. Если у нас нет сведений о различных значениях p, мы могли бы использовать равномерное распределение для его описания, θ ~ Uniform (0,1).

Чтобы было немного веселее, давайте опишем модель с двумя предыдущими дистрибутивами. Например, если мы хотим смоделировать длину бананов, мы можем использовать нормальное распределение как вероятность, y ~ Normal (μ, σ). Теперь у нас есть два параметра, для которых нужно указать приоритет. Возможно, мы могли бы предположить, что длина банана составляет от 50 до 250 мм, и присвоить μ ~ Uniform (50,250), и предположить, что это значение довольно сильно варьируется на σ ~ HalfNormal (0, 50). Помните, это всего лишь приоры. Данные по-прежнему будут играть свою роль.

Поскольку мы обусловливаем данные и получаем апостериор, мы можем видеть на рисунке 1, что длины бананов, основанные на наших априорных и данных, принимают несколько правдоподобных значений для μ и σ, с наибольшей вероятностью около μ = 165 и σ = 26. .

Как получить апостериорное распределение?
Чтобы получить апостериорное распределение, нам нужно вычислить произведение априорного распределения и вероятности. Кажется, это просто! Однако он может быть довольно громоздким для многих измерений и больших пространств. Вместо этого мы можем попытаться приблизить его. MCMC - это семейство методов, используемых для этого (есть и другие способы). MCMC в основном выполняет поиск в апостериорном пространстве и возвращает выборки как способ отображения поверхности распределения (иногда это все еще может быть довольно тяжелым, но становится более осуществимым, поскольку вычислительные ресурсы становятся более доступными вместе с достижениями в способах аппроксимации апостериорного распределения) .

В некоторых случаях мы действительно можем вычислить апостериорное аналитическое значение. Сопряженные приоры позволяют это сделать. Это применимо только к определенным случаям. В течение многих лет байесовский анализ ограничивался использованием априорных конъюгатов; Теперь с помощью современных вычислительных методов мы можем решать байесовские задачи независимо от того, используем ли мы сопряженные априорные значения или нет. Мы можем определить любую вероятностную модель монстра и не беспокоиться о ее аналитическом выводе. Пробоотборник позаботится об этом!

Получение неопределенностей во многих аспектах
Мы можем рассматривать различные аспекты неопределенностей при оценке нашей модели. Байесовский вывод вполне естественно обеспечивает это.

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

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

Мы можем, например, использовать интервалы определенной массы, чтобы суммировать апостериорное распределение. Интервал максимальной апостериорной плотности (HPDI) - это достоверный интервал. Достоверный интервал содержит определенную вероятностную массу между двумя его значениями (например, 50% или 95%). HPDI составляет самый узкий интервал апостериорной оценки, содержащий заданную вероятностную массу.

Удобство использования множества выборок для аппроксимации апостериорного распределения (например, с использованием MCMC) заключается в том, что мы можем довольно легко вычислить HPDI (или любой CI) (просто сравнивая пропорции выборок, которые выше или ниже определенных значений параметров).

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

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

Обычно принимают значение с наивысшей апостериорной вероятностью, максимум апостериорного (MAP), которое является режимом апостериорного распределения. Однако это должно быть выбрано с учетом решения, которое мы пытаемся принять, и того, насколько серьезны различные типы «ошибок». Этим можно управлять с помощью функции потерь.

Различные функции потерь подразумевают разные точечные оценки апостериорных значений.

Предположим, например, что мы запускаем Weather Channel и хотим предсказать, пойдет ли дождь или нет. Люди, как правило, больше расстраиваются, если мы говорим, что дождя не будет, а потом на самом деле идет дождь, в отличие от того, чтобы сказать, что будет дождь, а потом его не будет (например, возможно, кто-то приносит зонтик, только если мы говорим, что будет дождь). Серьезность в отношении совершения различных ошибок здесь несимметрична. С помощью функции потерь мы можем подчеркнуть, как выбрать эту точечную оценку для успешной работы с нашим каналом погоды. Например. Вместо этого мы могли бы сказать, что вероятность дождя составляет 20 процентов, тогда как на самом деле это 5 процентов.

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

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

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

А как насчет регрессии?
Мы можем легко указать модели регрессии с байесовской структурой. Для примера с бананом у нас есть Нормальное распределение как вероятность, где μ теперь не оценивается, а вычисляется линейной функцией значений предиктора y ~ Normal (μ = α + βx, σ). Затем мы получаем три априорных значения, которые нужно указать: точку пересечения α, наклон β и остаточную ошибку регрессии σ.

Используя вес банана в качестве переменной-предиктора x, мы можем увидеть неопределенность параметров α и β на рисунке 4, распространенную на целевую переменную y. Он распространяется простым вычислением y = α + βx.

На рисунке 5 показана неопределенность переменной y, естественно, включая неопределенность, выраженную в α и β, а также с учетом стандартного отклонения (ошибки) σ и ее неопределенности.

Более темная линия на рисунках 4 и 5 - это средние значения α и β сзади. Если мы хотим, чтобы наша регрессионная модель использовала квадраты остаточных ошибок, мы могли бы выбрать значения параметра MAP (mode).

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

Распределение правдоподобия - важный выбор модели.

Распределение правдоподобия позволяет нам указать известные свойства данных. Можно утверждать, что выбор одного распределения вместо другого является субъективным. Альтернативой обработке выбросов является их удаление перед моделированием, однако это также можно считать субъективным (мы просто переносим субъективное решение на предварительную обработку вместо моделирования).

Выводы

  • С байесовской структурой мы можем легко выразить предварительные знания о проблеме (либо в форме априорных распределений, либо путем выбора функции правдоподобия).
  • Сказать, что байесовский вывод субъективен, верно, но также и все моделирование. Либо мы принимаем решение во время моделирования, либо принимаем решение до (сбор данных, предварительная обработка, разработка функций) или после (функции потерь, оценки). Это не проблема, если модель хорошо работает в контексте, в котором она применяется.
  • Если у нас много данных, байесовский и частотный методы сходятся к одному и тому же результату, поскольку апостериорное значение преобладает над вероятностью. Тогда можно было бы использовать традиционное (Frequentist) машинное обучение, поскольку эти модели часто быстрее обучаются. Однако наличие большого количества репрезентативных данных, к сожалению, случается довольно редко.
  • Мы можем использовать все апостериорное распределение возможных значений параметров, чтобы естественным образом описать неопределенность модели и целевой переменной.
  • Апостериор вычисляется для нахождения правдоподобных значений параметров, не зависящих от функции потерь. Чтобы принимать решения на основе модели, можно использовать функцию потерь для выбора набора параметров для определенного контекста.

Я надеюсь, что эта статья была полезна в качестве начального понимания байесовского вывода. Если бы это было так, я мог бы написать больше статей о байесовском выводе. Пожалуйста, дайте мне знать, все отзывы приветствуются!

Ссылки

  • Статистическое переосмысление, Ричард Макэлрит
  • Байесовский анализ с Python, Освальдо Мартин
  • Байесовские методы для хакеров: вероятностное программирование и байесовский вывод, Кэмерон Дэвидсон-Пилон