hmmtrain

Скрытый параметр модели Маркова оценивает от эмиссии

Синтаксис

[ESTTR,ESTEMIT] = hmmtrain(seq,TRGUESS,EMITGUESS)
hmmtrain(...,'Algorithm',algorithm)
hmmtrain(...,'Symbols',SYMBOLS)
hmmtrain(...,'Tolerance',tol)
hmmtrain(...,'Maxiterations',maxiter)
hmmtrain(...,'Verbose',true)
hmmtrain(...,'Pseudoemissions',PSEUDOE)
hmmtrain(...,'Pseudotransitions',PSEUDOTR)

Описание

[ESTTR,ESTEMIT] = hmmtrain(seq,TRGUESS,EMITGUESS) оценивает вероятности перехода и эмиссии для скрытой модели Маркова использование Baum-валлийского алгоритма. seq может быть вектором - строкой, содержащим одну последовательность, матрицу с одной строкой на последовательность или массив ячеек с каждой ячейкой, содержащей последовательность. TRGUESS и EMITGUESS являются первоначальными оценками матриц вероятности перехода и эмиссии. TRGUESS(i,j) является предполагаемой вероятностью перехода от i состояния, чтобы утвердить j. EMITGUESS(i,k) является предполагаемой вероятностью, что символ k испускается от i состояния.

hmmtrain(...,'Algorithm',algorithm) задает учебный алгоритм. algorithm может быть или 'BaumWelch' или 'Viterbi'. Алгоритмом по умолчанию является 'BaumWelch'.

hmmtrain(...,'Symbols',SYMBOLS) задает символы, которые испускаются. SYMBOLS может быть числовым массивом, массивом строк или массивом ячеек имен символов. Символы по умолчанию являются целыми числами 1 через N, где N является количеством возможной эмиссии.

hmmtrain(...,'Tolerance',tol) задает допуск, используемый для тестирования сходимости итеративного процесса оценки. Допуском по умолчанию является 1e-4.

hmmtrain(...,'Maxiterations',maxiter) задает максимальное количество итераций для процесса оценки. Максимумом по умолчанию является 100.

hmmtrain(...,'Verbose',true) возвращает состояние алгоритма в каждой итерации.

hmmtrain(...,'Pseudoemissions',PSEUDOE) задает значения эмиссии псевдоколичества для алгоритма обучения Viterbi. Используйте этот аргумент, чтобы избежать нулевых оценок вероятности для эмиссии с очень низкой вероятностью, которая не может быть представлена в демонстрационной последовательности. PSEUDOE должен быть матрицей размера m-by-n, где m является количеством состояний в скрытой модели Маркова, и n является количеством возможной эмиссии. Если ik эмиссия не происходит в seq, можно установить PSEUDOE(i,k) быть положительным числом, представляющим оценку ожидаемого количества такой эмиссии в последовательности seq.

hmmtrain(...,'Pseudotransitions',PSEUDOTR) задает значения перехода псевдоколичества для алгоритма обучения Viterbi. Используйте этот аргумент, чтобы избежать нулевых оценок вероятности для переходов с очень низкой вероятностью, которая не может быть представлена в демонстрационной последовательности. PSEUDOTR должен быть матрицей размера m-by-m, где m является количеством состояний в скрытой модели Маркова. Если ij переход не происходит в states, можно установить PSEUDOTR(i,j) быть положительным числом, представляющим оценку ожидаемого количества таких переходов в последовательности states.

Если вы знаете, что состояния, соответствующие последовательностям, используют hmmestimate, чтобы оценить параметры модели.

Допуск

Входной параметр 'tolerance' управляет, сколько шагов алгоритм hmmtrain выполняется, прежде чем функция дает ответ. Алгоритм останавливается, когда все следующие три количества являются меньше, чем значение, которое вы задаете для tolerance:

  • Логарифмическая вероятность, что входная последовательность seq сгенерирована в настоящее время ориентировочными стоимостями матриц перехода и эмиссии

  • Изменение в норме матрицы перехода, нормированной размером матрицы

  • Изменение в норме матрицы эмиссии, нормированной размером матрицы

Значением по умолчанию 'tolerance' является 1e-6. Увеличение допуска сокращает число шагов, которые выполняет алгоритм hmmtrain, прежде чем это остановится.

maxiterations

Максимальное количество итераций, 'maxiterations', управляет максимальным количеством шагов, которые выполняет алгоритм, прежде чем это остановится. Если алгоритм выполняет итерации maxiter прежде, чем достигнуть заданного допуска, алгоритм останавливается, и функция возвращает предупреждение. Если это происходит, можно увеличить значение 'maxiterations', чтобы заставить алгоритм достигнуть желаемого допуска перед завершением.

Примеры

trans = [0.95,0.05;
      0.10,0.90];
emis = [1/6, 1/6, 1/6, 1/6, 1/6, 1/6;
   1/10, 1/10, 1/10, 1/10, 1/10, 1/2];

seq1 = hmmgenerate(100,trans,emis);
seq2 = hmmgenerate(200,trans,emis);
seqs = {seq1,seq2};
[estTR,estE] = hmmtrain(seqs,trans,emis);

Ссылки

[1] Durbin, R., С. Эдди, А. Крог и Г. Мичисон. Биологический анализ последовательности. Кембридж, Великобритания: Издательство Кембриджского университета, 1998.

Смотрите также

| | |

Представлено до R2006a