Wdrożyłem dyskretny HMM zgodnie z tym samouczkiem http://cs229.stanford.edu/section/cs229-hmm.pdf
Ten samouczek i inni zawsze mówią o szkoleniu HMM, biorąc pod uwagę sekwencję obserwacji.
Co się stanie, gdy mam wiele sekwencji treningowych? Czy powinienem je kolejno uruchamiać, trenując model po drugim?
Inną opcją jest łączenie sekwencji w jedną i trenowanie na niej, ale wtedy będę miał przejścia stanu od końca jednej sekwencji do początku następnej, które nie są rzeczywiste.
hidden-markov-model
Biegł
źródło
źródło
hmmlearn
realizacja HMM ma już wsparcia HMM treningowy z wieloma sekwencjami. Zobacz trening HMM z wieloma sekwencjamiOdpowiedzi:
Nie należy łączyć ani przeprowadzać każdej iteracji treningu z inną sekwencją. Prawidłowe podejście wymaga wyjaśnienia:
Zazwyczaj trenuje się HMM przy użyciu algorytmu EM. Składa się z kilku iteracji. Każda iteracja ma jeden „szacunek” i jeden krok „maksymalizacji”. W kroku „maksymalizacji” dopasowujesz każdy wektor obserwacji x do stanu s w swoim modelu, aby zmaksymalizować pewną miarę prawdopodobieństwa. W kroku „oszacowania” dla każdego stanu s szacuje się (a) parametry modelu statystycznego dla wektorów x wyrównanych do s oraz (b) prawdopodobieństwa przejścia stanu. W następnej iteracji krok maksymalizacji uruchamia się ponownie ze zaktualizowanymi modelami statystycznymi itp. Proces powtarza się określoną liczbę razy lub gdy miara prawdopodobieństwa przestaje znacząco rosnąć (tzn. Model zbiega się w stabilne rozwiązanie). Wreszcie (przynajmniej w rozpoznawaniu mowy) HMM zazwyczaj ma wyznaczony „start”
Tak więc, jeśli masz wiele sekwencji treningowych, na etapie oszacowania powinieneś uruchomić każdą sekwencję, aby jej początkowy wektor obserwacji był zgodny ze stanem początkowym. W ten sposób statystyki dotyczące tego stanu początkowego są zbierane z pierwszych obserwacji we wszystkich twoich sekwencjach obserwacyjnych i ogólnie wektory obserwacyjne są dostosowane do najbardziej prawdopodobnych stanów w każdej sekwencji. Zrobisz krok maksymalizacyjny (i przyszłe iteracje) dopiero po zapewnieniu wszystkich sekwencji do treningu. Przy następnej iteracji zrobiłbyś dokładnie to samo.
Dopasowując początek każdej sekwencji obserwacyjnej do stanu początkowego, unikniesz problemu konkatenacji sekwencji, w których niepoprawnie modelowałbyś przejścia między końcem jednej sekwencji a początkiem następnej. Używając wszystkich sekwencji w każdej iteracji, unikniesz podawania różnych sekwencji w każdej iteracji, co, jak zauważył respondent, nie zagwarantuje zbieżności.
źródło
Lawrence Rabiner opisuje matematycznie uzasadnione podejście w tym samouczku z IEEE 77 . Samouczek jest także szóstym rozdziałem książki Podstawy rozpoznawania mowy autorstwa Rabinera i Juanga.
RIA Davis i in. glin. zawiera dodatkowe sugestie w tym dokumencie .
Nie zagłębiłem się dokładnie w matematykę, ale dla mnie podejście Rabina jest najbardziej obiecujące, podczas gdy podejście Davisa wydaje się pozbawione podstaw matematycznych.
źródło
Jeśli postępujesz zgodnie z matematyką, dodanie dodatkowych przykładów szkoleniowych oznacza ponowne obliczenie sposobu obliczania prawdopodobieństwa. Zamiast sumowania wymiarów, sumujesz także przykłady treningów.
Jeśli trenujesz jeden model po drugim, nie ma gwarancji, że EM obejmie każdy przykład szkolenia, a skończysz na złych szacunkach.
Oto artykuł, który robi to w przypadku Filmu Kalmana (który jest HMM z prawdopodobieństwem Gaussa), może dać ci próbę modyfikacji kodu, abyś mógł obsługiwać więcej przykładów.
http://ntp-0.cs.ucl.ac.uk/staff/S.Prince/4C75/WellingKalmanFilter.pdf
Ma również wykład na temat HMM, ale logika jest dość prosta.
źródło
Jest to bardziej komentarz do artykułu RIA Davis, do którego odwołuje się Bittenus (powyżej) . Będę musiał zgodzić się z Bittenusem, za technikami zaproponowanymi w artykule nie ma zbyt dużego poparcia matematycznego - jest to raczej porównanie empiryczne.
Artykuł rozważa jedynie przypadek, w którym HMM ma ograniczoną topologię (sprzężenie zwrotne). (w moim przypadku mam standardową topologię i najbardziej spójne wyniki znalazłem, wdrażając nieważone uśrednianie wszystkich modeli trenowanych z Baum-Welch. Podejście to jest wspomniane w pracy, ale przytoczone jedynie z marginalnymi wynikami).
Inny typ szkolenia uśredniającego model został szczegółowo opisany przez RIA Davis w artykule w czasopiśmie i wykorzystuje Szkolenie Vitterbi zamiast Baum-Welch Porównywanie i ocenę algorytmów szkolenia zespołu HMM z wykorzystaniem kryteriów pociągu i testu oraz numeru stanu . Jednak ten artykuł bada tylko HMM z tą samą ograniczoną topologią sprzężenia zwrotnego. (Planuję zbadać tę metodę i zaktualizuję ten post o moje ustalenia).
źródło