Statystyczne uczenie maszynowe
Marcin Orchel
1 Wstęp
1.1 Wstęp teoretyczny
1.2 Metody generowania liczb losowych
Metoda cyfr środkowych. Mamy liczbę całkowitą z z 2n cyfr. Obliczamy kwadrat. Liczba cyfr w z2będzie 4n. Jeśli będzie mniejsza dodajemy na początku zera. Wykreślamy z niej pierwsze n i ostatnie n cyfr, otrzymujemy z powrotem liczbę 2n-cyfrową. Przed każdą otrzymaną liczbą dodajemy 0, i otrzymujemy liczbę z przedziału [0, 1].
Przykład, liczba z = 1242, czyli n = 2. Mamy z2 = 01542564. Po wykreśleniu pierwszych 2 i ostatnich 2 cyfr otrzymujemy liczbę 5425. Powtarzamy tą procedurę. Czyli mamy dalej 54252 = 29430625, wykreślamy pierwsze i ostatnie 2 cyfry i otrzymujemy 4306. A więc wygenerowanymi liczbami losowymi są 0, 5425 oraz 0, 4306.
Metoda kongruencji. Wyznaczamy ciąg liczba całkowitych zi(i = 0, 1, 2, . . .) ze wzoru rekurencyjnego
zi+1= czi mod m (1)
gdzie z0jest dowolną liczbą całkowitą, c i m to dowolne dodatnie liczby całkowite, takie, że c < m, oraz z0 < m. Jako zi+1 wybieramy najmniejszą nieujemną liczbę całkowitą spełniającą kongruencję. Liczby zi/m są wygenerowanymi liczbami losowymi.
Dla przypomnienia a ≡ b mod m oznacza, że a dzielone przez m ma tą samą resztę co b dzielone przez m. Inaczej, że a − b dzieli się przez m.
Przykład Wybieramy z0 = 5, c = 3, m = 100. Wtedy mamy
z1 = 3 ∗ 5 mod 100 (2)
A zatem z1 = 15. Następnie
z2 = 3 ∗ 15 mod 100 (3)
Czyli z2= 45. Następnie
z3 = 3 ∗ 45 mod 100 (4)
A więc z3= 35.
z4 = 3 ∗ 35 mod 100 (5)
A więc z4= 5.
W praktyce wybierany są wartości przykładowo m = 231− 1, c = 48271.
1
1.3 Generacja liczb losowych o innych rozkładach
Mamy ciąg liczb losowych o rozkładzie jednostajnym ξ1, ξ2, . . .. Obliczamy wartości ηi= F−1(ξi) dla i = 1, 2, . . . , gdzie F−1 oznacza funkcję odwrotną do dystrybuanty F (x).
Możemy zauważyć, że zachodzi
P (ηi ≤ x) = PF−1(ξi) ≤ x= P (ξi≤ F (x)) = F (x) (6) Drugie przejście po zastosowaniu F obustronnie. A trzecia równość zachodzi dla rozkładu jednostajnego. A więc liczby losowe ηi mają rozkład określony przez dystrybuantę F (x).
Dla rozkładów dyskretnych przedział [0, 1)] dzielimy na n przedziałów, gdzie n to licz- ba wartości dla których mamy podane prawdopodobieństwa. Szerokość i-tego przedziału jest prawdopodobieństwem i-tym. Szukamy indeksu i.
Rejection sampling. Jak mamy jedną dystrybucję i chcemy próbkować dla drugiej dystrybucji takiej, że funkcja gęstości znajduje się poniżej. To najpierw generujemy x dla pierwszej dystrybucji, i następnie wg rozkładu jednostajnego generujemy liczbę od 0 do maksymalnej wartości tej funkcji gęstości. Jeśli wpada poniżej tej drugiej funkcji gęstości to ją zachowujemy.
Dla rozkładu jednostajnego mamy prostokąt, a więc możemy próbkować dane jed- nostajnie dla prostokąta, i zachowywać tylko te punkty pod wykresem funkcji gęstości, wartości x będą wartościami losowymi z danego rozkładu.
Dla rozkładu f , który chcemy próbkować za pomocą rozkładu g, algorytm sprawdza czy próbka u z U nif (0, 1) spełnia równanie
y < f (y)/M g(y) (7)
gdzie M jest stałą. Średnio potrzeba M iteracji do wygenerowania próbki.
1.4 Metoda częstości względnej
Chcemy obliczyć całkę oznaczoną I = R01g(x)dx. Załóżmy, że 0 ≤ g(x) ≤ 1. Mamy liczby losowe z rozkładu jednostajnego z przedziału [0, 1]. Traktujemy kolejne liczby jako współrzędne n punktów.Gdy m to liczba punktów położonych wewnątrz lub na brzegu powierzchni A pod wykresem, otrzymujemy oszacowanie
Z 1 0
g(x)dx ≈ m
n (8)
1.5 Metoda wartości średniej
Dla danych n liczb losowych o rozkładzie jednostajnym ξ1, ξ2, . . . , ξn generujemy war- tości gi = g(ξi) dla i = 1, 2, . . . , n. Są one realizacją zmiennej losowej g(X). Wartość oczekiwaną możemy zapisać jako
E(g(X)) = Z ∞
−∞
g(x)fO(x)dx = Z 1
0
g(x)dx ≈ 1 n
n
X
i=1
gi (9)
2
fO oznacza gęstość rozkładu jednostajnego. Procedura ta nazywa się zwyczajną metodą Monte Carlo.
Można tą metodą obliczać także całki wielokrotne.
1.6 Estymacja π za pomocą metody Monte Carlo Wskazówki:
• Dla wersji 1.16 funkcjahttps://docs.scipy.org/doc/numpy-1.16.0/reference/
generated/numpy.random.uniform.html. Dla wersji 1.17https://docs.scipy.
org/doc/numpy/reference/random/generated/numpy.random.Generator.uniform.
html.
• https://numpy.org/neps/nep-0019-rng-policy.html
1.7 Rejection sampling
• https://docs.scipy.org/doc/numpy-1.16.0/reference/generated/numpy.random.
choice.html
• https://docs.scipy.org/doc/numpy/reference/generated/numpy.correlate.
html
.
2 Zadania
Zadania znajdują się na platformie upel.
Literatura
3