Return prior hyper-parameter using fMRI activity pattern. [syntax] [a0,Ta0] = vb_set_vb_prior(prior_parm) [input] prior_parm: <<struct>> Prior specification parameters. ---fields of prior_parm .ix : <<int vector>> .a0 : <<float vector>> Normally equal to 1 [1]. .a0_act : <<float vector>> Magnification parameter [1]. .Ta0 : <<float vector>> gamma0 at minimum fMRI signal [2]. .Ta0_act: <<float vector>> gamma0 at maximum fMRI signal [2]. .v0 : <<float>> Noise-normalized current variance estimated by minimum norm estimation. --- Model : <<struct>> <optional> Model parameter set. [output] a0 : <<float vector>> Noise-normalized current variance, alpha0^-1 [2]. Ta0: <<float vector>> Confidence parameter, gamma0 [2]. [references] [1] Yoshioka et al., 2008. [2] Sato et al., 2004. [history] 2008-06-27 Taku Yoshioka 2010-09-16 Taku Yoshioka Bug fix (line 41): It doesn't have any effect if previously obtained 'Model' is not used to set prior parameters. Copyright (C) 2011, ATR All Rights Reserved. License : New BSD License(see VBMEG_LICENSE.txt)
0001 function [a0,Ta0] = vb_set_vb_prior(prior_parm) 0002 % Return prior hyper-parameter using fMRI activity pattern. 0003 % 0004 % [syntax] 0005 % [a0,Ta0] = vb_set_vb_prior(prior_parm) 0006 % 0007 % [input] 0008 % prior_parm: <<struct>> Prior specification parameters. 0009 % ---fields of prior_parm 0010 % .ix : <<int vector>> 0011 % .a0 : <<float vector>> Normally equal to 1 [1]. 0012 % .a0_act : <<float vector>> Magnification parameter [1]. 0013 % .Ta0 : <<float vector>> gamma0 at minimum fMRI signal [2]. 0014 % .Ta0_act: <<float vector>> gamma0 at maximum fMRI signal [2]. 0015 % .v0 : <<float>> Noise-normalized current variance estimated by 0016 % minimum norm estimation. 0017 % --- 0018 % Model : <<struct>> <optional> Model parameter set. 0019 % 0020 % [output] 0021 % a0 : <<float vector>> Noise-normalized current variance, alpha0^-1 0022 % [2]. 0023 % Ta0: <<float vector>> Confidence parameter, gamma0 [2]. 0024 % 0025 % [references] 0026 % [1] Yoshioka et al., 2008. 0027 % [2] Sato et al., 2004. 0028 % 0029 % [history] 0030 % 2008-06-27 Taku Yoshioka 0031 % 2010-09-16 Taku Yoshioka 0032 % Bug fix (line 41): It doesn't have any effect if previously obtained 0033 % 'Model' is not used to set prior parameters. 0034 % 0035 % Copyright (C) 2011, ATR All Rights Reserved. 0036 % License : New BSD License(see VBMEG_LICENSE.txt) 0037 0038 % If Model is given, Ta0 is calculated using 'Model.a' 0039 if isfield(prior_parm,'Model') & ~isempty(prior_parm.Model), 0040 disp('Set prior by Wiener estimation result') 0041 0042 a0 = Model.a; 0043 a0 = sum(a0,2)/size(a0,2); 0044 Ta0 = Ta0 + (Ta0_act-Ta0)*(a0./max(a0)); 0045 else % If Model is not given, a0 & Ta0 is calculated using fMRI 0046 disp('Set prior fMRI activity pattern'); 0047 0048 % prior parameters 0049 v0 = prior_parm.v0; 0050 a0 = prior_parm.a0*v0; 0051 a0_act = prior_parm.a0_act*v0; 0052 Ta0 = mean(prior_parm.Ta0); 0053 Ta0_act = mean(prior_parm.Ta0_act); 0054 act = prior_parm.act; 0055 0056 % fMRI information 0057 xxP = act.xxP/max(act.xxP); 0058 xxP = xxP(prior_parm.ix); 0059 0060 a0 = a0 + (a0_act-a0)*(xxP.^2); % square 0061 Ta0 = Ta0 + (Ta0_act-Ta0)*(xxP); % linear 0062 %Ta0tmp = Ta0_act*ones(Nvact,1); % Constant 0063 end; 0064 0065 return;