Fixes
This commit is contained in:
parent
09cf8cbc23
commit
81c7963e4c
@ -15,14 +15,14 @@ Rzecz jasna, $\sum_{i=1}^m k_i = T$.
|
|||||||
|
|
||||||
Jak powinniśmy racjonalnie szacować prawdopodobieństwa wylosowania kuli w $i$-tym kolorze ($p_i$)?
|
Jak powinniśmy racjonalnie szacować prawdopodobieństwa wylosowania kuli w $i$-tym kolorze ($p_i$)?
|
||||||
|
|
||||||
Wydawałoby się wystarczyłoby liczbę wylosowanych kul w danym kolorze
|
Wydawałoby się, że wystarczy liczbę wylosowanych kul w danym kolorze
|
||||||
podzielić przez liczbę wszystkich prób:
|
podzielić przez liczbę wszystkich prób:
|
||||||
|
|
||||||
$$p_i = \frac{k_i}{T}.$$
|
$$p_i = \frac{k_i}{T}.$$
|
||||||
|
|
||||||
*** Wygładzanie — przykład
|
*** Wygładzanie — przykład
|
||||||
|
|
||||||
Rozpatrzmy przykład z 3 kolorami (wiemy, że w urnie mogą być urny
|
Rozpatrzmy przykład z 3 kolorami (wiemy, że w urnie mogą być kule
|
||||||
żółte, zielone i czerwone, tj. $m=3$) i 4 losowaniami ($T=4$):
|
żółte, zielone i czerwone, tj. $m=3$) i 4 losowaniami ($T=4$):
|
||||||
|
|
||||||
[[./05_Wygladzanie/urna.drawio.png]]
|
[[./05_Wygladzanie/urna.drawio.png]]
|
||||||
@ -35,12 +35,12 @@ a zielonej — 0. Wartości te są jednak dość problematyczne:
|
|||||||
potrzebowalibyśmy większej liczby losowań, żeby być bardziej pewnym
|
potrzebowalibyśmy większej liczby losowań, żeby być bardziej pewnym
|
||||||
naszych estymacji.
|
naszych estymacji.
|
||||||
- W szczególności stwierdzenie, że prawdopodobieństwo wylosowania kuli
|
- W szczególności stwierdzenie, że prawdopodobieństwo wylosowania kuli
|
||||||
zielonej wynosi 0 jest bardzo mocnym stwierdzeniem (twierdzimy, że
|
zielonej wynosi 0, jest bardzo mocnym stwierdzeniem (twierdzimy, że
|
||||||
*NIEMOŻLIWE* jest wylosowanie kuli zielonej), dopiero większa liczba
|
*NIEMOŻLIWE* jest wylosowanie kuli zielonej), dopiero większa liczba
|
||||||
prób bez wylosowania zielonej kuli mogłaby sugerować
|
prób bez wylosowania zielonej kuli mogłaby sugerować
|
||||||
prawdopodobieństwo bliskie zeru.
|
prawdopodobieństwo bliskie zeru.
|
||||||
- Zauważmy, że niemożliwe jest wylosowanie ułamka kuli, jeśli w
|
- Zauważmy, że niemożliwe jest wylosowanie ułamka kuli, jeśli w
|
||||||
rzeczywistości 10% kul jest żółtych to nie oznacza się wylosujemy
|
rzeczywistości 10% kul jest żółtych, to nie oznacza się wylosujemy
|
||||||
$4\frac{1}{10} = \frac{2}{5}$ kuli. Prawdopodobnie wylosujemy jedną
|
$4\frac{1}{10} = \frac{2}{5}$ kuli. Prawdopodobnie wylosujemy jedną
|
||||||
kulę żółtą albo żadną. Wylosowanie dwóch kul żółtych byłoby możliwe,
|
kulę żółtą albo żadną. Wylosowanie dwóch kul żółtych byłoby możliwe,
|
||||||
ale mniej prawdopodobne. Jeszcze mniej prawdopodobne byłoby
|
ale mniej prawdopodobne. Jeszcze mniej prawdopodobne byłoby
|
||||||
@ -59,11 +59,11 @@ Laplace'a, zdefiniowane za pomocą następującego wzoru:
|
|||||||
|
|
||||||
$$p_i = \frac{k_i+1}{T+m}.$$
|
$$p_i = \frac{k_i+1}{T+m}.$$
|
||||||
|
|
||||||
W naszym przypadku z urną prawdopodobieństwo wylosowania kuli
|
W naszym przykładzie z urną prawdopodobieństwo wylosowania kuli
|
||||||
czerwonej określimy na $\frac{3+1}{4+3} = \frac{4/7}$, kuli żółtej —
|
czerwonej określimy na $\frac{3+1}{4+3} = \frac{4}{7}$, kuli żółtej —
|
||||||
$\frac{1+1}{4+3}=2/7$, zielonej — $\frac{0+1}{4+3}=1/7$. Tym samym,
|
$\frac{1+1}{4+3}=2/7$, zielonej — $\frac{0+1}{4+3}=1/7$. Tym samym,
|
||||||
kula zielona uzyskała niezerowe prawdopodobieństwo, żółta — nieco
|
kula zielona uzyskała niezerowe prawdopodobieństwo, żółta — nieco
|
||||||
zyska, zaś czerwona — straciła.
|
zyskała, zaś czerwona — straciła.
|
||||||
|
|
||||||
**** Własności wygładzania +1
|
**** Własności wygładzania +1
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ $$\lim_{m \rightarrow \infty} \frac{k_i +1}{T + m} = \frac{k_i}{T}.$$
|
|||||||
|
|
||||||
Inna dobra, zdroworozsądkowo, własność to to, że prawdopodobieństwo nigdy nie będzie zerowe:
|
Inna dobra, zdroworozsądkowo, własność to to, że prawdopodobieństwo nigdy nie będzie zerowe:
|
||||||
|
|
||||||
$$frac{k_i + 1}{T + m} > 0.$$
|
$$\frac{k_i + 1}{T + m} > 0.$$
|
||||||
|
|
||||||
** Wygładzanie w unigramowym modelu języku
|
** Wygładzanie w unigramowym modelu języku
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ $T$ — długość zbioru uczącego.
|
|||||||
A zatem przy użyciu wygładzania +1 w następujący sposób estymować
|
A zatem przy użyciu wygładzania +1 w następujący sposób estymować
|
||||||
będziemy prawdopodobieństwo słowa $w$:
|
będziemy prawdopodobieństwo słowa $w$:
|
||||||
|
|
||||||
$$P(w) = \fraq{\# w + 1}{|C| + |V|}.$$
|
$$P(w) = \frac{\# w + 1}{|C| + |V|}.$$
|
||||||
|
|
||||||
*** Wygładzanie $+\alpha$
|
*** Wygładzanie $+\alpha$
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ W modelowaniu języka wygładzanie $+1$ daje zazwyczaj niepoprawne
|
|||||||
wyniki, dlatego częściej zamiast wartości 1 używa się współczynnika $0
|
wyniki, dlatego częściej zamiast wartości 1 używa się współczynnika $0
|
||||||
< \alpha < 1$:
|
< \alpha < 1$:
|
||||||
|
|
||||||
$$P(w) = \fraq{\# w + \alpha}{|C| + \alpha|V|}.$$
|
$$P(w) = \frac{\# w + \alpha}{|C| + \alpha|V|}.$$
|
||||||
|
|
||||||
W innych praktycznych zastosowaniach statystyki
|
W innych praktycznych zastosowaniach statystyki
|
||||||
przyjmuje się $\alpha = \frac{1}{2}$, ale w przypadku n-gramowych
|
przyjmuje się $\alpha = \frac{1}{2}$, ale w przypadku n-gramowych
|
||||||
@ -248,7 +248,7 @@ counterA['taki']
|
|||||||
:results:
|
:results:
|
||||||
:end:
|
:end:
|
||||||
|
|
||||||
Policzmy teraz jakiej liczby wystąpień byśmy oczekiwali gdyby użyć wygładzania +1 bądź +0.01.
|
Policzmy teraz jakiej liczby wystąpień byśmy oczekiwali, gdyby użyć wygładzania +1 bądź +0.01.
|
||||||
(Uwaga: zwracamy liczbę wystąpień, a nie względną częstość, stąd przemnażamy przez rozmiar całego korpusu).
|
(Uwaga: zwracamy liczbę wystąpień, a nie względną częstość, stąd przemnażamy przez rozmiar całego korpusu).
|
||||||
|
|
||||||
#+BEGIN_SRC python :session mysession :exports both :results raw drawer
|
#+BEGIN_SRC python :session mysession :exports both :results raw drawer
|
||||||
@ -339,7 +339,7 @@ Wygładzanie metodą Gooda-Turinga, mimo prostoty, daje wyniki zaskakująco zbli
|
|||||||
|
|
||||||
*** Rzadkość danych
|
*** Rzadkość danych
|
||||||
|
|
||||||
W wypadku bigramów, trigramów itd. jeszcze dotkliwy staje się problem
|
W wypadku bigramów, trigramów, tetragramów itd. jeszcze dotkliwy staje się problem
|
||||||
*rzadkości* danych (/data sparsity/). Przestrzeń możliwych zdarzeń
|
*rzadkości* danych (/data sparsity/). Przestrzeń możliwych zdarzeń
|
||||||
jest jeszcze większa ($|V|^2$ dla bigramów), więc estymacje stają się
|
jest jeszcze większa ($|V|^2$ dla bigramów), więc estymacje stają się
|
||||||
jeszcze mniej pewne.
|
jeszcze mniej pewne.
|
||||||
@ -347,7 +347,7 @@ jeszcze mniej pewne.
|
|||||||
*** Back-off
|
*** Back-off
|
||||||
|
|
||||||
Dla $n$-gramów, gdzie $n>1$, nie jesteśmy ograniczeni do wygładzania $+1$, $+k$ czy Gooda-Turinga.
|
Dla $n$-gramów, gdzie $n>1$, nie jesteśmy ograniczeni do wygładzania $+1$, $+k$ czy Gooda-Turinga.
|
||||||
W przypadku rzadkich $n$-gramów, w szczególności gdy $n$-gram w ogóle się nie pojawił w korpusie,
|
W przypadku rzadkich $n$-gramów, w szczególności, gdy $n$-gram w ogóle się nie pojawił w korpusie,
|
||||||
możemy „zejść” na poziom krótszych $n$-gramów. Na tym polega *back-off*.
|
możemy „zejść” na poziom krótszych $n$-gramów. Na tym polega *back-off*.
|
||||||
|
|
||||||
Otóż jeśli $\# w_{i-n+1}\ldots w_{i-1} > 0$, wówczas estymujemy prawdopodobieństwa
|
Otóż jeśli $\# w_{i-n+1}\ldots w_{i-1} > 0$, wówczas estymujemy prawdopodobieństwa
|
||||||
@ -355,7 +355,7 @@ Otóż jeśli $\# w_{i-n+1}\ldots w_{i-1} > 0$, wówczas estymujemy prawdopodobi
|
|||||||
|
|
||||||
$$P_B(w_i|w_{i-n+1}\ldots w_{i-1}) = d_n(w_{i-n+1}\ldots w_{i-1}\ldots w_{i-1}) P(w_i|w_{i-n+1}\ldots w_{i-1})$$
|
$$P_B(w_i|w_{i-n+1}\ldots w_{i-1}) = d_n(w_{i-n+1}\ldots w_{i-1}\ldots w_{i-1}) P(w_i|w_{i-n+1}\ldots w_{i-1})$$
|
||||||
|
|
||||||
W przeciwnym razie, rozpatrujemy rekurencyjnie krótszy $n$-gram:
|
W przeciwnym razie rozpatrujemy rekurencyjnie krótszy $n$-gram:
|
||||||
|
|
||||||
$$P_B(w_i|w_{i-n+1}\ldots w_{i-1}) = \delta_n(w_{i-n+1}\ldots w_{i-1}\ldots w_{i-1}) P_B(w_i|w_{i-n+2}\ldots w_{i-1}).$$
|
$$P_B(w_i|w_{i-n+1}\ldots w_{i-1}) = \delta_n(w_{i-n+1}\ldots w_{i-1}\ldots w_{i-1}) P_B(w_i|w_{i-n+2}\ldots w_{i-1}).$$
|
||||||
|
|
||||||
@ -396,7 +396,7 @@ Teraz zastosujemy interpolację z następującą wartością parametru
|
|||||||
$1-\lambda$, sterującego wagą, jaką przypisujemy do krótszych $n$-gramów:
|
$1-\lambda$, sterującego wagą, jaką przypisujemy do krótszych $n$-gramów:
|
||||||
|
|
||||||
|
|
||||||
$$1 - \lambda = \frag{N_{1+}(w_1\ldots w_{n-1}\dot\bullet)}{N_{1+}(w_1\ldots w_{n-1}\dot\bullet) + \# w_1\ldots w_{n-1}}.$$
|
$$1 - \lambda = \frac{N_{1+}(w_1\ldots w_{n-1}\dot\bullet)}{N_{1+}(w_1\ldots w_{n-1}\dot\bullet) + \# w_1\ldots w_{n-1}}.$$
|
||||||
|
|
||||||
*** Wygładzanie Knesera-Neya
|
*** Wygładzanie Knesera-Neya
|
||||||
|
|
||||||
@ -453,3 +453,34 @@ $$P(w) = \frac{N_{1+}(\bullet w)}{\sum_{w_j} N_{1+}(\bullet w_j)}.$$
|
|||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
:results:
|
:results:
|
||||||
:end:
|
:end:
|
||||||
|
|
||||||
|
** Narzędzia $n$-gramowego modelowania języka
|
||||||
|
|
||||||
|
Istnieje kilka narzędzie do modelowania, ze starszych warto wspomnieć
|
||||||
|
pakiety [[http://www.speech.sri.com/projects/srilm/][SRILM]] i [[https://github.com/irstlm-team/irstlm][IRSTLM]].
|
||||||
|
Jest to oprogramowanie bogate w opcje, można wybierać różne opcje wygładzania.
|
||||||
|
|
||||||
|
Szczytowym osiągnięciem w zakresie $n$-gramowego modelowania języka
|
||||||
|
jest wspomniany już KenLM. Ma on mniej opcji niż SRILM czy ISRLM, jest
|
||||||
|
za to precyzyjnie zoptymalizowany zarówno jeśli chodzi jakość, jak i
|
||||||
|
szybkość działania. KenLM implementuje nieco zmodyfikowane wygładzanie
|
||||||
|
Knesera-Neya połączone z *przycinaniem* słownika n-gramów (wszystkie
|
||||||
|
/hapax legomena/ dla $n \geq 3$ są domyślnie usuwane).
|
||||||
|
|
||||||
|
*** Przykładowe wyniki dla KenLM i korpusu Open Subtitles
|
||||||
|
|
||||||
|
**** Zmiana perplexity przy zwiększaniu zbioru testowego
|
||||||
|
|
||||||
|
#+CAPTION: Perplexity dla różnych rozmiarów zbioru testowego
|
||||||
|
[[./05_Wygladzanie/size-perplexity.gif]]
|
||||||
|
|
||||||
|
|
||||||
|
**** Zmiana perplexity przy zwiększaniu zbioru uczącego
|
||||||
|
|
||||||
|
#+CAPTION: Perplexity dla różnych rozmiarów zbioru uczącego
|
||||||
|
[[./05_Wygladzanie/size-perplexity2.gif]]
|
||||||
|
|
||||||
|
**** Zmiana perplexity przy zwiększaniu rządu modelu
|
||||||
|
|
||||||
|
#+CAPTION: Perplexity dla różnych wartości rządu modelu
|
||||||
|
[[./05_Wygladzanie/order-perplexity.gif]]
|
||||||
|
BIN
wyk/05_Wygladzanie/order-perplexity.gif
Normal file
BIN
wyk/05_Wygladzanie/order-perplexity.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
BIN
wyk/05_Wygladzanie/size-perplexity.gif
Normal file
BIN
wyk/05_Wygladzanie/size-perplexity.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.5 KiB |
BIN
wyk/05_Wygladzanie/size-perplexity2.gif
Normal file
BIN
wyk/05_Wygladzanie/size-perplexity2.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.8 KiB |
Loading…
Reference in New Issue
Block a user