1. Определения
Скрытая марковская модель представляет собой простуюНаправленный ациклический графМодель, выражающая вероятностные корреляции между переменными. В основном используется для моделирования временных рядов, он имеет широкий спектр приложений для распознавания речи, обработки естественного языка и т. д.
Цепь МарковаОпределение: процесс вСостояние и процессы на данный моментПредыдущее состояние не имеет значения. (при условии, что «настоящее» уже известно, его «будущее» не имеет ничего общего с «прошлым») Математически выражается как:
2. Кейсы
2.1 Подготовка модели
Боб и Алиса хорошие друзья. Настроение Боба связано с погодой. Если погода хорошая, тосолнечно, обозначается как S, Боб вообще всчастливый, обозначается как Hстатус, если погодадождь, обозначаемый как R, настроение Боба обычно всварливый, обозначается как Gстатус. Что касается Алисы, то она очень аккуратная и наблюдательная девочка, собирала ее 14 дней.погодные условия, и 15-дневный срок БобаЧувство.
Количество переходов состояний в статистическом графе:погода предыдущего дня | погода второй день | количество | Доля |
---|---|---|---|
sunny | sunny | 8 | 0.8 |
sunny | rain | 2 | 0.2 |
rain | sunny | 2 | 0.4 |
rain | rain | 3 | 0.6 |
Количество переходов состояний в статистическом графе:
Погода | Чувство | количество | Доля |
---|---|---|---|
sunny | happy | 8 | 0.8 |
sunny | grumpy | 2 | 0.2 |
rain | happy | 2 | 0.4 |
rain | grumpy | 3 | 0.6 |
Нарисуйте рисунок ниже.
Несколько значений вероятности на рис. 3-1 называютсяtransition probabilities
Несколько значений вероятности на рис. 3-2 называютсяemission probabilities
2.2 Рассмотрим три вопроса:
Вопрос 1: Если Алиса выбирает случайный день и Алиса не получает новостей от Боба, будет солнечно или дождливо?
На [Рисунок 2. Соответствие между настроением Боба и погодой] имеется десять солнечных дней и пять дождливых дней.Когда у Боба нет информационных подсказок, доля солнечных дней равна, доля дождливых дней. Так что ответ на первый вопрос - даВероятность солнечная,Возможны дождливые дни.
Вопрос 2: Если Боб счастлив сегодня, какова вероятность солнечных и дождливых дней?
На самом деле это байесовская проблема: известный, , , , , , ,
попрошайничествоиВероятность.
Вопрос 3: Какое у Боба было настроение в течение трех дней подряд?Happy-Grumpy-Happy, какая погода в последний день?
В течение трех дней подряд в общей сложностиСреднее возможное:
- Sunny - Sunny - Sunny
- Sunny - Sunny - Rain
- Sunny - Rain - Sunny
- Sunny - Rain - Rain
- Rain - Rain - Rain
- Rain - Rain - Sunny
- Rain - Sunny - Rain
- Rain - Sunny - Sunny
В качестве примера возьмем третий случай:
Таким образом, 8 случаев рассчитываются отдельно, и берется тот, который имеет наибольшую вероятность.
2.3 Алгоритм Витерби:
Если настроение Боба «Счастливый-Счастливый-Сварливый-Сварливый-Сварливый-Счастливый», спросите погоду в последний день?
2.3.1 Идеи
Учитывая шесть дней, то всеговозможность, каждый дополнительный день, возможность рассмотреть увеличивается в геометрической прогрессии, здесь необходимо использоватьдинамическое программированиеподумал о.
-
step1: Последний день может быть Дождь или Солнечно, поэтому необходимо вычислить счастливое состояние Боба в случае Солнечно и состояние Счастливого в состоянии Дождь и сравнить вероятность.
-
step 2: Принимая во внимание, что последний день — солнечный, вероятность того, что солнечный день вызовет у Боба раздражение в предпоследний день, и вероятность того, что дождь вызовет у Боба раздражение в предпоследний день, выберите значение с наибольшей вероятностью. Сделайте то же самое для Дождя в предпоследний день.
-
Повторяйте Шаг 1 и Шаг 2, пока состояние не будет завершено.
Happy | Grumpy | Happy |
---|---|---|
Солнечно: | Sunny : | Sunny : |
Rain : | Rain | Rain : |
2.3.2 Код случая (алгоритм Витерби)
# 根据图中定义天气之间状态转移概率(transition probability)
Weather2Weather_Prob = {
'sunny': {
'sunny': 0.8,
'rain': 0.2
},
'rain': {
'sunny': 0.4,
'rain': 0.6
}
}
# 定义发射概率(emission probability)
Mood2Weather_Prob = {
'happy': {
'sunny': 0.8,
'rain': 0.4,
},
'grumpy': {
'sunny': 0.2,
'rain': 0.6
}
}
weather_state = ['sunny', 'rain']
mood_state = ['happy', 'grumpy']
# 初始化两种天气的概率
sunny_init_prob = 2/3
rain_init_prob = 1/3
def predictMood(BobMood):
weather = {}
weather_prob = {}
# 定义概率矩阵
for iday in range(len(BobMood)+1):
weather_prob[iday] = {
'sunny': 0,
'rain': 0
}
weather_prob[0] = {
'sunny': sunny_init_prob,
'rain': rain_init_prob
}
# 根据Bob的心情,计算每一天可能的概率
for iday, iday_mood in enumerate(BobMood):
# 考虑当前天气的状态数量
for icurrent_weather_state in weather_state:
weather_prob[iday][icurrent_weather_state] *= Mood2Weather_Prob[iday_mood][icurrent_weather_state]
# 考虑状态转移之后的概率
for ifuture_weather_state in weather_state:
weather_prob[iday+1][ifuture_weather_state] = max(
weather_prob[iday][icurrent_weather_state] * Weather2Weather_Prob[icurrent_weather_state][ifuture_weather_state],
weather_prob[iday + 1][ifuture_weather_state]
)
weather[iday] = 'sunny' if weather_prob[iday]['sunny'] > weather_prob[iday]['rain'] else 'rain'
return weather, weather_prob
if __name__ == '__main__':
BobMood = ['happy', 'happy', 'grumpy', 'grumpy', 'grumpy', 'happy']
weather, weather_prob = predictMood(BobMood)
print('weather is:')
print(weather)
print('probabilities are:')
print(weather_prob)
3. Научный вывод скрытого Маркова
3.1 Основные понятия
-
Последовательность состояния: соответствует вышеуказанному рисунку
-
Последовательность наблюдения: соответствует приведенному выше рисунку
-
Момент: каждая позиция последовательности, соответствующая рисунку выше.
В **"Если настроение Боба "Счастливый-Счастливый-Сварливый-Сварливый-Сварливый-Счастливый", спросите погоду в последний день?"середина:последовательность наблюденияэто БобаЧувство**,последовательность состоянийэтоПогода.
-
Формальное определение скрытой марковской модели:
- соответствует приведенному выше примеруПогода,соответствует приведенному выше примеруЧувство.,
- : 15-дневная последовательность погоды,: последовательность настроения Боба за 15 дней.
- матрица перехода состояний(можно перечислить согласно рисунку 3)
- Матрица вероятности наблюдения(можно перечислить согласно рисунку 4)
- вектор вероятности начального состояния(Вопрос 1): Да,.
3.2 Скрытая предпосылка Маркова
4. Приложения Маркова.
Примером Алисы, предсказывающей погоду по настроению Боба, является задача 3 — задача предсказания.
4.1 Проблемы расчета вероятности
Объясните на простом примере:
4.1.1 Прямой алгоритм
от имениНа данный момент последовательность наблюдений такова: красный 1 (первый красный шар) и вероятность того, что ящик 1 — белый шар.Делится на следующие этапы:
1. ПройтиМатрица вероятности наблюдениярассчитать первыйнаблюдение за даннымииз разныхгосударствофорвардная вероятность .
существуетНа данный момент вероятность красного шара равна
box at | probability |
---|---|
1 (вероятность того, что ящик 1 — красный шар) | |
2 (вероятность того, что ящик 2 — красный шар) | |
3 (вероятность того, что ящик 3 — красный шар) |
2. Пройтиматрица вероятности переходаВычислить для создания следующегогосударствовероятность, то черезМатрица вероятности наблюденияВычислить для создания следующегоНаблюденияВероятность
существуетНа данный момент вероятность переложить 3 ящика в разные ящики и вероятность образования белого шара показаны в таблице ниже.
box at | trans_probability |
---|---|
1 (вероятность перехода трех ящиков с красными шарами в ящик 1) | |
2 (вероятность перехода красного шара из трех ящиков в ящик 2) | |
3 (вероятность перехода красных шаров из трех ящиков в ящик 3) |
box at | probability |
---|---|
1 (1 коробка вероятность возникновения красного шара) | |
2 (ящик 2 дает вероятность выпадения красного шара) | |
3 (вероятность того, что в ящике 3 выпадет красный шар) |
3. Повторяйте шаг 2, покапоследовательность наблюденияпрекращение.
4. Добавьте окончательные значения вероятности.
Полный процесс выглядит следующим образом:
4.1.2 Обратные вычисления
Рассмотрим сзади наперед:
от имениНа данный момент при условии, что ящик 1 — красный шар, последовательность наблюдений такова: вероятность белого, красного 2 (второго красного шара).
1. Последнийнаблюдение за даннымиЭто было определено, поэтому инициализируйте тригосударствоВероятность равна 1.
существуетвремя
box at | probability |
---|---|
1 (вероятность того, что последовательность наблюдений равна [null] при условии, что ящик 1 — красный шар) | |
2 (вероятность того, что последовательность наблюдений равна [null] при условии, что ящик 2 — красный шар) | |
3 (вероятность того, что последовательность наблюдений равна [null] при условии, что ящик 3 — красный шар) |
пройти черезМатрица вероятности наблюдениярассчитатьУкажите данные наблюденияВероятность (еще один способ понять таблицу выше)
box at | color_probability |
---|---|
1 (выбрать шар из ящика 1, вероятность того, что последовательность наблюдений пуста, то есть вероятность того, что выбран красный шар) | |
2 (выбрать шар из ящика 2, вероятность того, что последовательность наблюдений пуста, то есть вероятность того, что выбран красный шар) | |
3 (выберите шар из ящика 3, вероятность того, что последовательность наблюдений пуста, то есть вероятность того, что выбран красный шар) |
2. Пересчитать перевод на другойгосударствоВероятность .
существуетвремя
box at | probability |
---|---|
1 (вМоменты для поля 1 необходимо учитыватьВероятность того, что ящик 1 переместится в ящики 1, 2, 3 в данный момент) | |
2 (вМоменты для вставки 2 необходимо учитыватьВероятность перехода бокса 2 в бокс 1,2,3) | |
3 (вМоменты для вставки 3 необходимо учитыватьВероятность того, что ящик 3 переместится в ящики 1, 2, 3 в данный момент) |
Смысл суммы вероятностей каждого ящика: при условии, что ящик представляет собой белый шар, вероятность того, что последовательность наблюдений будет [красный шар]
3. Повторяйте шаг 2, пока последовательность наблюдений не будет прервана.
4. Последний шаг — заменить вероятность перехода начальной вероятностью и просуммировать ее.
4.1.3 Отношения между вероятностями априорных и апостериорных членов
Заданные параметры моделии наблюдения, сейчасв состоянииВероятность записывается как:
4.2 Алгоритмы обучения
В алгоритме обучения он делится наконтролируемое обучениеинеконтролируемое обучение.
4.2.1 Контролируемое обучение
Базовые концепты
Когда тренировочный набор включаетпоследовательность наблюденияипоследовательность состояний, для оценки значения параметра можно использовать метод обучения с учителем.
-
Оценка матрицы перехода состояний:
-
Оценка матрицы вероятности наблюдения:
-
Оценка вероятности начального состояния:
конкретный пример
Пример настроения и погоды Боба в «Формальном определении скрытой марковской модели» в «3.1 Основные понятия» раздела 3 «Научный вывод скрытой марковской модели» в этой статье.
4.2.2 Обучение без учителя
Когда обучающая выборка содержит толькопоследовательность наблюдения, цель состоит в том, чтобы научиться оценивать марковские параметры (матрицу переходов состояний, матрицу вероятностей наблюдения и начальную вероятность) В этот момент последовательность наблюдений рассматривается как данные наблюдения., последовательность состояний рассматривается как скрытая переменнаяс помощьюЭМ модельможно решить.
4.3 Алгоритмы прогнозирования
4.3.1 Алгоритм Витерби
Конкретные примеры см. в разделе 2.3 этой статьи: Алгоритм Витерби.
5. Ссылки
- «Статистические методы обучения»
- Справочный адрес