Khi nào nên sử dụng và không sử dụng bất kỳ phương pháp tối đa hóa cụ thể nào phụ thuộc rất nhiều vào loại dữ liệu bạn có. nlm
sẽ hoạt động tốt nếu bề mặt không đặc biệt "thô" và ở mọi nơi đều khác biệt. nlminb
cung cấp một cách để hạn chế các giá trị tham số cho các hộp giới hạn cụ thể. optim
, có lẽ là trình tối ưu hóa được sử dụng nhiều nhất, cung cấp một vài thói quen tối ưu hóa khác nhau; ví dụ, BFGS, L-BFGS-B và ủ mô phỏng (thông qua tùy chọn SANN), cái sau có thể hữu ích nếu bạn gặp vấn đề tối ưu hóa khó khăn. Ngoài ra còn có một số tối ưu hóa có sẵn trên CRAN. rgenoud
, ví dụ, cung cấp một thuật toán di truyền để tối ưu hóa.DEoptim
sử dụng một thói quen tối ưu hóa di truyền khác nhau. Các thuật toán di truyền có thể chậm hội tụ, nhưng thường được đảm bảo để hội tụ (kịp thời) ngay cả khi có sự không liên tục trong khả năng. Tôi không biết DEoptim
, nhưng rgenoud
được thiết lập để sử dụng snow
để xử lý song song, điều này giúp ích phần nào.
Vì vậy, một câu trả lời có thể không thỏa đáng là bạn nên sử dụng nlm
hoặc bất kỳ trình tối ưu hóa nào khác nếu nó hoạt động cho dữ liệu bạn có. Nếu bạn có khả năng cư xử đúng mực, bất kỳ thói quen nào được cung cấp bởi optim
hoặc nlm
sẽ cho bạn kết quả tương tự. Một số có thể nhanh hơn các số khác, có thể có hoặc không quan trọng, tùy thuộc vào kích thước của tập dữ liệu, v.v ... Về số lượng tham số mà các thói quen này có thể xử lý, tôi không biết, mặc dù có lẽ khá ít. Tất nhiên, bạn càng có nhiều tham số, bạn càng có nhiều khả năng gặp vấn đề với sự hội tụ.