Kiedy stosować zejście gradientu vs Monte Carlo jako technikę numerycznej optymalizacji


11

Gdy zestawu równań nie można rozwiązać analitycznie, możemy zastosować algorytm spadku gradientu. Wydaje się jednak, że istnieje również metoda symulacji Monte Carlo, która może być wykorzystana do rozwiązania problemów, które nie mają rozwiązań analitycznych.

Jak powiedzieć, kiedy należy korzystać z opadania gradientu, a kiedy Monte Carlo? A może po prostu mylę termin „symulacja” z „optymalizacją”?

Dziękuję Ci bardzo!

Odpowiedzi:


4

Te techniki robią różne rzeczy.

Spadek gradientu jest techniką optymalizacji, dlatego jest powszechny w każdej metodzie statystycznej, która wymaga maksymalizacji (MLE, MAP).

Symulacja Monte Carlo służy do obliczania całek przez próbkowanie z rozkładu i ocenę niektórych funkcji na próbkach. Dlatego jest powszechnie stosowany z technikami, które wymagają obliczenia oczekiwań (wnioskowanie bayesowskie, testowanie hipotezy bayesowskiej).


Więc zejście gradientu wiąże się z różnicowaniem (maksima, minima), a Monte Carlo wiąże się z integracją?
Victor

Gradient jest (jednym z wielu) uogólnieniem pochodnej. Opadanie gradientu jest więc powiązane z różnicowaniem. Powiedziałbym jednak: „Pochodzenie gradientu wykorzystuje pochodne w celu optymalizacji”, a „Monte Carlo używa próbkowania w celu integracji”, gdybym musiał użyć jak najmniej słów.
jlimahaverford

4

Obie są ogromnymi rodzinami algorytmów, więc trudno jest podać dokładną odpowiedź, ale ...

Gradient wynurzanie (lub zniżanie) jest przydatne, gdy chcesz znaleźć maksimum (lub minimum). Na przykład możesz znaleźć tryb rozkładu prawdopodobieństwa lub kombinację parametrów, które minimalizują niektóre funkcje strat. „Ścieżka” potrzebna do znalezienia tych ekstremów może powiedzieć ci trochę o ogólnym kształcie funkcji, ale nie jest to zamierzone; w rzeczywistości, im lepiej to działa, tym mniej wiesz o wszystkim oprócz ekstremy.

Metody Monte Carlo są nazwane na cześć kasyna Monte Carlo, ponieważ, podobnie jak kasyno, zależą od losowości. Można go używać na wiele różnych sposobów, ale większość z nich koncentruje się na przybliżeniu rozkładów. Na przykład algorytmy Monte Carlo w łańcuchu Markowa znajdują sposoby skutecznego próbkowania ze skomplikowanych rozkładów prawdopodobieństwa. Inne symulacje Monte Carlo mogą generować rozkłady względem możliwych wyników.


„Metody Monte Carlo” zazwyczaj odnoszą się do tego, co robisz z próbkami, w przeciwieństwie do metod uzyskiwania próbek. W MCMC „Łańcuch Markowa” odnosi się do procesu pobierania próbek.
jlimahaverford

Naprawdę? Zawsze myślałem, że Monte Carlo implikuje, że dzieje się coś w rodzaju randomizacji i nie znaczy nic więcej. W MCMC prawdą jest, że w grę wchodzą Łańcuchy Markowa, ale próbujesz także losowo z łańcuchów (stąd. Monte-Carlo) /
Matt Krause

Być może jest to kwestia opinii. Gdybym używał MCMC do przybliżenia średniej rozkładu z tyłu, użyłbym losowych spacerów po łańcuchu Markowa do przybliżenia próbki z mojego nienormalizowanego rozkładu, użyłbym całkowania Monte Carlo do przybliżenia średniej. Metody pobierania próbek uważam za narzędzia umożliwiające metody Monte Carlo. Na przykład nie nazwałbym odrzucenia próbkowaniem metodą Monte Carlo, ale mogę sobie wyobrazić, że ktoś używa ich razem.
jlimahaverford

Biorąc to wszystko pod uwagę, Wikipedia rozważa odrzucenie próbkowania metody Monte Carlo. Jest więc całkiem możliwe, że moje pomysły tutaj są całkowicie błędne.
jlimahaverford

2

Jak wyjaśniają inni, opadanie / wznoszenie gradientu dokonuje optymalizacji, tzn. Znajduje maksimum lub minimum funkcji. Monte Carlo jest metodą symulacji stochastycznej, tzn. Aproksymuje funkcję rozkładu skumulowanego poprzez powtarzane losowe próbkowanie. Nazywa się to również „integracją Monte Carlo”, ponieważ cdf dystrybucji ciągłej jest w rzeczywistości całką.

Wspólne między spadkiem gradientu a Monte Carlo jest to, że oba są szczególnie przydatne w problemach, w których nie ma rozwiązania w formie zamkniętej. Możesz użyć prostego różnicowania, aby znaleźć maksymalny lub minimalny punkt dowolnej funkcji wypukłej, ilekroć możliwe jest rozwiązanie analityczne. Jeśli takie rozwiązanie nie istnieje, musisz zastosować metodę iteracyjną, taką jak opadanie gradientu. To samo dotyczy symulacji Monte Carlo; możesz w zasadzie użyć zwykłej integracji do analitycznego obliczenia dowolnego pliku cdf, ale nie ma gwarancji, że takie rozwiązanie w formie zamkniętej zawsze będzie możliwe. Problem można rozwiązać ponownie dzięki symulacji Monte Carlo.

Czy możesz użyć spadku gradientu do symulacji i Monte Carlo do optymalizacji? Prostą odpowiedzią jest: nie. Monte Carlo potrzebuje elementu stochastycznego (rozkładu) do pobierania próbek, a opadanie gradientu nie ma możliwości radzenia sobie z problemami informacji stochastycznej. Możesz jednak połączyć symulację z optymalizacją, aby uzyskać mocniejsze algorytmy optymalizacji stochastycznej, które są w stanie rozwiązać bardzo złożone problemy, których nie jest w stanie rozwiązać proste zejście gradientu. Przykładem tego może być Symulowane Wyżarzanie Monte Carlo.


2

Ta odpowiedź jest częściowo błędna. Rzeczywiście można połączyć metody Monte Carlo z opadaniem gradientu. Można użyć metod Monte Carlo do oszacowania gradientu funkcji straty, który jest następnie wykorzystywany przez obniżanie gradientu do aktualizacji parametrów. Popularną metodą Monte Carlo do oszacowania gradientu jest estymator gradientu punktowego , który można np. Zastosować w uczeniu się przez wzmocnienie. Patrz Monte Carlo Gradient Estimation in Machine Learning (2019) Shakir Mohamed i in. po więcej informacji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.