HMM的matlab程序


使用matalab实现HMM训练,已经验证正确性
资源截图
代码片段和文件信息
function [alpha beta gamma loglik xi_summed gamma2] = fwdback(init_state_distrib ...
   transmat obslik varargin)
% FWDBACK Compute the posterior probs. in an HMM using the forwards backwards algo.
%
% [alpha beta gamma loglik xi gamma2] = fwdback(init_state_distrib transmat obslik ...)
%
% Notation:
% Y(t) = observation Q(t) = hidden state M(t) = mixture variable (for MOG outputs)
% A(t) = discrete input (action) (for POMDP models)
%
% INPUT:
% init_state_distrib(i) = Pr(Q(1) = i)
% transmat(ij) = Pr(Q(t) = j | Q(t-1)=i)
%  or transmat{a}(ij) = Pr(Q(t) = j | Q(t-1)=i A(t-1)=a) if there are discrete inputs
% obslik(it) = Pr(Y(t)| Q(t)=i)
%   (Compute obslik using eval_pdf_xxx on your data sequence first.)
%
% Optional parameters may be passed as ‘param_name‘ param_value pairs.
% Parameter names are shown below; default values in [] - if none argument is mandatory.
%
% For HMMs with MOG outputs: if you want to compute gamma2 you must specify
% ‘obslik2‘ - obslik(ijt) = Pr(Y(t)| Q(t)=iM(t)=j)  []
% ‘mixmat‘ - mixmat(ij) = Pr(M(t) = j | Q(t)=i)  []
%  or mixmat{t}(mq) if not stationary
%
% For HMMs with discrete inputs:
% ‘act‘ - act(t) = action performed at step t
%
% Optional arguments:
% ‘fwd_only‘ - if 1 only do a forwards pass and set beta=[] gamma2=[]  [0]
% ‘scaled‘ - if 1  normalize alphas and betas to prevent underflow [1]
% ‘maximize‘ - if 1 use max-product instead of sum-product [0]
%
% OUTPUTS:
% alpha(it) = p(Q(t)=i | y(1:t)) (or p(Q(t)=i y(1:t)) if scaled=0)
% beta(it) = p(y(t+1:T) | Q(t)=i)*p(y(t+1:T)|y(1:t)) (or p(y(t+1:T) | Q(t)=i) if scaled=0)
% gamma(it) = p(Q(t)=i | y(1:T))
% loglik = log p(y(1:T))
% xi(ijt-1)  = p(Q(t-1)=i Q(t)=j | y(1:T))  - NO LONGER COMPUTED
% xi_summed(ij) = sum_{t=}^{T-1} xi(ijt)  - changed made by Herbert Jaeger
% gamma2(jkt) = p(Q(t)=j M(t)=k | y(1:T)) (only for MOG  outputs)
%
% If fwd_only = 1 these become
% alpha(it) = p(Q(t)=i | y(1:t))
% beta = []
% gamma(it) = p(Q(t)=i | y(1:t))
% xi(ijt-1)  = p(Q(t-1)=i Q(t)=j | y(1:t))
% gamma2 = []
%
% Note: we only compute xi if it is requested as a return argument since it can be very large.
% Similarly we only compute gamma2 on request (and if using MOG outputs).
%
% Examples:
%
% [alpha beta gamma loglik] = fwdback(pi A multinomial_prob(sequence B));
%
% [B B2] = mixgauss_prob(data mu Sigma mixmat);
% [alpha beta gamma loglik xi gamma2] = fwdback(pi A B ‘obslik2‘ B2 ‘mixmat‘ mixmat);

if 0 % nargout >= 5
  warning(‘this now returns sum_t xi(ijt) not xi(ijt)‘)
end

if nargout >= 5 compute_xi = 1; else compute_xi = 0; end
if nargout >= 6 compute_gamma2 = 1; else compute_gamma2 = 0; end

[obslik2 mixmat fwd_only scaled act maximize compute_xi compute_gamma2] = ...
   process_options(varargin ...
       ‘obslik2‘ [] ‘mixmat‘ [] ...
       ‘fwd_only‘ 0 ‘scaled‘ 1 ‘act‘ [] ‘maximize‘ 0 ...
                   ‘compute_xi‘ compute_xi ‘compute_gamma2‘ compute_gamma

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6225  2013-06-14 08:55  HMM(matlab)未改Hidden Markov Model (HMM) Toolbox for Matlab.mht

     文件        408  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0500.mat

     文件        408  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0501.mat

     文件        407  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0502.mat

     文件        409  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0503.mat

     文件        408  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0504.mat

     文件        410  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0505.mat

     文件        410  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0506.mat

     文件        409  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0507.mat

     文件        406  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0508.mat

     文件        407  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0509.mat

     文件        408  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0510.mat

     文件        411  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0511.mat

     文件        406  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0512.mat

     文件        404  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0513.mat

     文件        405  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0514.mat

     文件        404  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0515.mat

     文件        406  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0516.mat

     文件        407  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0517.mat

     文件        406  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0518.mat

     文件        405  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0519.mat

     文件        404  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0520.mat

     文件        402  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0521.mat

     文件        402  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0522.mat

     文件        401  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0523.mat

     文件        401  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0524.mat

     文件        402  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0525.mat

     文件        400  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0526.mat

     文件        397  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0527.mat

     文件        400  2013-06-14 08:55  HMM(matlab)未改HMMalleval_0528.mat

............此处省略991个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)