dirichlet_kl.m
来自「利用HMM的方法的三种语音识别算法」· M 代码 · 共 40 行
M
40 行
function [D] = dirichlet_kl(alpha_q,alpha_p)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [D] = dirichlet_kl (alpha_q,alpha_p)%% computes the divergence % /% D(q||p) = | q(x)*log(q(x)/p(x)) dx% /% between two k-dimensional Dirichlet propability densities, where the pdf% of a dirichlet is given by % % Gamma(sum_{i=1}^k alpha_i) alpha_1-1 alpha_k-1 % p(x)= --------------------------- x_1 .... x_k% prod_{i=1}^k Gamma(alpha_i)% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if nargin<2, error('Incorrect number of input arguements');end;if length(alpha_q)~=length(alpha_p), error('Distributions must have equal dimensions');end;K=length(alpha_q);aqtot=sum(alpha_q);aptot=sum(alpha_p);Psiqtot=digamma(aqtot);D=gammaln(aqtot)-gammaln(aptot);for k=1:K, D=D+gammaln(alpha_p(k))-gammaln(alpha_q(k))+... +(alpha_q(k)-alpha_p(k))*(digamma(alpha_q(k))-Psiqtot);end;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?