Một số cải tiến nổi tiếng so với các thuật toán MCMC trong sách giáo khoa mà mọi người sử dụng cho suy luận Bayes là gì?


21

Khi tôi mã hóa một mô phỏng Monte Carlo cho một số vấn đề và mô hình đủ đơn giản, tôi sử dụng một mẫu giáo khoa Gibbs rất cơ bản. Khi không thể sử dụng lấy mẫu Gibbs, tôi viết mã cho sách giáo khoa Metropolis-Hastings tôi đã học cách đây nhiều năm. Ý nghĩ duy nhất tôi đưa ra cho nó là chọn phân phối nhảy hoặc các tham số của nó.

Tôi biết có hàng trăm và hàng trăm phương pháp chuyên biệt cải thiện các tùy chọn trong sách giáo khoa, nhưng tôi thường không bao giờ nghĩ đến việc sử dụng / học chúng. Nó thường cảm thấy như nó quá nhiều nỗ lực để cải thiện một chút những gì đã hoạt động rất tốt.

Nhưng gần đây tôi đã suy nghĩ nếu có thể không có phương pháp chung mới nào có thể cải thiện những gì tôi đã làm. Đã nhiều thập kỷ kể từ khi những phương pháp đó được phát hiện. Có lẽ tôi thực sự lỗi thời!

Có bất kỳ lựa chọn thay thế nổi tiếng nào cho Metropolis-Hastings đó là:

  • hợp lý dễ thực hiện,
  • phổ biến như MH,
  • và luôn luôn cải thiện kết quả của MH theo một nghĩa nào đó (hiệu suất tính toán, độ chính xác, v.v ...)?

Tôi biết về một số cải tiến rất chuyên biệt cho các mô hình rất chuyên biệt, nhưng có một số nội dung chung mà mọi người sử dụng mà tôi không biết?


1
Ý bạn là chuỗi Markov Monte Carlo? Các cải tiến trong sách giáo khoa cho các mô phỏng Monte Carlo mà tôi có thể nghĩ đến liên quan đến việc lấy mẫu phản kháng và / hoặc phân tầng, cũng như quasi-Monte Carlo. Việc bạn chỉ đề cập đến Gibbs và Metropolis-Hastings là dấu hiệu của điện toán Bayes.
StasK

@StasK, Có, tôi chủ yếu quan tâm đến các mô hình bayes và các mô hình vật lý thống kê (chỉ là suy luận bayes trên các phân phối giống như gibbs p (x) = 1 / Z exp (-E (x) / T)). Xin lỗi vì đã không đề cập đến điều đó.
Rafael S. Calsaverini

3
(+1) OK, một thuật toán thích ứng đa mục đích tốt đẹp "gần đây" được xuất bản và đã được triển khai trong R, Python và Matlab là twalk . Nó hoạt động tốt nhưng luôn luôn là một thực hành tốt để kiểm tra lại bằng phương pháp khác. BTW, MH được triển khai trong gói R mcmc . Tất nhiên, có nhiều người khác nhưng hầu hết trong số họ không được thực hiện ở cấp độ tổng quát này và / hoặc họ khó thực hiện. Một khu vực phổ biến khác hiện nay là Sequential Monte Carlo. Tôi hi vọng cái này giúp được.

2
Bạn có thể đã biết điều này, nhưng việc lấy mẫu lát cắt khá dễ thực hiện và tránh được một số sai lầm của thuật toán đô thị "đi bộ ngẫu nhiên" điển hình. Một vấn đề với các thuật toán đô thị truyền thống là hành vi kiểu đi bộ ngẫu nhiên; thay vì di chuyển có chủ đích hướng tới những trạng thái tốt, họ vấp ngã, di chuyển chậm chạp đến những khu vực tốt. Đây là động lực đằng sau các phương pháp sử dụng thông tin trong gradient, chẳng hạn như HMC, nhưng lấy mẫu lát cũng rơi vào trại này và tự động hơn.
anh chàng

1
Tôi hầu như không biết gì về ABC, nhưng tôi sẽ rất vui nếu có ai có thể giải thích một chút về sự khác biệt giữa các phương pháp ABC và MCMC ...
Manoel Galdino

Câu trả lời:


20

Tôi không phải là chuyên gia trong bất kỳ vấn đề nào trong số này, nhưng tôi nghĩ dù sao tôi cũng sẽ đưa họ ra ngoài để xem cộng đồng nghĩ gì. Sửa chữa được chào đón.

Một phương pháp ngày càng phổ biến, không đơn giản để thực hiện, được gọi là Hamiltonian Monte Carlo (hoặc đôi khi là Hybrid Monte Carlo). Nó sử dụng một mô hình vật lý với tiềm năng và động năng để mô phỏng một quả bóng lăn xung quanh không gian tham số, như được mô tả trong bài báo này của Radford Neal. Mô hình vật lý cần một lượng tài nguyên tính toán hợp lý, do đó bạn có xu hướng nhận được ít cập nhật hơn, nhưng các cập nhật có xu hướng ít tương quan hơn. HMC là công cụ đằng sau phần mềm STAN mới đang được phát triển như một sự thay thế linh hoạt và hiệu quả hơn cho BUGS hoặc JAGS cho mô hình thống kê.

Ngoài ra còn có một nhóm các phương pháp liên quan đến việc "làm nóng" chuỗi Markov, mà bạn có thể nghĩ đến như giới thiệu nhiễu nhiệt cho mô hình và tăng cơ hội lấy mẫu các trạng thái xác suất thấp. Thoạt nhìn, đó có vẻ là một ý tưởng tồi, vì bạn muốn mô hình lấy mẫu theo tỷ lệ với xác suất sau. Nhưng bạn thực sự chỉ kết thúc bằng cách sử dụng trạng thái "nóng" để giúp chuỗi kết hợp tốt hơn. Các mẫu thực tế chỉ được thu thập khi chuỗi ở nhiệt độ "bình thường". Nếu bạn thực hiện đúng, bạn có thể sử dụng các chuỗi được làm nóng để tìm các chế độ mà một chuỗi thông thường sẽ không thể thực hiện được do các thung lũng lớn có xác suất thấp ngăn chặn quá trình chuyển từ chế độ này sang chế độ khác. Một vài ví dụ về các phương pháp này bao gồm MCMC kết hợp với Metropolis ,, ủ song song , và lấy mẫu quan trọng ủ .

Cuối cùng, bạn có thể sử dụng tuần tự Monte Carlo hoặc lọc hạt khi tỷ lệ loại bỏ sẽ cao đến mức tất cả các phương pháp khác đều thất bại. Tôi biết ít nhất về họ phương pháp này, vì vậy mô tả của tôi có thể không chính xác ở đây , nhưng sự hiểu biết của tôi là nó hoạt động như thế này. Bạn bắt đầu bằng cách chạy bộ lấy mẫu yêu thích của mình, mặc dù cơ hội từ chối về cơ bản là một. Thay vì từ chối tất cả các mẫu của bạn, bạn chọn những mẫu ít phản đối nhất và khởi tạo các bộ lấy mẫu mới từ đó, lặp lại quy trình cho đến khi bạn tìm thấy một số mẫu mà bạn thực sự có thể chấp nhận. Sau đó, bạn quay lại và sửa cho thực tế là các mẫu của bạn không hợp lệ, vì bạn đã không khởi tạo bộ lấy mẫu từ các vị trí ngẫu nhiên.

Hi vọng điêu nay co ich.

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.