Hidden Markov Model vs Recurrent Neural Network


13

Które problemy z sekwencyjnym wejściem są najbardziej odpowiednie dla każdego? Czy wymiar wejściowy określa, które z nich jest lepsze? Czy problemy wymagające „dłuższej pamięci” lepiej pasują do RNN LSTM, podczas gdy problemy z cyklicznymi wzorcami wprowadzania danych (giełda, pogoda) są łatwiejsze do rozwiązania przez HMM?

Wygląda na to, że nakładają się na siebie; Jestem ciekawy, jakie subtelne różnice istnieją między nimi.


+1, ale pytanie może być zbyt ogólne ... Poza tym, o ile mi wiadomo, są zupełnie inne ..
Haitao Du

dodałem więcej wyjaśnień
zadośćuczynienie

Na marginesie możesz umieścić CRF na RNN, np. Github.com/Franck-Dernoncourt/NeuroNER
Franck Dernoncourt

Odpowiedzi:


8

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 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.


1

Zobaczmy najpierw różnice między HMM a RNN.

Z tego artykułu: Samouczek na temat ukrytych modeli Markowa i wybranych aplikacji do rozpoznawania mowy możemy nauczyć się, że HMM powinny charakteryzować następujące trzy podstawowe problemy:

Problem 1 (Prawdopodobieństwo): Biorąc pod uwagę HMM λ = (A, B) i sekwencję obserwacji O, określ prawdopodobieństwo P (O | λ).
Problem 2 (dekodowanie): Biorąc pod uwagę sekwencję obserwacji O i HMM λ = (A, B), odkryj najlepszą sekwencję stanu ukrytego Q.
Problem 3 (Uczenie się): Biorąc pod uwagę sekwencję obserwacji O i zbiór stanów w HMM, poznaj parametry HMM A i B.

Możemy porównać HMM z RNN z tych trzech perspektyw.

Prawdopodobieństwo

zsumuj wszystkie ukryte sekwencje Prawdopodobieństwo w HMM (zdjęcie A.5) Model językowy w RNN
po prostu uzyskaj prawdopodobieństwo z funkcji softmax

P.(O)=QP.(O,Q)=QP.(O|Q)P.(Q)Q1p(X)=t=1T.1p(xt|x(t-1),...,x(1))T. , a my nie sumują się ukryte stany i nie uzyskać dokładny prawdopodobieństwo.

Rozszyfrowanie

vt(jot)=mzaxja=1N.vt-1(ja)zajajotb(ot)P.(y1,...,yO|x1,...,xT.)=o=1OP.(yo|y1,...,yo-1,doo)Y zwykle nie jest równy obserwacji X.

odważna ścieżka
Dekodowanie w HMM (rysunek A.10)

część dekodera
Dekodowanie w RNN

Uczenie się

Nauka w HMM jest znacznie bardziej skomplikowana niż w RNN. W HMM zwykle wykorzystywał algorytm Baum-Welcha (szczególny przypadek algorytmu Expectation-Maximization), podczas gdy w RNN jest to zazwyczaj spadek gradientu.

Dla twoich pytań:

Które problemy z sekwencyjnym wejściem są najbardziej odpowiednie dla każdego?

Gdy nie masz wystarczającej ilości danych, skorzystaj z HMM i gdy musisz obliczyć dokładne prawdopodobieństwo, HMM będzie również lepszym rozwiązaniem (generatywne zadania modelujące sposób generowania danych). W przeciwnym razie możesz użyć RNN.

Czy wymiar wejściowy określa, które z nich jest lepsze?

Nie sądzę, ale HMM może potrzebować więcej czasu, aby dowiedzieć się, czy stany ukryte są zbyt duże, ponieważ złożoność algorytmów (do przodu do tyłu i Viterbi) jest w zasadzie kwadratem liczby stanów dyskretnych.

Czy problemy wymagające „dłuższej pamięci” lepiej pasują do RNN LSTM, podczas gdy problemy z cyklicznymi wzorcami wprowadzania danych (giełda, pogoda) są łatwiejsze do rozwiązania przez HMM?

W HMM na bieżący stan mają również wpływ poprzednie stany i obserwacje (przez stany nadrzędne), a można wypróbować ukryty model Markowa drugiego rzędu dla „dłuższej pamięci”.

Myślę, że możesz użyć RNN do zrobienia prawie

Bibliografia

  1. Przetwarzanie języka naturalnego z głębokim uczeniem się CS224N / Ling284
  2. Ukryte modele Markowa

Ale w cytowanym artykule mówi, że HMM ma stan ukryty, chociaż dyskretny?
Oleg Afanasyev

@OlegAfanasyev Tak. Myślę, że się mylę, ale wrócę do tej odpowiedzi później.
Lerner Zhang

Czy to zostało poprawione?
GENIVI-LEARNER

1
@ GENIVI-LEARNER Przepisałem odpowiedź i mam nadzieję, że okaże się pomocna, a także mam nadzieję, że dostarczysz mi kilku wskazówek, jak ją ulepszyć.
Lerner Zhang

0

Znalazłem to pytanie, ponieważ zastanawiałem się również nad ich podobieństwami i różnicami. Myślę, że bardzo ważne jest stwierdzenie, że Ukryte Modele Markowa (HMM) nie mają danych wejściowych i wyjściowych w ścisłym znaczeniu tego słowa.

HMM są tak zwanymi modelami generatywnymi , jeśli masz HMM, możesz wygenerować z niego pewne obserwacje w obecnej postaci. Zasadniczo różni się to od RNN, ponieważ nawet jeśli masz wyszkolony RNN, potrzebujesz do niego wkładu.

Praktycznym przykładem, w którym jest to ważne, jest synteza mowy. Podstawowymi stanami Ukrytego Markowa są telefony, a emitowane zdarzenia prawdopodobieństwa to akustyka. Jeśli masz wyszkolony model słów, możesz wygenerować tyle różnych jego realizacji, ile chcesz.

Ale w przypadku RNN musisz podać przynajmniej trochę nasion wejściowych, aby uzyskać wynik. Można argumentować, że w HMM należy również zapewnić wstępną dystrybucję, więc jest podobnie. Ale jeśli trzymamy się przykładu syntezy mowy, to nie dlatego, że początkowa dystrybucja zostanie ustalona (zawsze zaczynając od pierwszych telefonów tego słowa).

Dzięki RNN otrzymujesz deterministyczną sekwencję wyjściową dla wyuczonego modelu, jeśli cały czas używasz tego samego źródła danych wejściowych. Dzięki HMM nie robi się tak, ponieważ przejścia i emisje są zawsze próbkowane z rozkładu prawdopodobieństwa.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.