Có vẻ như bạn quan tâm đến việc nghiên cứu các phương pháp tối ưu hóa ngẫu nhiên . Nếu bạn tái tối ưu hóa khung như một loại vấn đề lấy mẫu, bạn sẽ có được phương pháp tối ưu hóa ngẫu nhiên và phương pháp sau này sẽ chỉ thuận lợi nếu nó cung cấp một số cải tiến so với các phương pháp tối ưu hóa xác định tương tự.
Nói chung, các phương pháp tối ưu hóa ngẫu nhiên thuộc loại này sẽ liên quan đến việc tạo ra các giá trị ngẫu nhiên theo cách phụ thuộc vào chức năng được tối ưu hóa, và do đó, nó có khả năng ít nhất là chuyên sâu tính toán (và có thể tính toán nhiều hơn) so với các phương pháp xác định tương ứng . Phương pháp ngẫu nhiên cũng thường phức tạp hơn để hiểu. Do đó, lợi thế duy nhất có khả năng tích lũy cho các phương pháp tối ưu hóa ngẫu nhiên (được xây dựng tốt), là chúng thường giữ một số xác suất khác không của các khu vực "tìm kiếm" của miền có thể bị bỏ qua bởi các phương pháp xác định, và vì vậy chúng là mạnh mẽ hơn, nếu bạn sẵn sàng chạy chúng trong một thời gian dài.
Hầu hết các phương pháp tối ưu hóa xác định tiêu chuẩn bao gồm thực hiện các bước lặp theo hướng tối ưu bằng cách chọn hướng chuyển động xác định và di chuyển theo hướng đó theo một số lượng xác định (ví dụ: với độ dốc cao nhất chúng ta di chuyển theo hướng của vectơ độ dốc). Hướng và độ dài của các bước thường được xác định bằng cách nhìn vào độ dốc của hàm, trong thực tế, được tính bằng cách nhìn vào độ dốc theo mức tăng chuyển động nhỏ. Bằng cách biến tối ưu hóa thành vấn đề lấy mẫu, bạn thực sự chỉ cần di chuyển theo hướng ngẫu nhiên theo một lượng ngẫu nhiên, nhưng bạn vẫn sẽ muốn sử dụng thông tin về độ dốc của hàm để xác định hành vi ngẫu nhiên của chuyển động này. Có khả năng phương thức sau sẽ sử dụng cùng thông tin như phương thức trước, chỉ trong một phức tạp hơn (và do đó, cách tính toán chuyên sâu hơn). Dưới đây tôi sẽ xây dựng một phương thức sử dụng thuật toán MH, dựa trên mô tả của bạn.
Thực hiện với thuật toán Metropolis-Hastings: Giả sử bạn đang xử lý một vấn đề tối đa hóa với phân phối trên một chiều và xem xét phương pháp lấy mẫu của Metropolis-Haging bằng cách sử dụng độ lệch Gaussian. Đây là một phương pháp lấy mẫu nổi tiếng khá mạnh mẽ chống lại hành vi khó chịu bởi mật độ lấy mẫu.
Để thực hiện thuật toán, chúng tôi tạo ra một chuỗi về độ lệch ngẫu nhiên, sau này chúng tôi sẽ nhân với tham số "băng thông" (vì vậy tham số này thể hiện độ lệch chuẩn của các bước được đề xuất của chúng tôi). Chúng tôi cũng tạo ra một chuỗi của các biến ngẫu nhiên thống nhất. Chúng tôi chọn giá trị bắt đầu một cách tùy ý và tạo chuỗi các giá trị mẫu theo cách đệ quy là:ε1,ε2,ε3,...∼IID N(0,1)λ>0U1,U2,U3,...∼U(0,1)x0
xt+1=⎧⎩⎨xt+λεt+1xtif Ut+1⩽exp(k(f(xt+λεt+1)−f(xt))),otherwise.
Thuật toán MH có phân phối cố định bằng mật độ đích, do đó chúng tôi có phân phối gần đúng cho lớn . Lấy giá trị lớn cho (liên quan đến tham số băng thông) sẽ có nghĩa là độ lệch theo hướng tối ưu sẽ được chấp nhận với xác suất cao và độ lệch khỏi tối ưu (hoặc vượt quá mức tối ưu) sẽ bị loại bỏ với xác suất cao. Do đó, trong thực tế, các giá trị mẫu sẽ hội tụ gần điểm tối đa của mật độ . (Vẫn có trường hợp điều này sẽ không xảy ra; ví dụ: nếu mật độ là lưỡng kim và thuật toán leo lên độ dốc sai.) Nếu chúng ta lấy giá trị lớn của thì phân phốiXn∼exp(k(f(x))nkfkexp(k(f(x)) tập trung cao gần giá trị tối đa hóa, do đó, trong trường hợp này, giá trị trung bình mẫu của các giá trị được lấy mẫu (loại bỏ một số giá trị burn-in) sẽ cho chúng ta ước tính tốt về giá trị tối đa hóa trong tối ưu hóa .
Bây giờ, giả sử chúng ta chống lại giá trị lớn của bằng cách đặt băng thông là nhỏ. Trong trường hợp đó, chúng tôi nhận được các giá trị nhỏ cho độ lệch, vì vậy chúng tôi có xác suất chấp nhận gần đúng:kλ
exp(k(f(xt+λεt+1)−f(xt)))≈exp(kλ⋅εt+1⋅f′(xt)).
Chúng ta có thể thấy rằng trong trường hợp này, xác suất chấp nhận được xác định bởi đạo hàm của mật độ, độ lớn và hướng của độ lệch và giá trị .εt+1kλ
Vì vậy, thuật toán này có thực sự hoạt động tốt hơn thuật toán tối ưu hóa xác định áp dụng không? Chà, chúng ta có thể thấy rằng thuật toán yêu cầu chúng ta tính toán mật độ ở mỗi bước tiềm năng và nếu tham số băng thông nhỏ thì điều này tương đương với việc tính toán đạo hàm của hàm. Vì vậy, điều này khá giống với một hình thức tăng dần độ dốc ngẫu nhiên, với công việc tính toán nhiều hơn so với phương pháp xác định tương ứng. Ưu điểm, nếu có, là độ lệch đề xuất là ngẫu nhiên, và tất cả xảy ra với một số xác suất khác không (mặc dù biến mất rất nhanh), do đó thuật toán có khả năng "thoát" các vùng có mật độ cao, nhưng không tối đa hóa .