Skip to main content
QUICK REVIEW

[논문 리뷰] TensorFlow Distributions

Joshua V. Dillon, Ian Langmore|arXiv (Cornell University)|2017. 11. 28.
Gaussian Processes and Bayesian Inference참고 문헌 41인용 수 240
한 줄 요약

TensorFlow Distributions는 빠르고 미분 가능 probabilistic 프로그래밍을 위한 두 가지 핵심 추상화—Distributions와 Bijectors—를 제공하여 TensorFlow에서 복잡한 고차원 분포와 변환의 모듈식 구성을 가능하게 하고 Edward와 같은 백엔드를 구동합니다.

ABSTRACT

The TensorFlow Distributions library implements a vision of probability theory adapted to the modern deep-learning paradigm of end-to-end differentiable computation. Building on two basic abstractions, it offers flexible building blocks for probabilistic computation. Distributions provide fast, numerically stable methods for generating samples and computing statistics, e.g., log density. Bijectors provide composable volume-tracking transformations with automatic caching. Together these enable modular construction of high dimensional distributions and transformations not possible with previous libraries (e.g., pixelCNNs, autoregressive flows, and reversible residual networks). They are the workhorse behind deep probabilistic programming systems like Edward and empower fast black-box inference in probabilistic models built on deep-network components. TensorFlow Distributions has proven an important part of the TensorFlow toolkit within Google and in the broader deep learning community.

연구 동기 및 목표

  • TensorFlow 생태계 내에서 엔드투엔드 미분 가능 확률 프로그래밍을 가능하게 한다.
  • 대규모 분포에 대한 빠르고 수치적으로 안정적인 샘플링, 로그-밀도 및 통계를 제공한다.
  • 배치 처리, 자동 미분, 가속기(GPU/TPU) 호환성을 지원한다.
  • 복잡한 분포를 효율적으로 구축하기 위한 컴포저블 변환(Bijectors)을 제공한다.
  • Edward 및 TensorFlow Estimator와 같은 고급 도구와의 통합을 통해 확장 가능한 연구 및 생산 사용을 가능하게 한다.

제안 방법

  • 두 가지 추상화: Distribution(빠른 샘플링 및 log_prob를 갖춘 60+ 분포)와 Bijector(22개의 컴포저블하고 미분 가능)라는 도입.
  • 샘플링의 벡터화 연산 및 브로드캐스트를 가능하게 하는 모양(shape) 의미론(sample, batch, event)을 정의.
  • 가능한 경우 재매개변화를 통한 엔드투엔드 미분 가능성을 갖춘 디바이스 특화 C++ 커널을 통해 샘플링을 구현.
  • 분포의 함수(예: 엔트로피, KL)와 분포 함수적(feature)를 제공한다.
  • Modular 구성 및 밀도 계산의 효율성을 위해 TransformedDistribution 및 Chain/Inver t bijectors를 활용한다.
  • 트랜스포밍 샘플 및 로그 행렬식의 캐싱을 도입해 중요도 샘플링 및 변분 추론의 속도를 향상시킨다.

실험 결과

연구 질문

  • RQ1깊은 확률 프로그래밍을 위한 빠르고 미분 가능하며 확장 가능한 확률 라이브러리를 어떻게 설계할 수 있을까?
  • RQ2분포와 변환을 어떻게 구성하여 풍부하고 고차원적인 확률 모형을 표현할 수 있을까?
  • RQ3모듈식이고 재사용 가능한 복잡한 모델의 구성과 수치적 안정성을 보존하는 어떤 추상화(Distributions와 Bijectors)가 필요할까?
  • RQ4이와 같은 라이브러리가 더 넓은 TensorFlow 생태계 및 가속기 하드웨어와 어떻게 통합될 수 있을까?
  • RQ5깊은 학습 맥락에서 고차 분포와 분포 함수적의 실용적 이점과 한계는 무엇인가?

주요 결과

  • 라이브러리는 빠른 샘플링 및 로그 밀도 계산을 제공하는 60개 분포와 22개의 컴포저블 Bijectors를 제공합니다.
  • Distributions와 Bijectors는 VAE, 자기회귀 흐름, PixelCNN 기반 아키텍처와 같은 복잡한 모델의 모듈식이고 엔드투엔드 미분 가능 구성 가능하게 합니다.
  • 샘플링의 모양 의미론(sample, batch, event)은 대형 텐서에 대해 자연스럽게 벡터화 및 브로드캐스팅을 가능하게 합니다.
  • 샘플링은 디바이스 특화 커널로 구현되며 확률적 노드를 통한 역전파를 허용하는 재매개변화를 지원합니다.
  • Bijectors는 자동으로 변환 및 로그-결합식 캐시를 관리하여 샘플링 기반 추론 및 변분 방법의 효율성을 향상시킵니다.
  • TensorFlow Distributions는 TensorFlow 구성요소(레이어, 데이터 파이프라인, 서빙, 시각화)와 통합되며 Edward의 백엔드 역할을 합니다.

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

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

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

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