Создать дискретную скрытую марковскую модель с матричными (NxN) наблюдениями?
Во всех дискретных HMM, которые я видел, данные наблюдений состояли из потока целых чисел. Однако что произойдет, если наблюдения на самом деле представляют собой дискретные векторы признаков? Например, что если я пытаюсь использовать HMM для обучения распознаванию жестов по значениям интенсивности оттенков серого видеокадров? То есть каждое наблюдение описывается матрицей nxn, а не одним значением? Как мне это сделать?
Спасибо!
2 ответа
Вы можете использовать дискретное мультиномиальное распределение для эмиссионной составляющей HMM. Например, каждое состояние генерирует массив целых чисел длины n*n
со значениями от 0 до 255, обозначающими интенсивность пикселей (в оттенках серого).
Конечно, если значения являются непрерывными (числа с плавающей запятой), просто используйте многомерное нормальное распределение.
В зависимости от библиотеки, которую вы хотите использовать, ObservationVectors
может хорошо служить. Вы можете выровнять матрицу по n²-мерному вектору и обучить модель проверенным данным. Тогда вы сможете обнаружить любой жест из последовательности векторных наблюдений.