Pull to refresh

Вероятностное программирование и байесовский метод для хакеров

Reading time4 min
Views17K
Original author: Cameron Davidson-Pilon
Здравствуйте, коллеги. Сегодня хотели поинтересоваться, насколько востребованной вам кажется слегка устаревшая книга "Bayesian Methods for Hackers", опубликованная в оригинале в 2015 году, но пока не переведенная на русский язык.


Книга позиционируется как прикладная, максимально избавленная от математики и неустаревающая.

Под катом — немного сокращенный перевод обзора этой книги, выложенного автором на Github.
Поучаствуйте пожалуйста в голосовании

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

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

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

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

Для вероятностного программирования в этой книге выбран язык PyMC, на то есть две причины. К моменту написания книги в Интернете не было централизованного ресурса с примерами и объяснениями приемов работы на в экосистеме PyMC. Официальная документация предполагает, что читатель уже имеет представление о байесовском выводе и вероятностном программировании. Надеемся, что эта книга побудит читателей с любым уровнем подготовки присмотреться к PyMC.

При работе с PyMC приходится учитывать зависимости, а именно, от NumPy (по ситуации) от SciPy. Чтобы не ограничивать читателя, в примерах из этой книги используется только PyMC, NumPy, SciPy и Matplotlib.

Содержание

(Перечисленные ниже главы отображаются в nbviewer на сайте nbviewer.ipython.org, доступны только для чтения и открываются в реальном времени. Интерактивные блокноты и примеры можно загрузить клонированием!)

  • Пролог: Зачем этим заниматься.
  • Глава 1: Введение в байесовские методы. Знакомство с философией и практикой байесовских методов, рассказ о том, что такое вероятностное программирование. Некоторые примеры:

 Изменение человеческого поведения – вывод на основе частоты отправки СМС.

  • Глава 2: Немного подробнее о PyMC Мы обсудим моделирование байесовских задач на примерах, в которых будет использоваться библиотека PyMC (язык Python). Как создавать байесовские модели? Среди примеров:
  •  Вычисление вероятности крушения космического челнока «Челленджер»

  • Глава 3: Открываем черный ящик MCMC Поговорим о том, как работает MCMC и диагностические инструменты. Среди примеров:
  •  Байесовская кластеризация на примере смешанных моделей

  • Глава 4: Величайшая теорема, о которой вам никогда не рассказывали.Здесь мы исследуем невероятно полезную и опасную теорему: закон больших чисел. Среди примеров:
  •  Исследование множества данных Kaggle и подводные камни наивного анализа
  •  Как отсортировать комментарии с Reddit от лучших к худшим (все не так просто как вам кажется)

  • Глава 5: С чем бы вы предпочли расстаться – с рукой или с ногой? Знакомство с функциями потерь и их (бесподобном) применении в байесовских методах. Среди примеров:
  •  Оптимизация финансовых прогнозов
  •  Выигрышное решение для состязания Kaggle Dark World

  • Глава 6: Уточнение приоритетов. Пожалуй, наиболее важная глава. Здесь мы отвечаем на вопросы, прибегая к экспертным мнениям. Среди примеров:
  •  Многорукие бандиты и байесовское решение такой задачи.
  •  Каково отношение между размером выборки и априорными данными?
  •  Оценка финансовых неизвестных при помощи экспертных априорных данных.
  • Также здесь вы найдете ценные советы об объективности при анализе и о распространенных ловушках, связанных с априорными вероятностями.

Установка и конфигурация

Если вы желаете запустить блокнот IPython на локальном компьютере, то потребуется установить следующее:

  • IPython 0.13 – необходима для просмотра файлов ipynb. Скачать ее можно здесь.
  • Пользователи Linux должны без труда установить Numpy, Scipy и PyMC. Для пользователей Windows найдутся заранее скомпилированные версии, если вдруг возникнут какие-то сложности.

В каталоге styles/ найдется ряд файлов, адаптированных для работы с блокнотом. Они не только разработаны специально для книги, но и специально оптимизированы для работы с matplotlib и IPython.
Only registered users can participate in poll. Log in, please.
Актуальность книги
91.03% Такой книги на русском языке действительно не хватает132
8.97% Устарела/малоинтересна в принципе13
145 users voted. 58 users abstained.
Tags:
Hubs:
+32
Comments5

Articles

Information

Website
piter.com
Registered
Founded
Employees
201–500 employees
Location
Россия