Suy luận biến đổi so với MCMC: khi nào nên chọn cái này hơn cái kia?


36

Tôi nghĩ rằng tôi có được ý tưởng chung về cả VI và MCMC, bao gồm các hương vị khác nhau của MCMC như lấy mẫu Gibbs, Metropolis Hastings, v.v. Bài viết này cung cấp một giải thích tuyệt vời về cả hai phương pháp.

Tôi có các câu hỏi sau:

  • Nếu tôi muốn thực hiện suy luận Bayes, tại sao tôi lại chọn một phương pháp khác?
  • Những ưu và nhược điểm của từng phương pháp là gì?

Tôi hiểu rằng đây là một câu hỏi khá rộng, nhưng bất kỳ hiểu biết nào cũng sẽ được đánh giá cao.

Câu trả lời:


34

Đối với một câu trả lời dài, xem Blei, Kucukelbir và McAuliffe ở đây . Câu trả lời ngắn này rút ra rất nhiều từ đó.

  • MCMC là không chính xác; VI thì không . Trong giới hạn, MCMC sẽ chính xác xấp xỉ phân phối mục tiêu. VI không có bảo hành.
  • MCMC là tính toán đắt tiền . Nói chung, VI nhanh hơn.

Có nghĩa là, khi chúng ta có thời gian tính toán để tiêu diệt và đánh giá chính xác các ước tính của mình, MCMC thắng. Nếu chúng ta có thể chấp nhận hy sinh điều đó vì sự nhanh nhẹn hoặc chúng ta đang làm việc với dữ liệu quá lớn, chúng ta phải biến sự đánh đổi thành VI là một lựa chọn tự nhiên.

Hoặc, như được mô tả hùng hồn và kỹ lưỡng hơn bởi các tác giả được đề cập ở trên:

Do đó, suy luận đa dạng phù hợp với các tập dữ liệu lớn và các kịch bản mà chúng tôi muốn khám phá nhanh nhiều mô hình; MCMC phù hợp với các tập dữ liệu và kịch bản nhỏ hơn, nơi chúng tôi vui vẻ trả chi phí tính toán nặng hơn cho các mẫu chính xác hơn. Ví dụ: chúng tôi có thể sử dụng MCMC trong một cài đặt mà chúng tôi đã dành 20 năm để thu thập một bộ dữ liệu nhỏ nhưng đắt tiền, nơi chúng tôi tự tin rằng mô hình của chúng tôi phù hợp và khi chúng tôi yêu cầu suy luận chính xác. Chúng tôi có thể sử dụng suy luận đa dạng khi điều chỉnh mô hình văn bản xác suất cho một tỷ tài liệu văn bản và trong đó các suy luận sẽ được sử dụng để phục vụ kết quả tìm kiếm cho một lượng lớn người dùng. Trong kịch bản này, chúng ta có thể sử dụng tính toán phân tán và tối ưu hóa ngẫu nhiên để mở rộng và tăng tốc độ suy luận và chúng ta có thể dễ dàng khám phá nhiều mô hình dữ liệu khác nhau.


Tôi nghĩ Stan là phần mềm nhanh nhất để thực hiện MCMC (NUTS). Cách nhanh nhất (hoặc mạnh hơn) để thực hiện suy luận biến đổi là gì?
skan

3
@skan Câu hỏi tuyệt vời! Phần mềm VI gần nhất mà tôi thấy với phần mềm VI đa năng là edward , mặc dù tôi đã không sử dụng phần mềm này . (Nhiều ứng dụng của VI là tùy chỉnh, trong đó chúng lấy ra một thuật toán để phù hợp với mô hình quan tâm cụ thể.)
Sean Easter

2
Stan cũng hỗ trợ VI. Hạn chế duy nhất của stan là nó không thể lấy mẫu các biến rời rạc.
RJTK

Ngoài ra, tôi không tin Stan chạy ADVI trên GPU ... dù sao đi nữa. Phần mềm nhanh nhất cho suy luận đa dạng có khả năng là TensorFlow Xác suất (TFP) hoặc Pyro, cả hai đều được xây dựng trên các khung học sâu được tối ưu hóa cao (ví dụ CUDA). TFP phát triển từ công việc đầu tiên của Edward bởi Dustin Tran, người hiện đang lãnh đạo TFP tại Google.
Adam Erickson

@AdamErickson FYI: Stan dần bắt đầu sử dụng GPU arxiv.org/abs/1907.01063
Tim
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.