Söylediklerinize dayanarak: 50 değişken için optimizasyon yapmanız gerektiğini varsayıyorum; Ayrıca, analitik türevleri bulmanın çok pahalı olduğu (nümerik olarak çıksın) ve optimizasyonunuzun kısıtlanmamış olduğu bir duruma sahip olduğunuzu varsayıyorum.
Vurgulayayım, 25-30 ila 100 değişken arasında biraz şanssızsınız, büyük veya küçük ölçekli optimizasyon rutinleri arasında seçim yapmak için biraz alacakaranlık bölgesi. Bununla birlikte, hiçbir şey kaybolmaz.
Birinci dereceden türevin bile bu türden kurtulmak pahalı olduğu göz önüne alındığında Newton yöntemi fikrini öldürür. Hessian'ınız başlamak gibi biraz çapraz ise, Quasi-Newton (BFGS) ile biraz şansınız olabilir. CG genellikle BFGS'den biraz daha yavaştır, bu yüzden muhtemelen bu şeyleri çok fazla iyileştirmeyecektir; bellek de bir sorunsa kullanın (veya bu durumda L-BFGS'yi tercih edin). Ayrıca, işlevinizi değerlendirmenin ne kadar yavaş olduğu göz önüne alındığında, basit bir en dik iniş / satır arama algoritması kıvrımlı bir şekilde yavaş olacaktır; Simüle Tavlama ve diğer rastgele arama varyantları için de aynı şeyler geçerlidir (HMC'ye ve tüm bu cazlara erişiminiz olmadığını varsayalım).
Yani, tek bir fonksiyon değerlendirmesi söz konusu olduğunda paranız için en iyi patlamaya ihtiyacınız olduğunda: Powell'ın yöntemine gidin ve COBYLA'yı test edin; kısıtlanmış bir optimizasyon algoritması olmasına rağmen, şeyleri hızlandırmak için dahili olarak fonksiyonunuzun gradyanını yaklaşık olarak doğrusal hale getireceğinden, fonksiyonunuzun doğrusallığından yararlanabilecektir. Ayrıca kesinlikle Python için NLopt deneyin . Çok fazla gradyan içermeyen optimize edici var; UOBYQA'yı deneyin; Powell'ın beyni de (Kuadratik Yaklaşımlarla Kısıtsız Optimizasyon).
Çok kısaca: N-CG algoritmaları Hessian'ın hesaplanmasına bağlıdır ve Hessian'ın hesaplanması çok pahalı görünüyor. NLCG ve BFGS gerektirmez, ancak ilk adımlarında bir kez hesaplamaya çalışabilirler.
Simplex algoritmasını bilerek bıraktım çünkü tamamen farklı bir canavar; degradelerle böyle bir şey yok. Deneyin ama gerçekten yorum yapamam; gerçekten probleminizin doğasına bağlıdır.
Sayısal optimizasyonla ilgili ilk iyi referans için CTKelly'nin Optimizasyon için Yinelemeli Yöntemler kitabı sizi oldukça güzel bir şekilde ele alacaktır.