2013-07-05 4 views
14

Я пытаюсь использовать скрытую марковскую модель (HMM) для задачи, где у меня есть M различных наблюдаемых переменных (Yti) и одна скрытая переменная (Xt) в каждый момент времени t. Для ясности предположим, что все наблюдаемые переменные (Yti) категоричны, где каждый Yti передает различную информацию и как таковая может иметь разные мощности. Иллюстративный пример приведен на рисунке ниже, где M = 3.Скрытая марковская модель для нескольких наблюдаемых переменных

enter image description here

Моя цель состоит в том, чтобы обучить перехода, излучение и априорные вероятности НММ, используя алгоритм Baum-Welch, от моих наблюдаемых переменных последовательностей (YTI). Предположим, Xt изначально будет иметь 2 скрытых состояния.

Я прочитал несколько учебников (в том числе знаменитого бумаги Рабинера) и прошел через кодексы несколько HMM программных пакетов, а именно «HMM Toolbox в MatLab» и «hmmpytk пакета в Python». В целом, я сделал обширный веб-поиск, и все ресурсы, которые я мог найти, охватывают только случай, когда в каждый момент времени имеется только одна наблюдаемая переменная (M = 1). Это все больше заставляет меня думать, что HMM не подходят для ситуаций с несколькими наблюдаемыми переменными.

  • Можно ли моделировать проблему, изображенную на рисунке, как HMM?
  • Если это так, то как можно модифицировать алгоритм Baum-Welch для обучения по параметрам HMM на основе вероятностей множественного наблюдения (излучения)?
  • Если нет, знаете ли вы о методологии, которая более подходит для ситуации, изображенной на рисунке?

Спасибо.

Edit: В этом paper, ситуация, изображенная на рисунке описывается как Dynamic наивного байесовского, что -in условия обучения и оценки algorithms- требует небольшого расширения для Baum-Welch и Витерби алгоритмов одномоментный HMM.

+0

Вы говорите о [что-то вроде этого] (http://vision.gel.ulaval.ca/~parizeau/Publications/P971225.pdf)? –

+0

Naïvely Я бы сказал, что вы можете моделировать такую ​​проблему, как стандартная HMM, только с одним наблюдением. Если каждая обверкация 'Yti' является элементом R, просто сделайте каждое многозначное' Yt' элементом в R^3. Это приведет к n^3 возможным многократным наблюдениям, если n - число возможных одиночных наблюдений. Тем не менее, это ** может ** (я не уверен/не знаю) приводит к необходимости получения дополнительных данных обучения по сравнению с более сложным подходом. – Aufziehvogel

+0

@ Aufziehvogel, хорошо, что есть возможность, но, как вы указываете, он очень сильно раздувает пространство вероятности и потребует много данных обучения. Кроме того, графически модель, которую вы предлагаете, не будет похожа на ту, что указана на картинке. – Rhubarb

ответ

5

Простейший способ сделать это, и оставить модель по-прежнему генеративной, состоит в том, чтобы сделать y_is условно независимым, учитывая x_is. Это приводит к тривиальным оценкам и относительно небольшим параметрам, но в некоторых случаях является довольно ограничительным предположением (это в основном форма HMM классификатора Наивного Байеса).

EDIT: что это значит. Для каждого временного времени i вы имеете многомерное наблюдение y_i = {y_i1...y_in}. Вы лечить y_ij как условно независимы с учетом x_i, так что:

p(y_i|x_i) = \prod_j p(y_ij | x_i) 

вы затем эффективно обучение наивный байесовский классификатор для каждого возможного значения скрытой переменной х. (Здесь условно независим: существуют зависимости в безусловном распределении ys). Это можно узнать со стандартным EM для HMM.

Вы могли бы также, как сказал один из комментаторов, рассматривать конкатенацию y_ijs как одного наблюдения, но если размерность любого из J переменных за тривиальный это приведет к много параметров, а вы Мне нужно больше данных о тренировках.

Вам нужна модель, чтобы быть генеративной? Если вы ищете только вывод в x_is, вам, скорее всего, будет гораздо лучше обслуживаться conditional random field, который благодаря своим функциональным функциям может иметь гораздо более сложные наблюдения без каких-либо ограничительных допущений независимости.

+0

Я не против иметь неориентированную модель вообще. Две причины, по которым я пытался использовать HMM, были: 1- Они казались простыми, 2- я действительно не знаю состояний скрытой переменной, которую я хочу предсказать. Другими словами, я изначально не моделировал проблему как контролируемую обучающую. Предложение Aufziehvogel не идеально, поскольку у меня не будет достаточных данных для обучения. Кстати, я не совсем понял (возможно, нотацию) ваше первоначальное замечание о «y_is условно независим, учитывая x_is» – Rhubarb

+0

ОК, поэтому, не зная состояний, я предполагаю, что вы имеете в виду, что вы делаете это без присмотра, т. Е. у вас нет данных о тренировках, а не на этикетках. Я обновил свой ответ, но похоже, что бумага, которую вы нашли, предлагает одно и то же: –

+0

И да, если у вас нет каких-либо учебных данных, тогда CRF (который является дискриминационной версией HMM) не будет быть опцией –

2

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

Следует проявлять осторожность в том, что DNB по-прежнему имеет скрытое состояние и поэтому не следует рассматривать как непосредственное последовательное расширение исходного классификатора Naive Bayes. «Наивный» в названии алгоритма происходит от того, что все наблюдаемые переменные независимы друг от друга, учитывая переменную скрытого состояния.

Как и в случае с HMM, оценки параметров этой модели могут быть достигнуты с помощью алгоритма Baum Welch (или EM, какой бы вы его ни называли). Так как распределение излучения на каждом временном шаге представляет собой произведение P (Yti | Xt) каждой наблюдаемой переменной Yti, необходимо слегка изменить уравнения прямой, обратной и совместной переменных, как описано в разделе 3 этого paper от Aviles- Arriaga et al.

0

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

Matlab предоставляет тендерную панель инструментов.

FYI, я работаю над связанной проблемой, так не стесняйтесь, напишите мне, если вы хотите обсудить в более приватной манере

0

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

Смежные вопросы