Skip to main content
QUICK REVIEW

[論文レビュー] Probabilistic Programming with Gaussian Process Memoization

Ulrich Schaechtle, Ben Zinberg|arXiv (Cornell University)|Dec 17, 2015
Gaussian Processes and Bayesian Inference参考文献 20被引用数 5
ひとこと要約

本稿では、メモ化を介してガウス過程(GPs)を高階関数型言語に埋め込むことで、任意の計算関数の自動統計エミュレーションを可能にする確率的プログラミングインターフェースgpmemを紹介する。3つの応用例—ロバスト回帰、ベイズ的構造学習、ベイズ最適化—を、1つの50行のPythonライブラリと各20行未満の確率的コードで実装し、最小限のユーザー定義コードで最先端の結果を達成した。

ABSTRACT

Gaussian Processes (GPs) are widely used tools in statistics, machine learning, robotics, computer vision, and scientific computation. However, despite their popularity, they can be difficult to apply; all but the simplest classification or regression applications require specification and inference over complex covariance functions that do not admit simple analytical posteriors. This paper shows how to embed Gaussian processes in any higher-order probabilistic programming language, using an idiom based on memoization, and demonstrates its utility by implementing and extending classic and state-of-the-art GP applications. The interface to Gaussian processes, called gpmem, takes an arbitrary real-valued computational process as input and returns a statistical emulator that automatically improve as the original process is invoked and its input-output behavior is recorded. The flexibility of gpmem is illustrated via three applications: (i) robust GP regression with hierarchical hyper-parameter learning, (ii) discovering symbolic expressions from time-series data by fully Bayesian structure learning over kernels generated by a stochastic grammar, and (iii) a bandit formulation of Bayesian optimization with automatic inference and action selection. All applications share a single 50-line Python library and require fewer than 20 lines of probabilistic code each.

研究の動機と目的

  • 新しいメモ化ベースのインターフェースを通じて、ガウス過程を高階関数型確率的プログラミング言語にシームレスに統合すること。
  • 統一されたフレームワーク内で階層的ハイパーパramータ学習、記号的構造発見、ベイズ最適化などの複雑なGP応用を支援すること。
  • 低レベルの推論とカーネル定義を抽象化することで、GPベースのモデルの実装負荷を軽減すること。
  • ガウス過程を含む確率的モデルにおける完全ベイズ的構造学習と推論プログラミングを可能にすること。
  • 複雑なGP応用が、50行未満の共通ライブラリと20行未満の確率的コードで実装可能であることを実証すること。

提案手法

  • コア技術はgpmemと呼ばれる高階関数で、元の関数とカーネルを入力として受け取り、観測された入出力から学習するGPベースの統計エミュレータを返す。
  • gpmemは、関数が呼び出される度にGP事後分布をメモ化して蓄積・更新することで、オンライン学習を可能にする。
  • 本手法は、カーネル関数として任意の確率的プログラムをサポートし、ハイパーパramータとカーネル構造をベイズ推論により同時に推定可能である。
  • Venture確率的プログラミングプラットフォームの外部インターフェース、推論プログラミング、高階関数のサポートを活用し、効率的で柔軟なGP推論を実現する。
  • プラットフォームの推論プログラミング構造を通じてカスタム推論戦略を公開し、勾配ベース、モンテカルロ、変分推論技術を統合する。
  • モデル化と推論のネスティングをサポートし、ガウス過程を任意の目的関数に対するベイズ最適化などのメタ最適化タスクに応用可能にする。

実験結果

リサーチクエスチョン

  • RQ1一般用途のメモ化インターフェースを用いて、高階関数型確率的プログラミング言語にガウス過程を効果的に埋め込むことは可能か?
  • RQ2この埋め込みは、完全ベイズ的構造学習やベイズ最適化といった複雑で最先端の応用を、最小限のユーザーコードでサポートできるか?
  • RQ3gpmemによるGP統合は、モデル定義と推論の柔軟性の観点から、従来のGPライブラリと比較して表現力と効率性に優れているか?
  • RQ41つの50行のPythonライブラリが、20行未満の確率的コードで各アプリケーションを実装できるほど、多様なGP応用をカバーできるか?
  • RQ5本フレームワークは、先進的な確率的モデリングに不可欠な確率的再帰、非有界サポート集合、高階関数手続きを自然にサポートできるか?

主な発見

  • gpmemインターフェースは、ガウス過程を高階関数型確率的プログラミング言語にエンドツーエンドで統合でき、最小限のコードで多様な応用を実現した。
  • 階層的ハイパーパramータ学習を伴うロバストなGP回帰を達成し、Neal (1997) の結果を完全ベイズ的手法で再現した。
  • 確率的文法によって生成されるカーネルの上での完全ベイズ的構造学習を可能にし、不確実性を考慮したモデル発見をAutomated Statisticianプロジェクトに拡張した。
  • スモールスラムベースのベイズ最適化を自動推論とアクション選択とともにサポートし、メタ最適化における有効性を示した。
  • 3つの応用はすべて、同じ50行のPythonライブラリと20行未満の確率的コードで実装され、フレームワークの簡潔さと再利用可能性を強調した。
  • 確率的再帰、非有界サポート、推論ネスティングといった高度な機能もサポートしており、最先端の確率的モデリングに不可欠である。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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