Краткое изложение лучших бесплатных онлайн-ресурсов для изучения всего байесовского

Для многих специалистов по анализу данных тема байесовского вывода является столь же пугающей, сколь и интригующей. Хотя некоторые могут быть знакомы со знаменитой теоремой Томаса Байеса или даже реализовали наивный байесовский классификатор, преобладающее мнение, которое я заметил, состоит в том, что байесовские методы слишком сложны для кодирования для статистиков, но слишком «статистичны» для инженеров. . По правде говоря, недавние достижения в области вероятностного программирования сделали эти методы более доступными, чем когда-либо прежде, и в этой статье я объясню, почему я решил изучить байесовский вывод, и обрисую некоторые из лучших ресурсов, с которыми я столкнулся в этом стремлении.

Почему вам следует перейти на байесовский подход

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

import amazing_ml_algo
model = amazing_ml_algo()
model.fit(X_train, y_train)

Основная причина просто в том, что байесовский вывод - это еще один инструмент в вашем арсенале инструментов, который может быть очень мощным в ситуациях, когда традиционные модели машинного обучения неоптимальны, например:

  • Когда у вас мало данных
  • Когда ваши данные очень зашумлены
  • Когда вам нужно количественно оценить уверенность
  • Когда вы хотите включить предыдущие убеждения в свою модель
  • Когда важна объяснимость модели

По моему опыту, это именно те практические проблемы, с которыми специалисты по обработке данных сталкиваются в своей повседневной работе. Байесовские модели могут не выиграть у вас в соревнованиях Kaggle (хотя есть много примеров, когда они есть), но они отлично подходят для решения реальных проблем реальных заинтересованных сторон в реальном бизнесе. По мере того как инструменты AutoML и готовые решения все шире применяются в отрасли, я считаю, что специалисты по обработке данных все больше будут сосредоточены на тех беспорядочных и нестандартных проблемах, для решения которых хорошо подходят байесовские методы.

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

Предпосылки

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

Существует множество вариантов пакетов вероятностного программирования как в Python, так и в R (например, PyMC, Stan, Edward, TensorFlow Probability и т. Д.). В конечном итоге вам нужно выбрать пакет и язык, которые лучше всего подходят для вас, но чтобы получить максимальную отдачу от ресурсов, представленных ниже, вам понадобится некоторый опыт работы с Python. В частности, Вероятностное программирование и байесовские методы для хакеров написано на Python с возможностью использования PyMC или TensorFlow Probability, поэтому для максимальной совместимости я рекомендую использовать один из этих пакетов вероятностного программирования.

Ключевые ресурсы

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

Я предлагаю не торопиться и работать со всеми тремя ресурсами одновременно. Если вы впервые «переходите на байесовский» подход, некоторые концепции могут сбивать с толку, но их разное объяснение должно помочь вам ознакомиться с ключевыми идеями.

Байесовский анализ данных - Эндрю Гельман, Джон Б. Карлин, Хэл С. Стерн, Дэвид Б. Дансон, Аки Вехтари и Донал Б. Рубин

Эта книга в значительной степени является библией для байесовского анализа. Хотя его объем в 670 страниц и большой упор на теорию (подумайте о формулах и доказательствах) могут отпугнуть менее отважных учеников, это наиболее полное руководство по теме, которую я нашел. Если у вас есть бесконечное количество времени / желания, не стесняйтесь читать все, но что касается остальных из вас, я бы сосредоточился на главах 1–5, 10 и 11.

Байесовский вывод - Вилле Хивёнен и Топиас Толонен

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

Вероятностное программирование и байесовские методы для хакеров - Кэмерон Дэвидсон-Пилон

Этот ресурс бесценен для преодоления разрыва между теорией и практическим применением. Он состоит из серии Jupyter Notebooks, полных примеров байесовского моделирования, и позволит вам запачкать руки вероятностным программированием. Как упоминалось ранее, этот ресурс предназначен специально для программистов на Python, однако пользователи, не использующие Python, все равно получат много полезного от чтения примеров (даже если они не выполняют никакого кода).

Бонусные ресурсы

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

Учебники по вероятности TensorFlow

Это серия руководств по TensorFlow Probability, представленных на официальном сайте. Если вы выбрали TFP в качестве вероятностного языка программирования, это будет особенно полезно. Есть несколько отличных примеров конкретных моделей, включая вероятностную регрессию, структурные временные ряды, вероятностный PCA и многие другие.

Байесовские методы машинного обучения - Coursera

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

Думай о Байесе - Аллан Б. Дауни

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

Вывод

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