Чем отличаются скрытые марковские модели от нейронных сетей?


40

Я просто промочил статистику, поэтому извините, если этот вопрос не имеет смысла. Я использовал модели Маркова для прогнозирования скрытых состояний (нечестных казино, бросков игральных костей и т. Д.) И нейронных сетей для изучения кликов пользователей в поисковой системе. У обоих были скрытые состояния, которые мы пытались выяснить, используя наблюдения.

Насколько я понимаю, они оба предсказывают скрытые состояния, поэтому мне интересно, когда можно было бы использовать модели Маркова через нейронные сети? Это просто разные подходы к подобным проблемам?

(Я заинтересован в обучении, но у меня есть и другая мотивация, у меня есть проблема, которую я пытаюсь решить, используя скрытые модели Маркова, но это сводит меня с ума, поэтому мне было интересно посмотреть, смогу ли я перейти на использование чего-то другого.)


2
Возможно, вы захотите посмотреть здесь: stats.stackexchange.com/questions/4498/…
Nucular

Не могли бы вы выбрать ответ или уточнить, что вы ищете?
конъюнктурный

Ответы:


28

Что скрыто и что наблюдается

То, что скрыто в скрытой модели Маркова, то же самое, что и то, что скрыто в модели с дискретной смесью, поэтому для ясности забудем о динамике скрытого состояния и в качестве примера остановимся на модели конечной смеси. «Состояние» в этой модели - это идентичность компонента, вызвавшего каждое наблюдение. В этом классе моделей такие причины никогда не наблюдаются, поэтому «скрытая причина» статистически переводится в утверждение, что наблюдаемые данные имеют предельные зависимости, которые удаляются, когда известен исходный компонент. И исходные компоненты оцениваются как те, которые делают эти статистические отношения истинными.

В скрытой многослойной нейронной сети с сигмовидными средними единицами скрыта вещь этих состояний, а не выходы, являющиеся целью вывода. Когда выходные данные сети представляют собой классификацию, т. Е. Распределение вероятностей по возможным выходным категориям, эти значения скрытых единиц определяют пространство, в пределах которого категории могут быть разделены. Хитрость в изучении такой модели состоит в том, чтобы создать скрытое пространство (путем настройки отображения входных единиц), в котором задача является линейной. Следовательно, нелинейные границы решения возможны от системы в целом.

Генеративный или дискриминационный

Смешанная модель (и HMM) - это модель процесса генерирования данных, которую иногда называют вероятностной или «прямой моделью». В сочетании с некоторыми предположениями о предыдущих вероятностях каждого состояния вы можете определить распределение по возможным значениям скрытого состояния, используя теорему Байеса (генеративный подход). Обратите внимание, что, хотя он и называется «предыдущим», как предшествующий, так и параметры вероятности обычно извлекаются из данных.

В отличие от смешанной модели (и НММ) нейронная сеть изучает апостериорное распределение по выходным категориям напрямую (дискриминационный подход). Это возможно, потому что выходные значения наблюдались во время оценки. И поскольку они наблюдались, нет необходимости строить апостериорное распределение из предшествующей и конкретной модели для вероятности, такой как смесь. Апостериорные данные изучаются непосредственно из данных, которые являются более эффективными и менее зависимыми от модели.

Смешивать и сочетать

Чтобы сделать вещи более запутанными, эти подходы могут быть смешаны вместе, например, когда иногда фактически наблюдается состояние смешанной модели (или HMM). Когда это так, и в некоторых других обстоятельствах, не относящихся к делу, можно обучать дискриминационной модели в целом. Аналогичным образом, можно заменить отображение смешанной модели НММ более гибкой прямой моделью, например нейронной сетью.

Вопросы

Так что не совсем верно, что обе модели предсказывают скрытое состояние. HMM могут использоваться для прогнозирования скрытого состояния, хотя и того типа, которого ожидает прямая модель. Нейронные сети могут использоваться для прогнозирования еще не наблюдаемого состояния, например, будущих состояний, для которых доступны предикторы. Такое состояние в принципе не скрыто, просто оно еще не наблюдалось.

Когда бы вы использовали один, а не другой? Ну, по моему опыту, нейронные сети делают довольно неудобные модели временных рядов. Они также предполагают, что вы заметили результат. HMM не знает, но вы на самом деле не можете контролировать, что же такое скрытое состояние. Тем не менее, они являются подходящими моделями временного ряда.


2
+1 Это очень хорошо. Под: Similarly it is possible to replace the mixture model mapping of an HMM with a more flexible forward model, e.g., a neural network.вы имеете в виду замену вероятностей выбросов p (Observed | Hidden) на NN с прямой связью? Я сталкивался с этим в нескольких местах, но ни одно не дает объяснения; они просто упоминают, что реализовали это. Я предполагаю, что они заменяют шаг MLE для изучения выбросов, но не могут понять, как. Знаете ли вы какой-либо код или пояснительный пример? Любые указатели приветствуются, спасибо.
Жубарб

Кажется, он менее используется таким образом (еще несколько человек ML могут поправить меня здесь). По словам Та, оценка NN-параметров, отображающих вектор состояния на выход при условии, что он знает вектор состояния (или, по крайней мере, знает его ожидаемое значение, как в EM-алгоритме), является той же задачей, что и тренировка с наблюдаемыми входными и выходными данными, поэтому я предполагаю, что ничего особенного сказать об этой части.
конъюнктурный

Ответ хороший, за исключением того, что нейронные сети могут быть либо дискриминационными (прямая связь и т. Д.), Либо генеративными (ограниченные машины Больцмана и т. Д.). Кроме того, рекуррентные нейронные сети, такие как модели LSTM и Reservoir Computing, могут моделировать временные ряды, а также HMM, а иногда даже лучше, чем HMM, особенно в случае временных рядов с сильной нелинейной динамикой и длительной корреляцией.
GuSuku

10

Скрытые марковские модели могут использоваться для генерации языка, то есть элементов списка из семейства строк. Например, если у вас есть HMM, который моделирует набор последовательностей, вы сможете генерировать членов этого семейства, перечисляя последовательности, которые попадают в группу последовательностей, которые мы моделируем.

Нейронные сети, берут входные данные из многомерного пространства и просто отображают его в более низкое пространственное пространство (способ, которым Нейронные сети отображают этот вход, основан на обучении, его топологии и других факторах). Например, вы можете взять 64-битное изображение числа и сопоставить его со значением true / false, которое описывает, является ли это число 1 или 0.

Хотя оба метода способны (или могут, по крайней мере, пытаться) различать, является ли элемент членом класса или нет, нейронные сети не могут генерировать язык, как описано выше.

Существуют альтернативы скрытым марковским моделям, например, вы можете использовать более общую байесовскую сеть, другую топологию или стохастическую не зависящую от контекста грамматику (SCFG), если вы считаете, что проблема заключается в недостатке мощности HMM для смоделируйте вашу проблему - то есть, если вам нужен алгоритм, который способен различать более сложные гипотезы и / или описывать поведение данных, которое является гораздо более сложным.


6
+1 За второй абзац. Я хотел бы отметить, что любой, кто четко понимает все элементы этого ответа, вероятно, не будет задавать оригинальный вопрос. Вероятно, бесполезно упоминать формальные грамматики кому-то, чей пост начинается с «Я просто промочил статистику ...» Второй абзац здесь отражает суть того, что спрашивает ОП. Вместо первого абзаца вы можете сказать: HMM моделирует условные зависимости скрытых состояний, где каждое состояние имеет распределение вероятностей по наблюдениям.
Филип Облако

7
Этот ответ просто неправильный. Нейронная сеть здесь считается прямой связью. Это только один класс нейронных сетей. Рекуррентные модели не просто отображают отдельные входы в более низкоразмерное представление, и они могут генерировать язык. См., Например, arxiv.org/abs/1308.0850
rd11

Генерация последовательности (как в связанной статье) - это не то же самое, что генерация языка. Я полагаю, что вы могли бы применить их для различения между элементами набора и, если хотите, в противном случае, рекуррентная модель может быть предусмотрена как получение одного большого входного сигнала, охватывающего отдельные входы с повторением, и возвращающего один большой выходной сигнал. Не уверен, что текущая нейронная сеть может дать вам выходы без каких-либо входов.
Андрей

Хм. Можете ли вы привести пример того, что, по вашему мнению, может сгенерировать HMM, и которое, по вашему мнению, не может быть сгенерировано с помощью RNN?
rd11

На ум приходит следующий пример: с помощью HMM вы можете получить последовательность элементов, принадлежащих языку, который представляет HMM. Для того чтобы RNN сделал это, вам нужно добавить что-то сверх этого (например, попробовать разные входы и пометить вход как член класса или иным образом) - хотя в случае RNN вы, вероятно, просматриваете несколько входов (один за другим) как представление одного «элемента». HMM более естественно подходят для генерации языка.
Андрей

3

Лучший ответ на этот вопрос из того, что я нашел, заключается в следующем: углубленное изучение замаскированной цепи Маркова . Это именно то, что я понял, но, поскольку в Интернете уже было обсуждение, я помещаю ссылку здесь.

п(Икс1,,,,ИксN)знак равноп(Икс1)п(Икс2|Икс1)п(Икс3|Икс2),,,

п(Икс1,,,,ИксN)знак равноп(Икс1)п(Икс2|Икс1)п(Икс3|Икс2,Икс1)п(Икс4|Икс3,Икс2,Икс1),,,

Мы можем использовать последовательность символов в качестве входных данных вместо одного символа. Таким образом, мы можем лучше фиксировать состояние (в зависимости от контекста).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.