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

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

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

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

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

  1. t-я скрытая переменная при известной (t1)-ой переменной независима от всех предыдущих (t1) переменных, то есть P(QtQt1,Yt1,,Q1,Y1)=P(QtQt1);
  2. t-е известное наблюдение зависит только от t-го состояния, то есть не зависит от времени, P(YtQt,Qt1,Yt1,,Q1,Y1)=P(YtQt).

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

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

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

Наблюдение Yt в момент времени t может иметь одно из L возможных значений, yt{o1,,oL}. Вероятность заданного вектора наблюдений в момент времени t для состояния j определяется как bj(oi)=P(Yt=oiQt=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)=πibi(y1);
  2. αj(t+1)=bj(yt+1)i=1Nαi(t)aij.

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

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

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

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

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

  • γi(t)p(Qt=iy,λ)=αi(t)βi(t)j=1Nαj(t)βj(t),
  • ξij(t)p(Qt=i,Qt+1=jy,λ)=αi(t)aijβj(t+1)bj(yt+1)i=1Nj=1Nαi(t)aijβj(t+1)bj(yt+1).

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

  • π¯i=γi(1),
  • a¯ij=t=1T1ξij(t)t=1T1γ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 и π, итерации продолжаются до схождения.

См. также

Источники