Вероятностное программирование
-
Определение и применение вероятностного программирования
- Вероятностное программирование объединяет вероятностное моделирование и традиционное программирование для упрощения и расширения возможностей первого.
- Используется для принятия решений в условиях неопределенности, включая прогнозирование цен на акции и диагностику компьютеров.
-
Языки вероятностного программирования (PPLs)
- PPLs основаны на базовых языках программирования, таких как Julia и .NET Framework, или на специализированных языках, таких как WinBUGS.
- Некоторые PPLs, например WinBUGS, предлагают автономный язык для выполнения байесовского вывода.
- В последнее время появились новые языки, поддерживающие байесовские модели и логический вывод, такие как Stan и NIMBLE.
-
Примеры использования вероятностного программирования
- В 2015 году 50-строчная вероятностная программа в Julia использовалась для создания 3D-моделей лиц.
- Библиотека Gen в Julia применяется для задач в области зрения и робототехники.
- Система Turing.jl используется в фармацевтике и экономике.
-
Вероятностное логическое программирование
- Вероятностное логическое программирование расширяет логическое программирование вероятностями.
- Большинство подходов к вероятностному логическому программированию основаны на семантике распределения.
-
Сложности вероятностного программирования
- Рассуждения о переменных как о распределениях вероятностей могут быть трудными для начинающих программистов.
- Визуализация байесовской сети и графиков распределения переменных может помочь в понимании.
-
Дополнительные ресурсы
- Ссылки на статистическое реляционное обучение, индуктивное программирование и байесовское программирование.
- Список инструментариев мини-языка вероятностных моделей и вики по вероятностному программированию.
Полный текст статьи: