Skip to main content
QUICK REVIEW

[論文レビュー] An Introduction to Probabilistic Programming

Staton, Sam|arXiv (Cornell University)|Sep 27, 2018
Bayesian Modeling and Causal Inference参考文献 108被引用数 110
ひとこと要約

本論文は、確率的プログラミングの包括的な大学院レベルの入門を提供し、プログラミング言語を用いた確率的モデルの構築と推論のための原則的フレームワークを提示する。モデルベース推論の基礎的概念、推論アルゴリズム(例:ギブスサンプリング、SMC、ハミルトニアンモンテカルロ)、および微分可能およびディープ確率的プログラミングといった高度な技術をカバーしており、合成可能性、推論のモularity、機械学習との統合に焦点を当てる。

ABSTRACT

This book is a graduate-level introduction to probabilistic programming. It not only provides a thorough background for anyone wishing to use a probabilistic programming system, but also introduces the techniques needed to design and build these systems. It is aimed at people who have an undergraduate-level understanding of either or, ideally, both probabilistic machine learning and programming languages. We start with a discussion of model-based reasoning and explain why conditioning is a foundational computation central to the fields of probabilistic machine learning and artificial intelligence. We then introduce a first-order probabilistic programming language (PPL) whose programs correspond to graphical models with a known, finite, set of random variables. In the context of this PPL we introduce fundamental inference algorithms and describe how they can be implemented. We then turn to higher-order probabilistic programming languages. Programs in such languages can define models with dynamic computation graphs, which may not instantiate the same set of random variables in each execution. Inference requires methods that generate samples by repeatedly evaluating the program. Foundational algorithms for this kind of language are discussed in the context of an interface between program executions and an inference controller. Finally we consider the intersection of probabilistic and differentiable programming. We begin with a discussion of automatic differentiation, and how it can be used to implement efficient inference methods based on Hamiltonian Monte Carlo. We then discuss gradient-based maximum likelihood estimation in programs that are parameterized using neural networks, how to amortize inference using by learning neural approximations to the program posterior, and how language features impact the design of deep probabilistic programming systems.

研究の動機と目的

  • 機械学習およびプログラミング言語の背景を持つ研究者に対して、確率的プログラミングの基礎的理解を提供すること。
  • 確率的プログラムが効率的な推論のためのグラフィカルモデルおよび要因グラフにコンパイルされる方法を説明すること。
  • 繰り返しプログラム評価を介して動作する推論アルゴリズム(例:尤度重み付け、メトロポリス・ハスティングス、SMC)を紹介すること。
  • 動的計算グラフを備えた高階関数的確率的プログラミングとその推論に課される課題を検討すること。
  • 微分可能プログラミングを確率的プログラミングと統合し、勾配ベースの推論とディープ生成モデルを可能にすること。

提案手法

  • 静的計算グラフと有限の確率的変数を備えた一階確率的プログラミング言語(FOPPL)を設計し、プログラムをグラフィカルモデルにマッピングする。
  • モデルと推論コントローラーの間のメッセージングインターフェースを導入し、モデル定義と推論戦略の分離を実現する。
  • 継続渡しスタイル(CPS)変換を用いて、高階PPLにおけるモジュラーや合成可能な推論を可能にする。
  • 自動微分を適用して、微分可能確率的プログラムにおけるハミルトニアンモンテカルロ(HMC)推論を可能にする。
  • 確率的モデルにおける学習のスケーリングを実現するため、確率的勾配法とアモルタイズド推論を用いる。
  • 推論におけるニューラルネットワークを提案分布として統合し、確率的プログラムを用いた生成モデルのエンドツーエンド学習を可能にする。

実験結果

リサーチクエスチョン

  • RQ1確率的プログラミングを静的計算グラフと有限の確率的変数を備えた一階言語として形式化するにはどうすればよいか?
  • RQ2動的計算グラフを備えた高階確率的プログラムに適した推論アルゴリズムは何か?
  • RQ3モデルと推論コントローラーの間のメッセージングインターフェースを通じて、推論をどのようにモジュラー化できるか?
  • RQ4自動微分は、微分可能確率的プログラムにおける効率的な勾配ベース推論を可能にする役割を果たすか?
  • RQ5ディープニューラルネットワークを用いて推論をアモルタイズし、確率的プログラムにおける学習のスケーリングをどのように実現できるか?

主な発見

  • 本論文は、確率的プログラムをグラフィカルモデルおよび要因グラフにコンパイルする原則的フレームワークを確立し、標準的な推論アルゴリズムの体系的適用を可能にする。
  • 高階PPLにおける推論は繰り返しプログラム評価を必要とし、メッセージングインターフェースを通じてモジュラー化可能であり、関心の分離を実現できることが示された。
  • 自動微分と確率的プログラミングの統合により、効率的なHMC推論が可能となり、高次元空間における混合と収束性が顕著に向上した。
  • ニューラルネットワークを用いたアモルタイズド推論は、事後分布近似の計算コストを低減し、複雑なモデルにおけるスケーラブルな学習を可能にした。
  • 本論文は、エンドツーエンド微分可能かつモジュラーなコンponentsを備えた深層確率的プログラミングシステムが、生成モデルと推論の両方をサポートできるように設計できることを示した。
  • fMRI解析やトピックモデリングなどの事例研究における実験結果から、提案手法が事後分布近似およびモデル学習において最先端の性能を達成することが示された。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。