Interesuje mnie maksymalizacja funkcji , gdzie .
Problem polega na tym, że nie znam formy analitycznej funkcji ani jej pochodnych. Jedyne, co mogę zrobić, to ocenić funkcję punktowo, wartość i w tym momencie uzyskać oszacowanie . Jeśli chcę, mogę zmniejszyć zmienność tych szacunków, ale muszę zapłacić rosnące koszty obliczeniowe.
Oto, co próbowałem do tej pory:
Stochastyczne strome zejście ze skończonymi różnicami: może działać, ale wymaga dużo strojenia (np. Sekwencji wzmocnienia, współczynnika skalowania) i często jest bardzo niestabilne.
Symulowane wyżarzanie: działa i jest niezawodne, ale wymaga wielu ocen funkcji, więc stwierdziłem, że jest dość powolny.
Pytam więc o sugestie / pomysły na temat możliwej alternatywnej metody optymalizacji, która może działać w tych warunkach. Utrzymuję problem tak ogólny, jak to możliwe, aby zachęcić do sugestii z obszarów badań innych niż moje. Muszę dodać, że byłbym bardzo zainteresowany metodą, która pozwoliłaby mi oszacować Hesję przy zbieżności. Jest tak, ponieważ mogę go użyć do oszacowania niepewności parametrów . W przeciwnym razie będę musiał użyć różnic skończonych wokół maksimum, aby uzyskać oszacowanie.
źródło
Odpowiedzi:
Nasz pakiet Matlab SnobFit został stworzony właśnie do tego celu. Nie jest wymagane założenie dotyczące rozkładu hałasu. Co więcej, wartości funkcji mogą być dostarczane przez pliki tekstowe, dzięki czemu można je zastosować do funkcji zaimplementowanych w dowolnym systemie zdolnym do napisania pliku tekstowego. Zobacz
http://www.mat.univie.ac.at/~neum/software/snobfit/
SnobFit został opracowany dla aplikacji, w których funkcja, która ma być zoptymalizowana, nawet nie istniała, a wartości funkcji (miara jakości produkcji) zostały uzyskane przez specjalistyczny, drogi sprzęt tworzący przykładowe produkty i mierzący je ręcznie, co daje około 50 funkcji oceny dziennie.
źródło
Istnieje kilka technik optymalizacji bayesowskiej , które można wypróbować. Najłatwiejsze są oparte na procesie Gaussa:
Działają, tworząc tylne względem wiarygodnych funkcje, dają dotychczasowe obserwacje i sugerują kolejny punkt, aby szybko nauczyć się funkcji i znaleźć globalne maksima (patrz mój post na blogu ).
Kolejną zaletą jest to, że można oszacować Hesjan na maksima. Musisz jednak określić model hałasu.
źródło
Algorytm SPSA Jamesa Spalla (skrót od Stochastic Perturbation Simulation Annealing, jeśli dobrze pamiętam) został zaprojektowany dla dokładnie tego rodzaju problemu. Ma kilka artykułów, w których używa go do rozwiązywania problemów takich jak ten, który opisujesz.
źródło