Группа современных методов анализа данных
Байесовский Вывод
В настоящее время происходит переосмысление понятия научный эксперимент. Фактически любое взаимодействие прибора (измерительного устройства) с изучаемым явлениям содержит в себе полезную информацию. Однако для того, чтобы извлечь эту информацию из данных (результатов измерения), необходимо использовать сложные модели. (В некотором смысле, применяемые ранее довольно простые модели либо приводили к низкой точности предсказаний сложных явлений, либо "вынуждали" ученых тщательно подготавливать эксперимент, "зажимая" изучаемое явление в довольно жесткие рамки квази-аналитических конструкций.)
В свою очередь, сложные модели требуют аккуратного детального учета неопределенностей, с которыми в них входят параметры (как собственно модельные, так и вспомогательные, т.е. те, которые необходимы для формулировки модели). Наиболее последовательно такой подход решается в парадигме байесовского вывода (Bayesian Inference, BI), когда модель определяется в виде совместного вероятностного распределения данных D и параметров Θ, а сам статистический вывод (inference) производится на основании теоремы Байеса:
p(Θ|D) = p(D|Θ) p(Θ) / p(D)
Другими словами, результатом BI является получение апостериорного распределения ("постериора") p(Θ|D) на основании априорного распределения ("прайора") p(Θ) и правдоподобия p(D|Θ). При фиксированных данных, D=Dobs, правдоподобие является функцией параметров модели и фактически отражает связь изучаемого явления с процедурой измерения. Однако не менее важен и прайор, так как он позволяет ввести в вероятностную модель эксперимента дополнительную информацию (например, как результат предыдущих измерений, экспертных мнений или оценок, калибровочных измерений, гипотез и/или физически обоснованных ограничений и т.п.) - достаточно лишь сформулировать эту информацию в виде распределения.
Важно подчеркнуть преимущества, которые дает исследователю получение результатов в виде апостериорного распределения, а не точечных оценок параметров. Постериор - это полноценная мера в пространстве параметров (зачастую многомерном), а значит, она позволяет изучать различные области этого пространства, оценивать их вероятности. Помимо оценок среднего и различных моментов, результаты реконструкции могут быть представлены как:
- маргинальные одномерные распределения типа p(Θn|D) = ∫ p(Θn, Θ-n|D) dΘ-n (здесь Θ-n все компоненты вектора параметров Θ помимо Θn), характеризующие форму распределния полученных оценок;
- двумерных маргинальных распределений p(Θn, Θm | D), устанавливающих корреляционные связи реконструированных значений (в том числе и вырожденность параметризации);
- HDI (highest density intervals) - области в пространстве параметров наибольшей плотности апостериорного распределения для заданной вероятности.
Кроме этого, существуют специальные байесовские методы выбора и проверки моделей. И вообще, байесовская реконструкция является многоэтапным итеративным подходом (иногда так и говорят - Bayesian Workflow), когда сначала осуществляют вывод в рамках относительно простых моделей, а потом постепенно модифицируют и/или усложняют модели. Как говаривал один известный ученый: "Все модели плохи, но некоторые из них лучше других". Байесовская парадигма максимально последовательно реализует это положение, извлекая все больше и больше информации из полученных в эксперименте данных.
Долгое время BI считался довольно сложным способом извлечения информации из данных, поскольку требовал значительных вычислительных ресурсов. Точное вычисление постериора возможно лишь в случае простых аналитических моделей (с так называемыми сопряженными праводоподобиями и прайорами). Альтернативой являются методы приближенного баейсовского вывода, тем или иным способом аппроксимирующие апостериорное распределение (см., например, Вариационный вывод, Variation Inference). Важное семейство аппроксимационных методов основано на получении выборки ("сэмплов") из апостериорного распределения (сам процесс получил в литературе название сэмплирования). Наиболее распространенный метод сэмплирования использует марковские цепи Монте-Карло (MCMC-сэмплирование).
Вероятностное программирование
Что почитать: Байесовский Вывод (введение и обзор публикаций по BI)
Существует несколько специальных библиотек, позволяющих производить приближенный байесовский вывод методами сэмплирования. Некоторые из них предоставляют пользователю высокоуровневые средства построения вероятностных моделей и осуществляния с их помощью вывода, оставляя "под капотом" все сложности, связанные с реализацией алгоритмов. Фактически ученому-предметнику приходится работать в среде, максимально напоминающей языки программирования высокого уровня. По этой причине это направление часто называют вероятностным программированием (probabilistic programmnig).
К наиболее известным на сегодняшний день языкам вероятностного программирования относятся STAN и PyMC, первый с синтаксисом C++, второй - очень простым Python API (большой список библиотек вероятностного программирования можно найти на Wiki: Probabilistic programming). Чуть более низкоуровневый подход реализован в EMCEE. Еще более широкие возможности (в том числе и нейросетевой SBI, см. ниже) предоставляет питоновский пакет TensorFlow Probability.
Типичная вероятностная программа в PymC выглядит следующим образом (здесь pm - общепринятое сокращение для библиотеки pymc при ее импорте).
with pm.Model() as model:
mu = pm.Normal("mu", mu=10., sigma = 5.)
sigma = pm.HalfNormal("sigma", sigma=1.5)
lk = pm.Normal("lk", mu=mu, sigma=sigma, obsedrved=data)
itrace = pm.sample(5000, tune=1000, chains=4)
В данном случае пространство параметров двумерно, Θ = { μ, σ }, а прайор на них мы выбираем факторизованным, p(Θ) = p(μ) p(σ) (что, в общем-то, общепринято: пусть о корреляциях в параметрах нам "расскажут" данные!). Эти прайоры определены в первых двух строчках модели (размещенной в окружении Model). Тем самым μ и σ становятся стохастическими переменными модели. В третьей строчке задается правдоподобие, в которое передаются и параметры, и наблюдаемые данные data - это может быть результат одного измерения или целой совокупности независимо распределенных измерений с одним и тем же средним и дисперсией (PyMC сам поймет это исходя из размера data).
Наконец, в заключительной строчке производится само сэмплирование. Указанные в функции pm.sample() аргументы означают, что требуется четырехкратно произвести выборку из 6000 сэмплов, отбросив первую 1000 из них (так называемый "разогрев" MCMC-сэмплирования). Кратные сэмплирования-цепочки (chains) рекомендованы, чтобы потом можно было проверить устойчивость работы MCMC-алгоритма. (Есть, конечно, еще много "настроечных" параметров, управляющих процессом сэмплирования, но для нашей простой модели можно довериваться их значениям по умолчанию.)
Кстати, для анализа полученных результатов не обойтись без еще одного из пакетов - библиотеки Arviz (сокращают обычно как az). Например,
az.summary(itrace)
выведет на экран таблицу с основными характеристиками апостериорных распределений (маргинальными средними, стандартными отклонениями и HDI постериорных распределений), а также оценит устойчивость алогритма. Графическое отображение одномерных постериоров (их KDE аппроксимаций) и самих выборок получается с помощью команды
az.plot_trace(itrace)
Двумерные гистограммы также доступны - с помощью вызова az.plot_pair(). Вообще Arviz предоставляет разнообразный набор инструментов проведения анализа байесовского вывода - читайте документацию (или разбирайте примеры)!
Пример. Выделение периодических компонент в зашумленном сигнале (по мотивам работ Бретхорста)
Simulation-Based Inference
Что почитать: Введение в SBI (обзор алгоритимов, методов и публикаций)
Примеры
Что почитать: Семинар БАД (обзор материалов внутреннего семинара)
Продемонстрируем особенности BI на двух очень простых примерах: реконструкции изображения и востановления спектра сигнала по гистограмме. В обоих случаях можно вероятностную модель можно сформулировать как с помощью явно заданной функции правдоподобия, так и с помощью стохастического симулятора. А значит, можно сравнить результаты байесовского вывода, полученные в рамках ELI (explicit likelyhood inference, т.е. с помощью вероятностного программирования) и ILI (implicit likelihood inference, т.е. SBI).
Задача 1. Реконструкция изображения в многоканальном детекторе
Задача 2. Восстановление спектра сигнала по гистограмме
Список литературы
Монографии, учебники, обзоры
- [DA-BT] D.S. Sivia and J. Skilling, Data Analysis: A Bayesian Tutorial
- [PB-LS] E.T. Janes, Probability Theory: The Logic of Science, https://bayes.wustl.edu/
- [PR-ML] Christopher M. Bishop, Pattern Recognition and Machine Learning, 2006 Springer
- [ML-PP] Kevin P. Murphy, Machine Learning: A Probabilistic Perspective, The MIT Press 2012, https://probml.github.io/pml-book/book0.html
- [PML-Book 1] Probabilistic Machine Learning: An Introduction, https://probml.github.io/pml-book/book1.html
- [PML-Book 2] Probabilistic Machine Learning: Advanced Topics, https://probml.github.io/pml-book/book2.html
- [IT-I-LA] D.J.C. MacKay, Information Theory, Inference, and Learning Algorithms, http://www.inference.org.uk/mackay/itila/book.html
- [BR-ML] David Barber, Bayesian Reasoning and Machine Learning
- [GP-ML] C. E. Rasmussen \& C. K. I. Williams, Gaussian Processes for Machine Learning, the MIT Press, 2006, www.GaussianProcess.org/gpml
- [BDA] Andrew Gelman, John B. Carlin, Hal S. Stern, David B. Dunson, Aki Vehtari, Donald B. Rubin, Bayesian Data Analysis, 3rd edition, 2021, http://stat.columbia.edu/~gelman/books/
Статьи по применению BI
Статьи по SBI
