Skip to main content
QUICK REVIEW

[논문 리뷰] An Introduction to Probabilistic Programming

Staton, Sam|arXiv (Cornell University)|2018. 09. 27.
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)를 설계하여 프로그램을 그래픽 모델로 매핑하는 것.
  • 모델과 추론 제어기 사이의 메시징 인터페이스를 도입하여 모델 명세와 추론 전략을 분리하는 것.
  • 고차원 PPL에서 모듈러하고 구성 가능한 추론을 가능하게 하기 위해 계속성 전달 스타일(CPS) 변환을 활용하는 것.
  • 자동 미분을 적용하여 미분 가능 확률적 프로그램에서 해밀토니안 몬테카를로(HMC) 추론을 가능하게 하는 것.
  • 스토하스틱 그래디언트 방법과 암시적 추론을 사용하여 딥 확률적 모델에서 학습을 확장하는 것.
  • 추론에서 신경망을 제안자로 사용하여 확률적 프로그램을 포함하는 생성 모델의 엔드 투 엔드 학습을 가능하게 하는 것.

실험 결과

연구 질문

  • RQ1확률적 프로그래밍을 정적 계산 그래프와 유한한 랜덤 변수를 가진 일계 언어로 체계화할 수 있는가?
  • RQ2동적 계산 그래프를 가진 고차원 확률적 프로그램에 적합한 추론 알고리즘은 무엇인가?
  • RQ3모델과 추론 제어기 사이의 메시징 인터페이스를 통해 추론을 어떻게 모듈러화할 수 있는가?
  • RQ4자동 미분이 미분 가능 확률적 프로그램에서 효율적인 기울기 기반 추론을 가능하게 하는 데 어떤 역할을 하는가?
  • RQ5딥 신경망을 어떻게 활용하여 추론을 암시적으로 처리하고 확률적 프로그램에서 학습을 확장할 수 있는가?

주요 결과

  • 논문은 확률적 프로그램을 그래픽 모델과 팩터 그래프로 컴파일하는 체계적인 프레임워크를 구축하여, 표준 추론 알고리즘의 체계적 적용을 가능하게 한다.
  • 고차원 PPL에서의 추론은 반복적인 프로그램 평가가 필요하며, 메시징 인터페이스를 통해 모듈러화될 수 있어 책임 분리를 가능하게 한다.
  • 자동 미분과의 통합은 효율적인 HMC 추론을 가능하게 하여 고차원 공간에서 혼합성과 수렴성을 크게 향상시킨다.
  • 신경망을 사용한 암시적 추론은 사후 분포 근사화의 계산 비용을 감소시켜 복잡한 모델에서의 확장 가능한 학습을 가능하게 한다.
  • 논문은 딥 확률적 프로그래밍 시스템이 엔드 투 엔드로 미분 가능하고 모듈러한 구성 요소를 통해 생성 모델링과 추론을 모두 지원하도록 설계될 수 있음을 보여준다.
  • 사례 연구(예: fMRI 분석, 토픽 모델링)의 실증 결과는 제안된 방법이 사후 분포 근사화와 모델 학습에서 최신 기술 수준의 성능을 달성함을 보여준다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.