多谢chaching的回复
我在做HMM模型下的语音识别,用的源码就是matlab扩展编程上面提供的,包含train、viterbi等函数
在训练过程中,有一段程序需要求总和概率
具体的源码为
for loop = 1:3
fprintf('\n第%d遍训练\n\n',loop)
hmm = baum(hmm, samples);
%计算总输出概率
pout(loop)=0;
for k = 1:K
pout(loop) = pout(loop) + viterbi(hmm, samples(k).data);
end
fprintf('总和输出概率(log)=%d\n', pout(loop))
%比较两个HMM的距离
if loop>1
if abs((pout(loop)-pout(loop-1))/pout(loop)) < 5e-6
fprintf('收敛!\n');
return
end
end
end
其中的viterbi就是另外一个函数了
算出来pout全部是NaN