Khi nào nên sử dụng Gradient descent vs Monte Carlo như một kỹ thuật tối ưu hóa số


11

Khi một tập hợp các phương trình không thể được giải quyết bằng phương pháp phân tích, thì chúng ta có thể sử dụng thuật toán giảm độ dốc. Nhưng dường như cũng có phương pháp mô phỏng Monte Carlo có thể được sử dụng để giải quyết các vấn đề không có giải pháp phân tích.

Làm thế nào để biết khi nào nên sử dụng độ dốc gốc và khi nào nên sử dụng Monte Carlo? Hay tôi chỉ nhầm lẫn giữa thuật ngữ 'mô phỏng' với 'tối ưu hóa'?

Cảm ơn rât nhiều!

Câu trả lời:


4

Những kỹ thuật làm những việc khác nhau.

Gradient descent là một kỹ thuật tối ưu hóa, do đó nó phổ biến trong bất kỳ phương pháp thống kê nào yêu cầu tối đa hóa (MLE, MAP).

Mô phỏng Monte Carlo dành cho tích phân điện toán bằng cách lấy mẫu từ phân phối và đánh giá một số chức năng trên các mẫu. Do đó, nó thường được sử dụng với các kỹ thuật đòi hỏi tính toán kỳ vọng (Suy luận Bayes, Thử nghiệm giả thuyết Bayes).


Vì vậy, độ dốc gốc được kết nối với sự khác biệt (cực đại, cực tiểu) và monte carlo có liên quan đến tích hợp?
Victor

Độ dốc là một (một trong nhiều) khái quát của đạo hàm. Vì vậy, độ dốc gốc được liên kết với sự khác biệt. Nhưng tôi sẽ nói, "Gradient Descent sử dụng các dẫn xuất vì mục đích tối ưu hóa" và "Monte Carlo sử dụng lấy mẫu vì mục đích tích hợp", nếu tôi phải sử dụng càng ít từ càng tốt.
jlimahaverford

4

Cả hai đều là những thuật toán khổng lồ, vì vậy thật khó để đưa ra câu trả lời chính xác, nhưng ...

Gradient ascent (hoặc descent) rất hữu ích khi bạn muốn tìm mức tối đa (hoặc tối thiểu). Ví dụ: bạn có thể đang tìm chế độ phân phối xác suất hoặc kết hợp các tham số để giảm thiểu một số hàm mất mát. "Đường dẫn" cần thiết để tìm các extrema này có thể cho bạn biết một chút về hình dạng tổng thể của hàm, nhưng nó không có ý định; trong thực tế, nó hoạt động càng tốt, bạn sẽ càng ít biết về mọi thứ trừ sự cực đoan.

Các phương pháp Monte Carlo được đặt theo tên của sòng bạc Monte Carlo vì chúng, giống như sòng bạc, phụ thuộc vào sự ngẫu nhiên. Nó có thể được sử dụng theo nhiều cách khác nhau, nhưng hầu hết trong số này tập trung vào phân phối gần đúng. Các thuật toán Markov Chain Monte Carlo, ví dụ, tìm cách lấy mẫu hiệu quả từ các phân phối xác suất phức tạp. Mô phỏng Monte Carlo khác có thể tạo ra phân phối trên các kết quả có thể.


"Phương pháp Monte Carlo" thường đề cập đến những gì bạn làm với các mẫu trái ngược với các phương pháp lấy mẫu. Trong MCMC, "Chuỗi Markov" đề cập đến quá trình lấy mẫu.
jlimahaverford

Có thật không? Tôi đã luôn nghĩ rằng Monte Carlo ngụ ý rằng có một số loại ngẫu nhiên đang diễn ra và không có ý nghĩa nhiều hơn thế. Trong MCMC, đúng là Markov Chains có liên quan, nhưng bạn cũng lấy mẫu ngẫu nhiên từ các chuỗi (do đó là Monte-Carlo) /
Matt Krause

Có lẽ đây là một vấn đề quan điểm. Nếu tôi đang sử dụng MCMC để ước tính giá trị trung bình của phân phối sau, tôi sẽ sử dụng các bước ngẫu nhiên trên Chuỗi Markov để lấy mẫu từ phân phối không chuẩn hóa của mình, tôi sẽ sử dụng Tích hợp Monte Carlo để ước tính giá trị trung bình. Tôi coi phương pháp lấy mẫu là công cụ cho phép phương pháp Monte Carlo. Ví dụ, tôi sẽ không gọi việc từ chối lấy mẫu là phương pháp Monte Carlo, nhưng tôi có thể tưởng tượng ai đó sử dụng chúng cùng nhau.
jlimahaverford

Tất cả điều đó đang được nói, Wikipedia xem xét từ chối lấy mẫu phương pháp Monte Carlo. Vì vậy, hoàn toàn có thể là ý tưởng của tôi ở đây là hoàn toàn sai.
jlimahaverford

2

Như được giải thích bởi những người khác, giảm dần / tăng dần thực hiện tối ưu hóa, tức là tìm tối đa hoặc tối thiểu của một chức năng. Monte Carlo là một phương pháp mô phỏng ngẫu nhiên, tức là xấp xỉ hàm phân phối tích lũy thông qua lấy mẫu ngẫu nhiên lặp lại. Điều này cũng được gọi là "tích hợp Monte Carlo" vì cdf của phân phối liên tục thực sự là một phần không thể thiếu.

Điều phổ biến giữa độ dốc và Monte Carlo là cả hai đều đặc biệt hữu ích trong các vấn đề không có giải pháp dạng đóng. Bạn có thể sử dụng sự khác biệt đơn giản để tìm điểm tối đa hoặc tối thiểu của bất kỳ hàm lồi nào mỗi khi giải pháp phân tích là khả thi. Khi một giải pháp như vậy không tồn tại, bạn cần sử dụng một phương pháp lặp như giảm độ dốc. Là giống nhau cho mô phỏng Monte Carlo; về cơ bản bạn có thể sử dụng tích hợp đơn giản để tính toán bất kỳ cdf nào một cách phân tích nhưng không có gì đảm bảo rằng một giải pháp dạng đóng như vậy sẽ luôn luôn khả thi. Vấn đề trở nên có thể giải quyết được một lần nữa với mô phỏng Monte Carlo.

Bạn có thể sử dụng độ dốc gốc cho mô phỏng và Monte Carlo để tối ưu hóa không? Câu trả lời đơn giản là không có. Monte Carlo cần một yếu tố ngẫu nhiên (phân phối) để lấy mẫu từ và độ dốc gốc không có phương tiện xử lý các vấn đề thông tin ngẫu nhiên. Tuy nhiên, bạn có thể kết hợp mô phỏng với tối ưu hóa để tạo ra các thuật toán tối ưu hóa ngẫu nhiên mạnh hơn, có khả năng giải quyết các vấn đề rất phức tạp mà việc giảm độ dốc đơn giản không thể giải quyết. Một ví dụ về điều này sẽ là Mô phỏng luyện kim Monte Carlo.


1

Câu trả lời này là một phần sai. Bạn thực sự có thể kết hợp các phương pháp Monte Carlo với độ dốc gốc. Bạn có thể sử dụng các phương thức Monte Carlo để ước tính độ dốc của hàm mất, sau đó được sử dụng bởi độ dốc gốc để cập nhật các tham số. Một phương pháp phổ biến của Monte Carlo để ước tính độ dốc là công cụ ước tính độ dốc điểm , ví dụ có thể được sử dụng trong học tăng cường. Xem Ước tính Gradient Monte Carlo trong Machine Learning (2019) của Shakir Mohamed et al. để biết thêm.

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.