Алгоритм Баума — Велша

Материал из testwiki
Перейти к навигации Перейти к поиску

Шаблон:Переработать Алгоритм Баума — Велша используется в информатике и статистике для нахождения неизвестных параметров скрытой марковской модели (HMM). Он использует алгоритм прямого-обратного хода и является частным случаем обобщённого EM-алгоритма.

Алгоритм Баума — Велша оценки скрытой модели Маркова

Скрытая модель Маркова — это вероятностная модель множества случайных переменных {Y1,…,Yt,Q1,…,Qt}. Переменные Yt — известные дискретные наблюдения, а Qt — «скрытые» дискретные величины. В рамках скрытой модели Маркова есть два независимых утверждения, обеспечивающих сходимость данного алгоритма:

  1. t-я скрытая переменная при известной (t−1)-ой переменной независима от всех предыдущих (t−1) переменных, то есть P(Qt∣Qt−1,Yt−1,…,Q1,Y1)=P(Qt∣Qt−1);
  2. t-е известное наблюдение зависит только от t-го состояния, то есть не зависит от времени, P(Yt∣Qt,Qt−1,Yt−1,…,Q1,Y1)=P(Yt∣Qt).

Далее будет предложен алгоритм «предположений и максимизаций» для поиска максимальной вероятностной оценки параметров скрытой модели Маркова при заданном наборе наблюдений. Этот алгоритм также известен как алгоритм Баума — Велша.

Qt — это дискретная случайная переменная, принимающая одно из N значений (1…N). Будем полагать, что данная модель Маркова, определённая как P(Qt∣Qt−1), однородна по времени, то есть независима от t. Тогда можно задать P(Qt∣Qt−1) как независящую от времени стохастическую матрицу перемещений A={aij}=p(Qt=j∣Qt−1=i). Вероятности состояний в момент времени t=1 определяется начальным распределением πi=P(Q1=i).

Будем считать, что мы в состоянии j в момент времени t, если Qt=j. Последовательность состояний выражается как q=(q1,…,qT), где qt∈{1…N} является состоянием в момент t.

Наблюдение Yt в момент времени t может иметь одно из L возможных значений, yt∈{o1,…,oL}. Вероятность заданного вектора наблюдений в момент времени t для состояния j определяется как bj(oi)=P(Yt=oi∣Qt=j) (B={bij} — это матрица L на N). Последовательность наблюдений y выражается как y=(y1,…,yT).

Следовательно, мы можем описать скрытую модель Маркова с помощью λ=(A,B,π). При заданном векторе наблюдений y алгоритм Баума — Велша находит λ∗=argmaxλP(y∣λ). λ∗ максимизирует вероятность наблюдений y.

Алгоритм

Исходные данные: λ=(A,B,π) со случайными начальными условиями.

Алгоритм итеративно обновляет параметр λ до схождения в одной точке.

Прямая процедура

Обозначим через αi(t)=p(Y1=y1,…,Yt=yt,Qt=i∣λ) вероятность появления заданной последовательности y1,…,yt для состояния i в момент времени t.

αi(t) можно вычислить рекурсивно:

  1. αi(1)=πi⋅bi(y1);
  2. αj(t+1)=bj(yt+1)∑i=1Nαi(t)⋅aij.

Обратная процедура

Данная процедура позволяет вычислить βi(t)=p(Yt+1=yt+1,…,YT=yT∣Qt=i,λ) вероятность конечной заданной последовательности yt+1,…,yT при условии, что мы начали из исходного состояния i, в момент времени t.

Можно вычислить βi(t):

  1. βi(T)=p(YT=yT∣Qt=i,λ)=1;
  2. βi(t)=∑j=1Nβj(t+1)aijbj(yt+1).

Используя α и β можно вычислить следующие значения:

  • γi(t)≡p(Qt=i∣y,λ)=αi(t)βi(t)∑j=1Nαj(t)βj(t),
  • ξij(t)≡p(Qt=i,Qt+1=j∣y,λ)=αi(t)aijβj(t+1)bj(yt+1)∑i=1N∑j=1Nαi(t)aijβj(t+1)bj(yt+1).

Имея γ и ξ, можно вычислить новые значения параметров модели:

  • π¯i=γi(1),
  • a¯ij=∑t=1T−1ξij(t)∑t=1T−1γi(t),
  • b¯i(ok)=∑t=1Tδyt,okγi(t)∑t=1Tγi(t).,

где

δyt,ok={1если yt=ok,0иначе

индикативная функция, и bi∗(ok) ожидаемое количество значений наблюдаемой величины, равных ok в состоянии i к общему количеству состояний i.

Используя новые значения A, B и π, итерации продолжаются до схождения.

См. также

Источники