Bayesian Program Synthesis (BPS, байєсівський синтез програм) — це підхід у сфері штучного інтелекту, спрямований на автоматичну генерацію комп'ютерних програм за допомогою байєсівських статистичних методів на основі специфікацій або даних. На відміну від класичного програмування чи традиційного машинного навчання, BPS явно враховує невизначеність і ймовірнісну структуру в процесі синтезу програм. Створення програм тут розглядається як задача ймовірнісного висновку: серед величезного простору програм визначаються ті, що є найбільш імовірними з урахуванням спостережуваних даних і апріорних знань. BPS відрізняється від детерміністичних підходів гнучкістю та стійкістю байєсівського висновку, що дозволяє генерувати адаптивні програми й природно інтегрувати поступове навчання.

Зазвичай BPS працює шляхом визначення ймовірнісної граматики або простору пошуку програм, задання байєсівських апріорі на структуру чи параметри програм і використання алгоритмів висновку для ефективного дослідження простору. Це дає змогу автоматично створювати складні ймовірнісні моделі або відкривати алгоритми, адаптовані до конкретної задачі.

Сфери використання та приклади

BPS застосовується для автоматичної генерації моделей у аналізі даних, автоматизації статистичного моделювання, вилучення знань зі структурованих і неструктурованих даних, а також для синтезу експериментальних планів або стратегій керування в робототехніці. Наприклад, BPS може автоматизувати пошук пояснювальних моделей у наукових даних або породжувати оптимальні скрипти для обробки даних.

В індустрії BPS пришвидшує розробку кастомізованого ПЗ, автоматизує складні задачі моделювання, оптимізує процеси шляхом створення адаптивних стратегій.

Основні програмні інструменти, бібліотеки, фреймворки

До основних інструментів і фреймворків належать Gen (MIT), гнучка ймовірнісна мова програмування; Anglican (на базі Clojure); Pyro (PyTorch), Stan та Edward (TensorFlow) — хоча вони орієнтовані на ймовірнісний висновок, їх можна адаптувати й для BPS. Для дослідницьких завдань використовуються Bayesian Program Learning (BPL) та інші ймовірнісні мови програмування.

Сучасні розробки, тренди та еволюція

Останнім часом відбувається підвищення ефективності алгоритмів висновку, відбувається інтеграція BPS із моделями глибокого навчання (поєднання символічних та статистичних підходів). Зростає інтерес до інтерпретованості й перевірюваності синтезованих програм, а також до автоматизації складних задач у сфері науки про дані та ШІ. Тенденції включають ширше впровадження BPS у промисловій науці про дані та використання як ключового елементу автономних і адаптивних систем.