Главная » Хабрахабр » [Перевод] Вероятностное программирование и байесовский метод для хакеров

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

Здравствуйте, коллеги. Сегодня хотели поинтересоваться, насколько востребованной вам кажется слегка устаревшая книга "Bayesian Methods for Hackers", опубликованная в оригинале в 2015 году, но пока не переведенная на русский язык.

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

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

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

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

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

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

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

Содержание

Интерактивные блокноты и примеры можно загрузить клонированием!) (Перечисленные ниже главы отображаются в 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.


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

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Перевод] Мои любимые примеры функционального программирования в языке Kotlin

Давайте посмотрим и обсудим некоторые простые, но выразительные функции, написанные на языке Kotlin. Одной из замечательных особенностей Kotlin является то, что он поддерживает функциональное программирование. Работа с коллекциями Есть множество разнообразных функций. Kotlin поддерживает удобную работу с коллекциями. Нам нужно ...

[Перевод] 10 цитат плохих дизайнеров

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