?? online1.m
字號:
% Check that online inference gives same results as filtering for various algorithmsN = 3;Q = 2;ss = N*2;rand('state', 0);randn('state', 0);obs_size = 1;discrete_obs = 0;bnet = mk_chmm(N, Q, obs_size, discrete_obs);ns = bnet.node_sizes_slice;engine = {};engine{end+1} = hmm_inf_engine(bnet);E = length(engine);onodes = (1:N)+N;T = 4;ev = cell(ss,T);ev(onodes,:) = num2cell(randn(N, T));filter = 1;loglik2 = zeros(1,E);for e=1:E [engine2{e}, loglik2(e)] = enter_evidence(engine{e}, ev, 'filter', filter);endloglik = zeros(1,E);marg1 = cell(E,N,T);for e=1:E ll = zeros(1,T); engine{e} = dbn_init_bel(engine{e}); for t=1:T [engine{e}, ll(t)] = dbn_update_bel(engine{e}, ev(:,t), t); for i=1:N marg1{e,i,t} = dbn_marginal_from_bel(engine{e}, i); end end loglik1(e) = sum(ll);endassert(approxeq(loglik1, loglik2))a = zeros(E,N,T);for e=1:E for t=1:T for i=1:N marg2{e,i,t} = marginal_nodes(engine2{e}, i, t); a(e,i,t) = (approxeq(marg2{e,i,t}.T(:), marg1{e,i,t}.T(:))); end endendassert(all(a(:)==1))
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -