⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 log_ptilde1.m

📁 matlab环境下
💻 M
字号:
function log_like = log_ptilde1(y,y_sq,src);% log_like = log_ptilde1(y,y_sq,src)%% Calculates the pseudo log-likelihood of y under src. Used% in 'mixmodel1d' and 'vbica1'.%% Called from 'gammas.m', 'hmmdecode_ica', 'FB'. %%% -----------% Input% -----------%% Necessary parameters%% y         mixmodel1d: The observation data (sent as mxN)%           vbICA: Expectation of source signals (mxN) % y_sq      mixmodel1d: y.^2 (sent as mxN)%           vbICA: Expectation of (source signal.^2) (mxN)% src       Current model%%%% -----------% Output% -----------%% log_like  Calculated pseudo log-likelihood%%% --------------------------------------------------------------%% Original code by Rizwan Choudrey % Thesis: Variational Methods for Bayesian Independent%         Component Analysis (www.robots.ox.ac.uk/~parg)  [m,N] = size(y);littlebit = eps;b=src.posts.b;c=src.posts.c;mean_beta=(b.*c)';if m~=length(mean_beta)  m = length(mean_beta);  y = repmat(y,m,1);  y_sq = repmat(y_sq,m,1);endsrc_type = src.type;if length(src_type) == 2  src_type = src_type(2);endpdf_fact = 0.5;mm_sq = zeros(m,1);tgauss_fact = zeros(m,N);%Adjust for source typeswitch src_type case 'g'  data_term = y_sq;  mm = src.centres';  tau = src.posts.tau';  mm_sq = mm.^2+1./tau; case 't'  data_term = y_sq;  mm = mm_sq; case 'e'  data_term = y;  pdf_fact = 1;  mm=mm_sq;endfor s=1:m,   log_tilde_beta(s)=digamma(c(s))+log(b(s)+eps);enddata_bit = -pdf_fact*repmat(mean_beta,1,N).*(data_term+repmat(mm_sq, ...						  1,N)-2*repmat(mm,1,N).*y);log_like = pdf_fact*repmat(log_tilde_beta',1,N) + data_bit;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -