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!
źródło
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.
źródło
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.
źródło
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.
źródło