Lập trình xác suất là gì?


10

Trong năm qua, tôi đã nghe rất nhiều về các khung lập trình xác suất (PP) như PyMC3Stan , và PP tuyệt vời như thế nào. Và hôm nay, ai đó đã chia sẻ liên kết này với tôi: Pyro: Ngôn ngữ lập trình xác suất sâu

Tuy nhiên, tôi không thực sự làm theo những gì đặc biệt về nó vì nó giống như bất cứ điều gì bạn có thể làm trong PP bạn có thể làm trong bất kỳ ngôn ngữ mục đích chung nào khác. Tôi chắc chắn có những khía cạnh kỹ thuật về PP làm cho nó hấp dẫn (ví dụ như tính toán song song), nhưng điều này sang một bên, PP có thực sự khác biệt với bất kỳ ngôn ngữ nào khác không?

Câu hỏi: Tôi đã tự hỏi liệu có sự đồng thuận về PP là gì và nó khác với các phần mềm tập trung thống kê khác như R, Matlab, Mathematica như thế nào. Cần lưu ý rằng PyMC3Stanđược tập trung vào phân tích Bayes nhiều hơn.

Thực hiện một nghiên cứu nhỏ trên Google, tôi đã bắt gặp hai định nghĩa sau. Thứ nhất trừu tượng hơn, và thứ hai nhiều hơn về các đặc tính kỹ thuật của PP.

1.2. Lập trình xác suất là

Thay vào đó, lập trình xác suất là một công cụ cho mô hình thống kê. Ý tưởng là mượn bài học từ thế giới ngôn ngữ lập trình và áp dụng chúng vào các vấn đề thiết kế và sử dụng các mô hình thống kê. Các chuyên gia xây dựng các mô hình thống kê đã có sẵn bằng tay, theo ký hiệu toán học trên giấy nhưng đó là một quá trình chỉ dành cho chuyên gia khó có thể hỗ trợ với lý luận cơ học. Cái nhìn sâu sắc quan trọng trong PP là mô hình thống kê có thể, khi bạn làm đủ, bắt đầu cảm thấy rất giống như lập trình. Nếu chúng ta thực hiện bước nhảy vọt và thực sự sử dụng một ngôn ngữ thực sự cho mô hình của mình, nhiều công cụ mới trở nên khả thi. Chúng ta có thể bắt đầu tự động hóa các tác vụ được sử dụng để biện minh cho việc viết một bài báo cho mỗi trường hợp.

Đây là định nghĩa thứ hai : ngôn ngữ lập trình xác suất là ngôn ngữ lập trình thông thường với randrất nhiều công cụ liên quan giúp bạn hiểu hành vi thống kê của chương trình.

Cả hai định nghĩa này đều chính xác. Họ chỉ nhấn mạnh các góc độ khác nhau trên cùng một ý tưởng cốt lõi. Cái nào có ý nghĩa với bạn sẽ phụ thuộc vào những gì bạn muốn sử dụng PP cho. Nhưng đừng bị phân tâm bởi thực tế là các chương trình PPL trông rất giống các triển khai phần mềm thông thường, trong đó mục tiêu là chạy chương trình và nhận được một số loại đầu ra. Mục tiêu trong PP là phân tích, không thực hiện (nhấn mạnh thêm).

- Lập trình xác suất

Tôi muốn biết liệu cộng đồng thống kê chung có đồng ý với hai định nghĩa về PP này hay không và nếu có bất kỳ đặc điểm nào khác thì định nghĩa này có thể bị thiếu.


1
Tôi đồng ý với định nghĩa đầu tiên: PP làm cho bạn xác định mô hình thống kê và tự xử lý phần mô phỏng. Ví dụ ngoài Stan là BUGS, Church, Anglican. R không phải là PP.
Tây An

@ Xi'an, bạn có thể nói rằng PP dường như tập trung chủ yếu vào mô hình thống kê Bayes? Nếu vậy, PP có nghĩa là chỉ hỗ trợ một cách tiếp cận Bayes?
Jon

Trọng tâm là "Mô hình phân cấp". Điều này vốn đã thuận tiện cho các phương pháp Bayes. Mặc dù có một cách giải thích thường xuyên ít tự nhiên là tốt.
knrumsey

Câu trả lời:


2

Lập trình xác suất là một kỹ thuật để xác định mô hình thống kê. Không giống như xác định mô hình bằng chức năng phân phối xác suất của nó hoặc vẽ biểu đồ, bạn biểu thị mô hình bằng ngôn ngữ lập trình, thường là bộ lấy mẫu chuyển tiếp.

Suy luận tự động từ một đặc tả mô hình là một tính năng điển hình của các công cụ lập trình xác suất, nhưng nó không cần thiết và không cần thiết phải là Bayesian. Có rất nhiều điều hữu ích mà bạn có thể làm với một mô hình được chỉ định làm chương trình xác suất. Ví dụ, bài viết Các hàm mật độ xác suất xuất phát từ các chương trình chức năng xác suất mô tả một công cụ phân tích chương trình xác suất và thực hiện chức năng phân phối xác suất của nó. Bài viết Phát hiện các đối xứng tham số trong các mô hình xác suất phân tích một chương trình xác suất cho các đối xứng tham số. Loại công việc này cũng thuộc chương trình xác suất.

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.