Tweet Share Share

Metody Monte Carlo są klasą technik losowego próbkowania rozkładu prawdopodobieństwa.

Istnieje wiele dziedzin problemowych, w których opisanie lub oszacowanie rozkładu prawdopodobieństwa jest stosunkowo proste, ale obliczenie pożądanej wielkości jest niepraktyczne. Może to wynikać z wielu powodów, takich jak stochastyczna natura dziedziny lub wykładnicza liczba zmiennych losowych.

Zastępczo, pożądana wielkość może być przybliżona za pomocą losowego próbkowania, zwanego metodami Monte Carlo. Metody te były początkowo stosowane w czasie, gdy powstały pierwsze komputery i pozostają wszechobecne we wszystkich dziedzinach nauki i inżynierii, w tym w sztucznej inteligencji i uczeniu maszynowym.

W tym poście poznasz metody Monte Carlo do próbkowania rozkładów prawdopodobieństwa.

Po przeczytaniu tego postu będziesz wiedział:

  • Często nie możemy obliczyć pożądanej wielkości w prawdopodobieństwie, ale możemy określić rozkłady prawdopodobieństwa dla zmiennych losowych bezpośrednio lub pośrednio.
  • Monte Carlo sampling klasa metod losowego próbkowania z rozkładu prawdopodobieństwa.
  • Monte Carlo sampling stanowi podstawę dla wielu metod uczenia maszynowego, takich jak resampling, strojenie hiperparametrów i uczenie zespołowe.

Zacznij swój projekt z moją nową książką Probability for Machine Learning, zawierającą tutoriale krok po kroku oraz pliki z kodem źródłowym Pythona dla wszystkich przykładów.

Zacznijmy.

Delikatne wprowadzenie do próbkowania Monte Carlo dla prawdopodobieństwa
Zdjęcie autorstwa Med Cruise Guide, pewne prawa zastrzeżone.

Przegląd

Tutorial ten podzielony jest na trzy części; są to:

  1. Potrzeba próbkowania
  2. Czym są metody Monte Carlo?
  3. Przykłady metod Monte Carlo

Potrzeba próbkowania

Wiele jest problemów w prawdopodobieństwie, a szerzej w uczeniu maszynowym, gdzie nie możemy bezpośrednio obliczyć analitycznego rozwiązania.

W rzeczywistości, można argumentować, że wnioskowanie dokładne może być niewykonalne dla większości praktycznych modeli probabilistycznych.

Dla większości modeli probabilistycznych o znaczeniu praktycznym, wnioskowanie dokładne jest niewykonalne, więc musimy uciec się do jakiejś formy aproksymacji.

– Strona 523, Pattern Recognition and Machine Learning, 2006.

Pożądane obliczenie jest zazwyczaj sumą rozkładu dyskretnego lub całką rozkładu ciągłego i jest niepraktyczne do obliczenia. Obliczenia mogą być niewykonalne z wielu powodów, takich jak duża liczba zmiennych losowych, stochastyczny charakter dziedziny, szum w obserwacjach, brak obserwacji i inne.

W problemach tego typu często możliwe jest zdefiniowanie lub oszacowanie rozkładów prawdopodobieństwa dla zmiennych losowych, bezpośrednio lub pośrednio poprzez symulację obliczeniową.

Zamiast bezpośredniego obliczania wielkości można zastosować próbkowanie.

Próbkowanie zapewnia elastyczny sposób aproksymacji wielu sum i całek przy obniżonych kosztach.

– Strona 590, Deep Learning, 2016.

Próbki mogą być losowane losowo z rozkładu prawdopodobieństwa i używane do aproksymacji pożądanej wielkości.

Ta ogólna klasa technik losowego pobierania próbek z rozkładu prawdopodobieństwa jest określana jako metody Monte Carlo.

Want to Learn Probability for Machine Learning

Take my free 7-day email crash course now (with sample code).

Kliknij, aby się zapisać, a także otrzymać darmową wersję PDF Ebook kursu.

Download Your FREE Mini-Course

What Are Monte Carlo Methods?

Monte Carlo methods, lub w skrócie MC, to klasa technik losowego próbkowania rozkładu prawdopodobieństwa.

Są trzy główne powody użycia metod Monte Carlo do losowego próbkowania rozkładu prawdopodobieństwa; są to:

  • Oszacowanie gęstości, zebranie próbek w celu przybliżenia rozkładu funkcji celu.
  • Przybliżenie wielkości, takiej jak średnia lub wariancja rozkładu.
  • Optymalizacja funkcji, zlokalizowanie próbki, która maksymalizuje lub minimalizuje funkcję celu.

    Metody Monte Carlo zostały nazwane na cześć kasyna w Monako i zostały po raz pierwszy opracowane w celu rozwiązywania problemów w fizyce cząstek elementarnych w czasie rozwoju pierwszych komputerów i projektu Manhattan mającego na celu stworzenie pierwszej bomby atomowej.

    To jest nazywane przybliżeniem Monte Carlo, nazwanym na cześć miasta w Europie znanego z bogatych kasyn. Techniki Monte Carlo zostały po raz pierwszy opracowane w dziedzinie fizyki statystycznej – w szczególności podczas opracowywania bomby atomowej – ale obecnie są szeroko stosowane również w statystyce i uczeniu maszynowym.

    – Strona 52, Machine Learning: A Probabilistic Perspective, 2012.

    Dobranie próbki może być tak proste, jak obliczenie prawdopodobieństwa dla losowo wybranego zdarzenia, lub może być tak złożone, jak uruchomienie symulacji obliczeniowej, przy czym ta ostatnia często określana jest jako symulacja Monte Carlo.

    Wielokrotne próbki są zbierane i używane do przybliżenia pożądanej wielkości.

    Zgodnie z prawem wielkich liczb ze statystyki, im więcej prób losowych zostanie wykonanych, tym dokładniejsza stanie się przybliżona wielkość.

    … prawo wielkich liczb mówi, że jeśli próbki x(i) są i.i.d., to średnia zbiega prawie na pewno do wartości oczekiwanej

    – Strona 591, Deep Learning, 2016.

    Jako taka, liczba próbek zapewnia kontrolę nad precyzją aproksymowanej wielkości, często ograniczoną przez złożoność obliczeniową losowania próbki.

    Generując wystarczającą liczbę próbek, możemy osiągnąć dowolny, pożądany przez nas poziom dokładności. Głównym problemem jest: jak efektywnie generować próbki z rozkładu prawdopodobieństwa, szczególnie w dużych wymiarach?

    – Strona 815, Machine Learning: A Probabilistic Perspective, 2012.

    Dodatkowo, biorąc pod uwagę centralne twierdzenie graniczne, rozkład próbek będzie tworzył rozkład normalny, którego średnia może być przyjęta jako przybliżona wielkość, a wariancja użyta do zapewnienia przedziału ufności dla wielkości.

    Środkowe twierdzenie graniczne mówi nam, że rozkład średniej , zbiega do rozkładu normalnego Pozwala nam to oszacować przedziały ufności wokół estymaty , używając skumulowanego rozkładu gęstości normalnej.

    – Strona 592, Deep Learning, 2016.

    Metody Monte Carlo są definiowane pod względem sposobu losowania próbek lub ograniczeń nałożonych na proces próbkowania.

    Niektóre przykłady metod próbkowania Monte Carlo obejmują: próbkowanie bezpośrednie, próbkowanie ważności i próbkowanie odrzucenia.

    • Próbkowanie bezpośrednie. Próbkowanie rozkładu bezpośrednio bez wcześniejszej informacji.
    • Próbkowanie ważności. Próbkowanie z prostszej aproksymacji rozkładu docelowego.
    • Próbkowanie odrzucenia. Próbkowanie z szerszego rozkładu i rozważanie tylko próbek w regionie próbkowanego rozkładu.

    To jest ogromny temat z wieloma książkami poświęconymi temu. Następnie, skonkretyzujmy ideę próbkowania Monte Carlo na kilku znanych przykładach.

    Przykłady próbkowania Monte Carlo

    Używamy metod Monte Carlo cały czas nie myśląc o tym.

    Na przykład, kiedy definiujemy rozkład Bernoulliego dla rzutu monetą i symulujemy rzut monetą przez próbkowanie z tego rozkładu, wykonujemy symulację Monte Carlo. Dodatkowo, gdy pobieramy próbkę z rozkładu jednostajnego dla liczb całkowitych {1,2,3,4,5,6}, aby zasymulować rzut kostką, przeprowadzamy symulację Monte Carlo.

    Metodę Monte Carlo stosujemy również, gdy zbieramy losową próbkę danych z dziedziny i szacujemy rozkład prawdopodobieństwa tych danych za pomocą histogramu lub metody estymacji gęstości.

    Istnieje wiele przykładów zastosowania metod Monte Carlo w wielu dyscyplinach naukowych.

    Na przykład metody Monte Carlo mogą być stosowane do:

    • Obliczania prawdopodobieństwa ruchu przeciwnika w złożonej grze.
    • Obliczanie prawdopodobieństwa wystąpienia zdarzenia pogodowego w przyszłości.
    • Obliczanie prawdopodobieństwa zderzenia pojazdów w określonych warunkach.

    Metody te są wykorzystywane do rozwiązywania trudnych problemów wnioskowania w prawdopodobieństwie stosowanym, takich jak próbkowanie z probabilistycznych modeli graficznych.

    Pokrewna jest idea sekwencyjnych metod Monte Carlo stosowanych w modelach bayesowskich, które są często określane mianem filtrów cząsteczkowych.

    Filtrowanie cząsteczkowe (PF) jest algorytmem Monte Carlo, lub opartym na symulacji, dla rekursywnego wnioskowania bayesowskiego.

    – Strona 823, Machine Learning: A Probabilistic Perspective, 2012.

    Metody Monte Carlo są również wszechobecne w sztucznej inteligencji i uczeniu maszynowym.

    Wiele ważnych technologii stosowanych do realizacji celów uczenia maszynowego opiera się na losowaniu próbek z jakiegoś rozkładu prawdopodobieństwa i wykorzystaniu tych próbek do utworzenia estymaty Monte Carlo jakiejś pożądanej wielkości.

    – Strona 590, Deep Learning, 2016.

    Dostarczają one podstaw do szacowania prawdopodobieństwa wyników w problemach sztucznej inteligencji poprzez symulację, takich jak robotyka. Bardziej prosto, metody Monte Carlo są używane do rozwiązywania nieprzejrzystych problemów integracyjnych, takich jak wystrzeliwanie losowych promieni w śledzeniu ścieżek dla grafiki komputerowej podczas renderowania sceny generowanej komputerowo.

    W uczeniu maszynowym, metody Monte Carlo stanowią podstawę dla technik ponownego próbkowania, takich jak metoda bootstrap do szacowania wielkości, takich jak dokładność modelu na ograniczonym zbiorze danych.

    Bootstrap jest prostą techniką Monte Carlo do aproksymacji rozkładu próbkowania. Jest to szczególnie przydatne w przypadkach, gdy estymator jest złożoną funkcją prawdziwych parametrów.

    – Strona 192, Machine Learning: A Probabilistic Perspective, 2012.

    Random sampling of model hyperparameters when tuning a model is a Monte Carlo method, as are ensemble models used to overcome challenges such as the limited size and noise in a small data sample and the stochastic variance in a learning algorithm.

    • Resampling algorithms.
    • Random hyperparameter tuning.
    • Ensemble learning algorithms.

    Metody Monte Carlo stanowią również podstawę dla randomizowanych lub stochastycznych algorytmów optymalizacyjnych, takich jak popularna technika symulowanego wyżarzania.

    Algorytmy Monte Carlo, których przykładem jest symulowane wyżarzanie, są stosowane w wielu gałęziach nauki do szacowania wielkości trudnych do dokładnego obliczenia.

    – Strona 530, Artificial Intelligence: A Modern Approach, 3rd edition, 2009.

    • Stochastyczne algorytmy optymalizacyjne.

    Pracujący przykład próbkowania Monte Carlo

    Próbkowanie Monte Carlo możemy skonkretyzować za pomocą działającego przykładu.

    W tym przypadku będziemy mieli funkcję, która definiuje rozkład prawdopodobieństwa zmiennej losowej. Użyjemy rozkładu gaussowskiego ze średnią 50 i odchyleniem standardowym 5 i będziemy losować próbki z tego rozkładu.

    Upozorujmy, że nie znamy postaci rozkładu prawdopodobieństwa dla tej zmiennej losowej i chcemy spróbować funkcji, aby uzyskać pojęcie o gęstości prawdopodobieństwa. Możemy wylosować próbkę o danym rozmiarze i wykreślić histogram, aby oszacować gęstość.

    Funkcja normal() NumPy może być użyta do losowego wylosowania próbek z rozkładu gaussowskiego o określonej średniej (mu), odchyleniu standardowym (sigma) i rozmiarze próbki.

    Aby przykład był bardziej interesujący, powtórzymy ten eksperyment cztery razy z próbkami o różnych rozmiarach. Oczekiwalibyśmy, że wraz ze wzrostem wielkości próbki gęstość prawdopodobieństwa będzie lepiej przybliżać prawdziwą gęstość funkcji celu, biorąc pod uwagę prawo wielkich liczb.

    Pełny przykład znajduje się poniżej.

    Wykonanie przykładu tworzy cztery próbki o różnej wielkości i wykreśla histogram dla każdej z nich.

    Widzimy, że małe próbki o wielkości 10 i 50 nie oddają skutecznie gęstości funkcji celu. Widzimy, że 100 próbek jest lepsze, ale dopiero po 1000 próbkach wyraźnie widzimy znany kształt dzwonu rozkładu prawdopodobieństwa Gaussa.

    Podkreśla to potrzebę losowania wielu próbek, nawet dla prostej zmiennej losowej, oraz korzyści płynące z większej dokładności aproksymacji wraz z liczbą wylosowanych próbek.

    Histogram Plots of Differently Sized Monte Carlo Samples From the Target Function

    Dalsza lektura

    Ta sekcja zawiera więcej zasobów na ten temat, jeśli chcesz zagłębić się w temat.

    Książki

    • Rozdział 29 Monte Carlo Methods, Information Theory, Inference and Learning Algorithms, 2003.
    • Rozdział 27 Sampling, Bayesian Reasoning and Machine Learning, 2011.
    • Section 14.5 Approximate Inference In Bayesian Networks, Artificial Intelligence: A Modern Approach, 3rd edition, 2009.
    • Rozdział 23 Monte Carlo inference, Machine Learning: A Probabilistic Perspective, 2012.
    • Rozdział 11 Sampling Methods, Pattern Recognition and Machine Learning, 2006.
    • Rozdział 17 Monte Carlo Methods, Deep Learning, 2016.

    Artykuły

    • Próbkowanie (statystyka), Wikipedia.
    • Metoda Monte Carlo, Wikipedia.
    • Integracja Monte Carlo, Wikipedia.
    • Próbkowanie istotności, Wikipedia.
    • Próbkowanie odrzucenia, Wikipedia.

    Podsumowanie

    W tym poście poznałeś metody Monte Carlo do próbkowania rozkładów prawdopodobieństwa.

    A konkretnie dowiedziałeś się, że:

    • Często nie możemy obliczyć pożądanej wielkości w prawdopodobieństwie, ale możemy zdefiniować rozkłady prawdopodobieństwa dla zmiennych losowych bezpośrednio lub pośrednio.
    • Próbkowanie Monte Carlo klasa metod do losowego próbkowania z rozkładu prawdopodobieństwa.
    • Próbkowanie Monte Carlo stanowi podstawę dla wielu metod uczenia maszynowego, takich jak próbkowanie, strojenie hiperparametrów i uczenie zespołowe.

    Masz pytania?
    Zadawaj pytania w komentarzach poniżej, a ja postaram się odpowiedzieć.

    Zdobądź wskazówki na temat prawdopodobieństwa dla uczenia maszynowego!

    Rozwiń swoje rozumienie prawdopodobieństwa

    ….z zaledwie kilkoma liniami kodu Pythona

    Odkryj, jak to zrobić w moim nowym podręczniku:
    Probability for Machine Learning

    Zawiera on samouczki i projekty typu end-to-end na temat:
    Twierdzenia Bayesa, optymalizacji bayesowskiej, rozkładów, maksymalnej wiarygodności, entropii krzyżowej, kalibracji modeli
    i wiele więcej…

    Wreszcie ujarzmij niepewność w swoich projektach

    Opuść akademickość. Zobacz, co jest w środku

    Tweet Share Share

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *