Podsumowanie
Ukryte modele Markowa (HMM) są znacznie prostsze niż nawracające sieci neuronowe (RNN) i opierają się na mocnych założeniach, które nie zawsze są prawdziwe. Jeśli założenia są prawdziwe, możesz zauważyć lepszą wydajność HMM, ponieważ praca jest trudniejsza.
RNN może działać lepiej, jeśli masz bardzo duży zestaw danych, ponieważ dodatkowa złożoność może lepiej wykorzystać informacje zawarte w danych. Może to być prawdą, nawet jeśli założenia HMM są prawdziwe w twoim przypadku.
Wreszcie, nie ograniczaj się tylko do tych dwóch modeli dla swojego zadania sekwencyjnego, czasem prostsze regresje (np. ARIMA) mogą wygrać, a czasem inne skomplikowane podejścia, takie jak sieci neuronowe z konwekcji, mogą być najlepsze. (Tak, CNN można zastosować do niektórych rodzajów danych sekwencji, podobnie jak RNN.)
Jak zawsze najlepszym sposobem, aby dowiedzieć się, który model jest najlepszy, jest wykonanie modeli i pomiar wydajności na odłożonym zestawie testowym.
Mocne założenia HMM
Przejścia stanu zależą tylko od bieżącego stanu, a nie od niczego w przeszłości.
To założenie nie dotyczy wielu obszarów, które znam. Na przykład, udawaj, że próbujesz przewidzieć dla każdej minuty dnia, czy dana osoba nie śpi, czy śpi z danych o ruchu. Szansa przejścia z trybu uśpienia do przebudzenia wzrasta, im dłużej osoba ta jest w stanie uśpienia . RNN może teoretycznie nauczyć się tej relacji i wykorzystać ją do uzyskania większej dokładności predykcyjnej.
Możesz spróbować obejść ten problem, na przykład włączając poprzedni stan jako funkcję lub definiując stany złożone, ale dodatkowa złożoność nie zawsze zwiększa dokładność predykcyjną HMM i zdecydowanie nie pomaga w czasach obliczeniowych.
Musisz wstępnie zdefiniować całkowitą liczbę stanów.
Wracając do przykładu snu, może się wydawać, że dbamy tylko o dwa stany. Jednak nawet jeśli zależy nam jedynie na przewidywaniu stanu czuwania i snu , nasz model może odnieść korzyść z wykrycia dodatkowych stanów, takich jak jazda samochodem, prysznic itp. (Np. Prysznic zwykle przychodzi tuż przed snem). Ponownie RNN mógłby teoretycznie nauczyć się takiego związku, gdyby pokazał wystarczającą liczbę jego przykładów.
Trudności z RNN
Z powyższego może się wydawać, że RNN są zawsze lepsze. Powinienem jednak zauważyć, że RNN mogą być trudne do uruchomienia, szczególnie gdy twój zestaw danych jest mały lub twoje sekwencje są bardzo długie. Osobiście miałem kłopoty z nakłonieniem RNN do trenowania niektórych moich danych i podejrzewam, że większość opublikowanych metod / wytycznych RNN jest dostosowana do danych tekstowych . Próbując użyć RNN na danych nietekstowych, musiałem przeprowadzić szersze wyszukiwanie hiperparametrów, niż mi zależy, aby uzyskać dobre wyniki w moich konkretnych zestawach danych.
W niektórych przypadkach stwierdziłem, że najlepszym modelem dla danych sekwencyjnych jest w rzeczywistości styl UNet ( https://arxiv.org/pdf/1505.04597.pdf ) Model sieci neuronowej splotowej, ponieważ jest łatwiejszy i szybszy do trenowania oraz jest w stanie aby wziąć pod uwagę pełny kontekst sygnału.