Обучение скрытой марковской модели, несколько учебных примеров


18

Я реализовал дискретный HMM в соответствии с этим учебником http://cs229.stanford.edu/section/cs229-hmm.pdf

Этот урок и другие всегда говорят о тренировке HMM с учетом последовательности наблюдений.

Что происходит, когда у меня несколько тренировочных последовательностей? Должен ли я просто запустить их последовательно, обучая модель за другой?

Другой вариант - объединить последовательности в одну и тренироваться на ней, но тогда у меня будут переходы состояний от конца одной последовательности к началу следующей, которые не являются реальными.


См. Эту статью pdfs.semanticscholar.org/4000/… Даже если они распространяют идеи на сценарий не-неопределенных наблюдений, мне было довольно полезно понять простой случай, когда предполагается неопределенность
Марк Торреллас,

hmmlearnвнедрение СММ уже поддержки обучения СММ с несколькими последовательностями. Просто посмотрите тренировку HMM с несколькими последовательностями
Вэньмин Ву

Ответы:


16

Ни объединение, ни выполнение каждой итерации обучения с другой последовательностью не является правильным решением. Правильный подход требует некоторого объяснения:

Обычно тренируют НММ, используя алгоритм EM, Это состоит из нескольких итераций. Каждая итерация имеет один шаг «оценки» и один шаг «максимизации». На шаге «максимизировать» вы выровняете каждый вектор наблюдения x с состоянием s в вашей модели, так что некоторая мера правдоподобия будет максимизирована. На шаге «оценка» для каждого состояния s вы оцениваете (a) параметры статистической модели для векторов x, выровненных по s, и (b) вероятности перехода состояний. В следующей итерации шаг максимизации выполняется снова с обновленными статистическими моделями и т. Д. Процесс повторяется заданное количество раз или когда мера вероятности перестает значительно расти (т. Е. Модель сходится к устойчивому решению). Наконец, (по крайней мере, в распознавании речи) HMM обычно имеет назначенное «начало»

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

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


Требует ли этот метод, чтобы каждая обучающая последовательность была одинаковой длины?
Nate

2
Нет, это не так. Обычно проектируют HMM так, чтобы он позволял выполнять самопетли (одно и то же состояние используется несколько раз подряд) и позволял переходить в несколько состояний. Эти функции позволяют HMM оценивать последовательности различной длины.
ДжеффМ

4

Лоуренс Рабинер описывает математически обоснованный подход в этом уроке из IEEE 77 . Учебное пособие также является шестой главой книги « Основы распознавания речи » Рабинера и Хуанга.

РИА Дэвис и др. и др. предоставляет некоторые дополнительные предложения в этой статье .

Я не прошел тщательное изучение математики, но для меня подход Рабинера звучит наиболее многообещающе, в то время как подход Дэвиса, похоже, лишен математической основы.


2

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

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

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

http://ntp-0.cs.ucl.ac.uk/staff/S.Prince/4C75/WellingKalmanFilter.pdf

У него также есть лекция по HMM, но логика довольно проста.


1
Я действительно не понял, что вы имеете в виду. Можете ли вы указать мне правильное направление? Благодарю.
Ран

0

Это скорее комментарий к статье РИА Дэвис, на которую ссылается Биттенус (см. Выше) . Я должен согласиться с Биттенусом, что за методами, предложенными в статье, нет математической поддержки - это скорее эмпирическое сравнение.

В статье рассматривается только случай, когда HMM имеет ограниченную топологию (прямая связь). (В моем случае у меня стандартная топология, и я нашел наиболее непротиворечивые результаты, применяя невзвешенное усреднение всех моделей, обученных с помощью Baum-Welch. Этот подход упоминается в статье, но цитируется только с минимальными результатами).

Другой тип обучения усреднению моделей был подробно описан RIA Davis в журнальной статье, в которой вместо обучения Баум-Уэлча используется обучение Vitterbi, сравнивающее и оценивающее алгоритмы обучения ансамбля HMM с использованием критериев обучения, тестирования и числа условий . Однако в этой статье рассматриваются только HMM с той же ограниченной топологией прямой связи. (Я планирую изучить этот метод и обновлю этот пост с моими выводами.)

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