Ukryte modele Markowa (HMM)

Transkrypt

Ukryte modele Markowa (HMM)
Piotr Szczuko
UKRYTE MODELE MARKOWA
HMM
–
HIDDEN
MARKOV
MODELS
Ukryte modele Markowa
 Ukryte modele Markowa są statystyczną metodą
klasyfikacji sekwencji zdarzeń.
 Do celów rozpoznawania mowy po raz pierwszy
zostały użyte przez Bakera, Jelinka i Levinsona
(firma IBM) (1975)
 Sygnał – ciąg „zdarzeń” które są parametryzowane
 Segmenty 10-30ms, opisywane wektorami parametrów
 Zakłada się, że w segmencie sygnał jest stacjonarny
 Słowo (klasa) to ciąg Obserwacji/zdarzeń/segmentów
O=o1, o2, … oT
Gdzie T=liczba segmentów, na które podzielono słowo
Podsumowanie (1)
 Klasa = pojedyncze słowo
 Obiekt = ciąg obserwacji, sposób
wypowiedzenia słowa
 Klasyfikacja = porównanie ciągu obserwacji
do zapamiętanego wzorca
Automat skończony
 Każde słowo wzorcowe (klasa) jest osobnym automatem skończonym o
N-stanach:
Q = {q1, q2, ... ,qN}
 Model markowa definiujemy jako λ = <π, A, B>, gdzie:
π = [π1, π2, ... , πN]
rozkład prawdopodobieństw znalezienia się w stanie qi w chwili t = 0,
A = [aij] (i,j =1.. N)
Macierz prawdopodobieństw przejść między stanami,
B = [bi(oj)] (i = 1.. N, j = 1.. M ; M – liczba możliwych zdarzeń generowanych przez dany stan)
macierz prawdopodobieństw pojawienia się
j-tej obserwacji w stanie qi:
bi(oj) = P(oj| qi)
Przykład
 Model słowa „to”
Przejścia A = [aij]
Stany Q = {q1, q2}={A,B}
0,2
P-stwa początkowe
π = [π1, π2]
B = [bi(oj)]
Obserwacje:
1,0
0,8
A
0,9
„t”
0,1
B
0,05
„inne”
0,95
„o”
Budowa klasyfikatora
 Przygotowanie danych:
 Rejestracja sygnałów, segmentacja, parametryzacja,
 Słownik - transkrypcja słów na obserwacje (np. „tszy”,
„ośem”)
 Gramatyka – jakie słowa występują po sobie (np.
„skasuj+to”)
 Trenowanie ukrytych modeli Markowa na podstawie
każdej z reprezentacji danego słowa
 Np. wszystkich powtórzeń słowa „to”
 Określenie złożoności modelu (liczby stanów modelu),
 Prowadzi do wyznaczenia λ = <π, A, B> dla każdego słowa
 Opracowanie procedury klasyfikacji (o tym dalej)
Trening
 Algorytmy:
 Viterbiego,
 Baum-Welcha,
 „embedded training”.
 Problemy:
 Segmentacja sygnału mowy
 Stałe odcinki czasowe?
 Segmentacja podyktowana
generowania danej obserwacji
 Konieczna
maksymalizacją
p-stwa
kwantyzacja obserwacji (wyznaczanie
p-stw
występowania
dowolnej
obserwacji
w dowolnym stanie jest praktycznie nierealizowalne).
Klasyfikacja
 Stwierdzenie, który model najlepiej pasuje do
danego ciągu wejściowego.
 tj. ma największe prawdopodobieństwo
wygenerowania tego konkretnego ciągu zdarzeń.
 obliczanie p-stwa (iteracyjne):
α1(i) = π1 · bi(O1)
αt+1(j) = [ ∑i=1N αt(i)aij] · bj(Ot+1)
0,6
Przykład
 Jakie dla tego modelu
jest p-stwo zajścia
1,0
0,4
A
B
π=0,9
π=0,1
bB(O1)=0
bA(O1)=0,8
ciągu obserwacji O={O2, O2, O2}
 Uwzględnić wszystkie stany, które
mogą prowadzić do tych obserwacji:
AAA, AAB, ABA, ABB, BBB
bB(O2)=1,0
bA(O2)=0,2
O1
O2
P(AAA) = πA · αAA · αAA = 0,9 · 0,6 · 0,6 = 0,324
P(…)=…. – p-stwo wystąpienia sekwencji stanów (dla wszystkich)
P(O/AAA) = bA(O2) · bA(O2) · bA(O2) = 0,2 · 0,2 · 0,2 = 0,008
P(O/…) = … – p-stwo obserwacji O={O2, O2, O2} dla sekwencji (dla wszystkich)
P(O/AAA)·P(AAA) = 0,008 · 0,324 =0,002592
P(O/…)·P(…) = … - p-stwo całkowite
Łącznie NT obliczeń
N-stanów
T-długość obserwacji
P(O/M) = P(O/AAA)·P(AAA) + P(O/AAB)·P(AAB) + P(O/ABB)·P(ABB) + P(O/BBB)·P(BBB)
P(O/M) – p-stwo zajścia obserwacji O dla tego modelu M
Przykład
α1(i) = π1 · bi(O1)
αt+1(j) = [ ∑i=1N αt(i)aij] · bj(Ot+1)
α1(A) = πA · bA(O2) = 0,9 · 0,2 = 0,18
α1(B) = πB · bB(O2) = 0,1 · 1,0 = 0,10
α2(A) = (α1(A) · aAA + α1(B) · aBA) · bA(O2) = (0,18 · 0,6 + 0,1· 0,0) · 0,2 = 0,0216
α2(B) = (α1(A) · aAB + α1(B) · aBB) · bB(O2) = (0,18 · 0,4 + 0,1· 1,0) · 1,0 = 0,172
α3(A) = (α2(A) · aAA + α2(B) · aBA) · bA(O2) = (0,0216 · 0,6 + 0,172· 0,0) · 0,2 = 0,002592
α3(B) = (α2(A) · aAB + α2(B) · aBB) · bB(O2) = (0,0216 · 0,4 + 0,172· 1,0) · 1,0 = 0,18064
otrzymujemy:
P(O/M) = α3(A) + α3(B) = 0,183232
Łącznie N·T obliczeń
N-stanów
T-długość obserwacji
Przykład –
rozmowa telefoniczna
Bob do Alicji – „dziś sprzątam”
Alicja do Boba – „a więc u Ciebie pada”
 Stany = (‘Deszcz', ‘Słońce')
 Obserwacje = (‘Spacer', ‘Zakupy', ‘Sprzątanie')
 Pstwa_początkowe= {Deszcz': 0.6, ‘Słońce': 0.4}
 Pstwa_przejść=
 { ‘Deszcz' : {'Deszcz': 0.7, 'Słońce': 0.3},
 'Słońce' : {'Deszcz': 0.4, 'Słońce': 0.6}, }
 Pstwa_obserwacji =


{ 'Deszcz' : {‘Spacer': 0.1, ‘Zakupy': 0.4, ‘Sprzątanie': 0.5},
'Słońce' : {' Spacer': 0.6, ‘Zakupy‘: 0.3, ‘Sprzątanie ': 0.1}, }
Przykład – symptomy choroby
Zastosowania
 Celem jest „odzyskanie” sekwencji stanów,
które można obserwować tylko pośrednio,
jako manifestację w postaci „obserwacji”
 Kryptoanaliza
 Rozpoznawanie mowy
 Synteza mowy
 Tłumaczenie maszynowe
 Sekwencjonowanie genów
 Rozpoznawanie czynności
 Detekcja wirusów komputerowych
 …
DZIĘKUJĘ ZA UWAGĘ