• 大小: 1.03MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-12
  • 语言: Matlab
  • 标签: 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)未改\HMMall\eval_0\500.mat

     文件        408  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\501.mat

     文件        407  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\502.mat

     文件        409  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\503.mat

     文件        408  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\504.mat

     文件        410  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\505.mat

     文件        410  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\506.mat

     文件        409  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\507.mat

     文件        406  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\508.mat

     文件        407  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\509.mat

     文件        408  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\510.mat

     文件        411  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\511.mat

     文件        406  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\512.mat

     文件        404  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\513.mat

     文件        405  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\514.mat

     文件        404  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\515.mat

     文件        406  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\516.mat

     文件        407  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\517.mat

     文件        406  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\518.mat

     文件        405  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\519.mat

     文件        404  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\520.mat

     文件        402  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\521.mat

     文件        402  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\522.mat

     文件        401  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\523.mat

     文件        401  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\524.mat

     文件        402  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\525.mat

     文件        400  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\526.mat

     文件        397  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\527.mat

     文件        400  2013-06-14 08:55  HMM(matlab)未改\HMMall\eval_0\528.mat

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

评论

共有 条评论