Резюме
Скрытые марковские модели (HMM) намного проще, чем рекуррентные нейронные сети (RNN), и полагаются на сильные предположения, которые не всегда могут быть верными. Если предположения являются правдой , то вы можете увидеть лучшую производительность от НММ , так как он менее привередлив , чтобы получить работу.
RNN может работать лучше, если у вас очень большой набор данных, поскольку дополнительная сложность может более эффективно использовать информацию в ваших данных. Это может быть правдой, даже если предположения НММ верны в вашем случае.
Наконец, не ограничивайтесь только этими двумя моделями для вашей последовательности задач, иногда могут победить более простые регрессии (например, ARIMA), а иногда другие сложные подходы, такие как сверточные нейронные сети, могут быть лучшими. (Да, CNN могут применяться к некоторым видам данных последовательности, точно так же как RNN.)
Как всегда, лучший способ узнать, какая модель является лучшей, - это создать модели и измерить производительность на длительном тестовом наборе.
Сильные предположения HMM
Изменения состояния зависят только от текущего состояния, а не от чего-либо в прошлом.
Это предположение не имеет места во многих областях, с которыми я знаком. Например, представьте, что вы пытаетесь предсказать на каждую минуту дня, проснулся ли человек или спит по данным о движении. Вероятность перехода человека из спящего в состояние бодрствования увеличивается, чем дольше он находится в спящем состоянии. RNN может теоретически изучить это соотношение и использовать его для более высокой точности прогнозирования.
Вы можете попытаться обойти это, например, включив предыдущее состояние в качестве функции или определив составные состояния, но добавленная сложность не всегда повышает прогнозирующую точность HMM, и это определенно не помогает времени вычислений.
Вы должны предварительно определить общее количество состояний.
Возвращаясь к примеру сна, может показаться, что мы заботимся только о двух состояниях. Однако, даже если мы заботимся только о прогнозировании бодрствования или сна , наша модель может извлечь выгоду из определения дополнительных состояний, таких как вождение, принятие душа и т. Д. (Например, принятие душа обычно происходит непосредственно перед сном). Опять же, RNN может теоретически выучить такие отношения, если покажет достаточно примеров.
Трудности с РНН
Из вышесказанного может показаться, что RNN всегда превосходят. Я должен отметить, однако, что RNN могут быть трудными для работы, особенно когда ваш набор данных маленький или ваши последовательности очень длинные. У меня лично были проблемы с обучением RNN для обучения некоторым из моих данных, и у меня есть подозрение, что большинство опубликованных методов / руководств по RNN настроены на текстовые данные. При попытке использовать RNN для нетекстовых данных мне пришлось выполнить более широкий поиск гиперпараметров, чем мне хотелось бы, чтобы получить хорошие результаты по моим конкретным наборам данных.
В некоторых случаях я обнаружил, что лучшая модель для последовательных данных - это стиль UNet ( https://arxiv.org/pdf/1505.04597.pdf ) Модель сверточной нейронной сети, поскольку ее легче и быстрее обучать, и она способна принять во внимание полный контекст сигнала.