Synteza programu bayesowskiego

W językach programowania i uczeniu maszynowym Bayesowska synteza programów (BPS) to technika syntezy programów , w której programy probabilistyczne Bayesa automatycznie konstruują nowe programy probabilistyczne Bayesa. Takie podejście kontrastuje z rutynową praktyką programowania probabilistycznego , w której programiści ręcznie piszą nowe programy probabilistyczne.

Ramy

Synteza programu bayesowskiego (BPS) została opisana jako struktura związana z programowaniem probabilistycznym i wykorzystująca ją. W BPS generowane są programy probabilistyczne, które same są priorytetami w przestrzeni programów probabilistycznych. Ta strategia umożliwia automatyczną syntezę nowych programów poprzez wnioskowanie probabilistyczne i jest osiągana poprzez kompozycję modułowych programów składowych.

Modułowość w BPS pozwala wnioskować na pracę i testowanie mniejszych programów probabilistycznych przed zintegrowaniem ich z większym modelem.

Ramy te można porównać z rodziną pól zautomatyzowanej syntezy programów , które obejmują programowanie na przykładzie i programowanie na podstawie demonstracji . Celem w takich dziedzinach jest znalezienie najlepszego programu, który spełnia pewne ograniczenia. Na przykład w tradycyjnej syntezie programów weryfikacja ograniczeń logicznych zmniejsza przestrzeń stanów możliwych programów, umożliwiając bardziej wydajne wyszukiwanie w celu znalezienia optymalnego programu. Synteza programów bayesowskich różni się zarówno tym, że ograniczenia są probabilistyczne, jak i sam wynik jest rozkładem na programy, które można dalej udoskonalać.

Ponadto syntezę programu bayesowskiego można porównać z pracą nad uczeniem się programu bayesowskiego, w której probabilistyczne komponenty programu są pisane odręcznie, wstępnie trenowane na danych, a następnie ręcznie składane w celu rozpoznawania odręcznych znaków.

Zobacz też

Linki zewnętrzne