6/13/2008

Q&A in E_Coli code ---Continue

Ok, but in the script runS_post_as_prior_freq.m you get the posterior means from the previous network and set the hyprparameter precisions to 1 (why do you do this?)

PriMu.alpha = 1*ones(k,1); % precision vector, each element for a COL of A
PriMu.beta = 1*ones(pinp,1); % precision vector, each element for a COL of B
PriMu.gamma = 1*ones(k,1); % pseudo-precision vector, each element for a COL of C
PriMu.delta = 1*ones(pinp,1); ; % pseudo-precision vector, each element for a COL of D

==========================================

That's the default initial values for hyperpara, starting point for vbssm model. Tthis could be found at line 86 of vssminpn.m ( vbssm3.2 )


But then you retrain the model using the original data and these priors:

net = vssminpn(yn,inpn,k,its,0,0,PriMu,[10 20 30]);

But you didn't try giving the previous network as an input ? This should be possible, according to Matt README file:

i.e. net = vssminpn(yn,inpn,k,its,0,0,PriMu,[10 20 30],net);

===========================================

Yes, it's possible. I cannot remember why not use the previous network as input. Is it due to we have incorporated the previous posterior as prior?

In this case I wonder if we still need to specify the priors which do not change in PriMu{} as you have done in this script? Will the prior added in PriMu{} overwrite the existing posterior mean in net.exp.D ? (which is what we would want)

========================================

PriMu{} is changed by

muD = net.exp.D;
tmp = muD(:,2:end)';

for j = 1:length(from_idx)

tmp(from_idx(j),to_idx(j)) = double(conn_attr(j))*tmp(from_idx(j),to_idx(j))*mu;
end

muD(:,2:end) = tmp';
PriMu.muD = muD;


No comments: