亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nlfa_iter.m

?? 非線型因素分析matlab仿真程序包
?? M
字號:
function [sources, net, params, status, fs] = ...    nlfa_iter(data, sources, net, params, status)% NLFA_ITER  Perform the NLFA iteration% Copyright (C) 1999-2004 Antti Honkela, Harri Valpola,% and Xavier Giannakopoulos.%% This package comes with ABSOLUTELY NO WARRANTY; for details% see License.txt in the program package.  This is free software,% and you are welcome to redistribute it under certain conditions;% see License.txt for details.nsampl = size(data, 2);%nlfa_batches = 1:status.batch_size:nsampl;%%nlfa_batch = [nlfa_batches', [nlfa_batches(2:end)-1, nsampl]'];iters_left = status.iters;if ~strcmp(status.updatealg, 'old'),  if isfield(status, 'oldgrads') && status.cgreset ~= -1,    oldgrads = status.oldgrads;  else    fprintf('Resetting CG\n');    oldgrads.net = netgrad_zeros(net);    oldgrads.s = zeros(size(sources));    oldgrads.norm = 0;  endendwhile iters_left > 0  dcp_dnetm = netgrad_zeros(net);  dcp_dnetv = netgrad_zeros(net);  fs = probdist(zeros(size(data)), ones(size(data)));  newkls = kl_static(net, params);    %  for k = 1:size(nlfa_batch, 1),  %curbatch = nlfa_batch(k,1):nlfa_batch(k,2);  curbatch = 1:nsampl;    % Do feedforward calculations  x = feedfw( sources(:, curbatch) , net, status.approximation);  fs(:, curbatch) = probdist(x{4}.e, x{4}.var);  % Calculate and possibly display current value of the cost function  newkls = newkls + kl_batch(fs(:, curbatch), sources(:, curbatch), ...			     data(:, curbatch), params);      %if k == size(nlfa_batch, 1)  fprintf('Iteration #%d: %f\n', size(status.kls, 2), newkls);  if isnan(newkls),    iters_left = 0;    %if size(nlfa_batch, 1) == 1,    fprintf('Cost is NaN, bailing out...\n');    return    %end  end  if (size(status.kls, 2) > 400 && ...      ((min(diff(status.kls(end-10:end))) > 0) || ...       (min(diff(status.kls(end-200:end))) > -status.epsilon))),    fprintf('The iteration appears to have converged, bailing out...\n');    iters_left = 0;  end    status.kls = [status.kls newkls];  status.cputime = [status.cputime cputime];  %end  % Calculate partial derivatives for parameters to adapt  [dcp_dsm, dcp_dsv, newdcp_dnetm, newdcp_dnetv] =...      feedback(x, net, sources(:, curbatch), data(:, curbatch), ...	       params.noise, status);  [newdcp_dsm, newdcp_dsv] = ...      feedback_srcpriors(sources(:, curbatch), params.src);  dcp_dsm = dcp_dsm + newdcp_dsm;  dcp_dsv = dcp_dsv + newdcp_dsv;  dcp_dnetm = sum_structs(dcp_dnetm, newdcp_dnetm);  dcp_dnetv = sum_structs(dcp_dnetv, newdcp_dnetv);  [newdcp_dnetm, newdcp_dnetv] = ...      feedback_netpriors(net, params.net, params.hyper.net);  dcp_dnetm = sum_structs(dcp_dnetm, newdcp_dnetm);  dcp_dnetv = sum_structs(dcp_dnetv, newdcp_dnetv);  if strcmp(status.updatealg, 'old'),    % Get new values for sources and alphas if appropriate    if max([status.updatesrcs, status.updatesrcvars]) >= 0      sources = probdist_alpha(sources);      newsources = ...          updatesources(sources(:, curbatch), dcp_dsm, dcp_dsv, x{4}, ...                        params.src, params.noise);      if status.updatesrcs < 0        sources = ...            probdist_alpha(sources.e(:, curbatch), newsources.var, ...                           sources.malpha(:, curbatch), newsources.valpha, ...                           sources.msign(:, curbatch), newsources.vsign);      else        sources = newsources;      end    end    if status.updatenet >= 0      net = updatenetwork(net, dcp_dnetm, dcp_dnetv);    end  else % new updatealg    [sources, net, oldgrads, status] = update_everything(...	sources, net, dcp_dsm, dcp_dsv, x{4}, params, dcp_dnetm, dcp_dnetv, ...	data, newkls, status, oldgrads);      if (status.cgreset > 0) && (mod(length(status.kls), status.cgreset) == 0),      fprintf('Resetting CG\n');      oldgrads.net = netgrad_zeros(net);      oldgrads.s = zeros(size(sources));      oldgrads.norm = 0;    end  end % updatealg    if status.updatesrcs < 0    status.updatesrcs = status.updatesrcs + 1;    if (status.updatesrcs == 0) && (~strcmp(status.updatealg, 'old')),      fprintf('Resetting CG\n');      oldgrads.net = netgrad_zeros(net);      oldgrads.s = zeros(size(sources));      oldgrads.norm = 0;    end  end  if status.updatesrcvars < 0    status.updatesrcvars = status.updatesrcvars + 1;  end  if status.updatenet < 0    status.updatenet = status.updatenet + 1;  end  % Update estimates for different parameters if appropriate  if status.updateparams < 0    status.updateparams = status.updateparams + 1;    if (status.updateparams == 0) && (~strcmp(status.updatealg, 'old')),      fprintf('Resetting CG\n');      oldgrads.net = netgrad_zeros(net);      oldgrads.s = zeros(size(sources));      oldgrads.norm = 0;    end  else    params.noise = estimatevars(probdist(fs.e-data, fs.var), ...				params.hyper.noise, params.noise);    params.src   = estimatevars(sources, params.hyper.src, params.src);    params.net.w2var = estimatevars(net.w2, params.hyper.net.w2var, ...				    params.net.w2var, 1);        [params.hyper.net.w2var.mean, params.hyper.net.w2var.var] = ...	estimatemeanvars(params.net.w2var, params.prior.net.w2var.mean, ...		       params.prior.net.w2var.var, params.hyper.net.w2var.var);    [params.hyper.noise.mean, params.hyper.noise.var] = ...	estimatemeanvars(params.noise, params.prior.noise.mean, ...		       params.prior.noise.var, params.hyper.noise.var, 1);    [params.hyper.net.b1.mean, params.hyper.net.b1.var] = ...	estimatemeanvars(net.b1, params.prior.net.b1.mean, ...		       params.prior.net.b1.var, params.hyper.net.b1.var, 1);    [params.hyper.net.b2.mean, params.hyper.net.b2.var] = ...	estimatemeanvars(net.b2, params.prior.net.b2.mean, ...		       params.prior.net.b2.var, params.hyper.net.b2.var, 1);    [params.hyper.src.mean, params.hyper.src.var] = ...	estimatemeanvars(params.src, params.prior.src.mean, ...		       params.prior.src.var, params.hyper.src.var, 1);  end  if strcmp(status.updatealg, 'old'),    if (size(sources, 1) > 1),      [sources, net, params] = ...	  scalesources(sources, net, params);    end  end    iters_left = iters_left - 1;endif ~strcmp(status.updatealg, 'old'),  status.oldgrads = oldgrads;endfs = probdist(zeros(size(data)), ones(size(data)));newkls = kl_static(net, params);% Do feedforward calculationscurbatch = 1:nsampl;x = feedfw( sources(:, curbatch) , net, status.approximation);fs(:, curbatch) = probdist(x{4}.e, x{4}.var);newkls = newkls + kl_batch(fs(:, curbatch), sources(:, curbatch), ...			   data(:, curbatch), params);fprintf('Finally after %d iterations: %f\n', size(status.kls, 2), newkls);function [dc_dsm, dc_dsv] = feedback_srcpriors(sources, srcparams)% FEEDBACK_SRCPRIORS Calculate the contribution of source priors%   to the gradients of the cost function with respect to source valuessourcevar = normalvar(srcparams);nsampl = size(sources, 2);temp = sourcevar * ones(1, nsampl);dc_dsm = sources.e ./ temp;dc_dsv = .5 ./ temp;function [dc_dnetm, dc_dnetv] = feedback_netpriors(net, params, hypers)% FEEDBACK_NETPRIORS Calculate the contribution of network priors%   to the gradients of the cost function with respect to network weightsw1var = ones(1, size(net.w1, 2));w2var = normalvar(params.w2var);[dc_dnetm.w2, dc_dnetv.w2, dc_dnetm.b2, dc_dnetv.b2] = ...    netgradsprior(net.w2, net.b2, w2var, hypers.b2);[dc_dnetm.w1, dc_dnetv.w1, dc_dnetm.b1, dc_dnetv.b1] = ...    netgradsprior(net.w1, net.b1, w1var, hypers.b1);function [dcp_dwm, dcp_dwv, dcp_dbm, dcp_dbv] = ...    netgradsprior(w, b, wprior, bprior)% NETGRADSPRIOR Calculate the contribution of priors to partial%   derivatives of kldiv with respect to network weightswpvar = repmat(wprior, [size(w, 1) 1]);bpexp = repmat(bprior.mean.e, size(b));bpvar = repmat(normalvar(bprior.var), size(b));dcp_dwm = w.e ./ wpvar;dcp_dwv = .5 ./ wpvar;dcp_dbm = (b.e - bpexp) ./ bpvar;dcp_dbv = .5 ./ bpvar;function grad = netgrad_zeros(net)grad.w2 = zeros(size(net.w2));grad.b2 = zeros(size(net.b2));grad.w1 = zeros(size(net.w1));grad.b1 = zeros(size(net.b1));function s = sum_structs(s1, s2)% SUM_STRUCTS  Add all the fields of two structures togetherf = fieldnames(s1);c1 = struct2cell(s1);c2 = struct2cell(s2);if size(c1) ~= size(c2)  error('sum_structs: Structures must be of same type')endc = cell(size(c1));for k=1:length(c1),  c{k} = c1{k} + c2{k};ends = cell2struct(c, f, 1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费成人小视频| 色综合天天综合狠狠| 粉嫩嫩av羞羞动漫久久久| 国产夫妻精品视频| 一本大道av一区二区在线播放| 欧美日韩精品久久久| 日韩精品一区二区三区老鸭窝| 国产精品视频一二三| 亚洲一区二区三区视频在线| 日本伊人午夜精品| 成人精品小蝌蚪| 56国语精品自产拍在线观看| 国产欧美日韩卡一| 日韩影院免费视频| 96av麻豆蜜桃一区二区| 日韩一区二区三区高清免费看看| 亚洲欧洲成人精品av97| 青娱乐精品视频| 91麻豆国产福利精品| 日韩欧美在线影院| 亚洲激情男女视频| 国产在线不卡视频| 欧美日韩黄色影视| 国产精品理论在线观看| 免费成人小视频| 在线看日韩精品电影| 国产欧美在线观看一区| 男女男精品网站| 欧美亚洲禁片免费| 国产欧美日韩亚州综合| 毛片一区二区三区| 在线欧美小视频| 中文字幕不卡三区| 久久99精品一区二区三区| 日本韩国精品一区二区在线观看| 久久久久久99精品| 奇米影视一区二区三区| 欧美性淫爽ww久久久久无| 国产欧美一区二区三区沐欲| 免费在线观看成人| 欧美性猛交一区二区三区精品| 国产免费观看久久| 精品一区免费av| 欧美理论片在线| 亚洲另类在线视频| 99精品国产一区二区三区不卡| 久久精品夜夜夜夜久久| 麻豆成人av在线| 欧美日韩免费电影| 亚洲精品高清在线| 91在线精品一区二区三区| 国产欧美一区二区精品性色超碰| 精品午夜一区二区三区在线观看| 777久久久精品| 亚洲一二三专区| 欧美性xxxxx极品少妇| 亚洲丝袜制服诱惑| 99久久久精品免费观看国产蜜| 欧美韩国日本不卡| 岛国精品一区二区| 中文字幕乱码亚洲精品一区 | 91久久精品国产91性色tv| 国产精品免费看片| 国产91丝袜在线18| 国产日本欧美一区二区| 国产成人免费视频网站高清观看视频 | 久久蜜桃一区二区| 极品美女销魂一区二区三区| 欧美不卡一二三| 精品一区二区综合| 日韩一级大片在线观看| 久久精品国产精品亚洲红杏| 精品日韩成人av| 国产一区二区在线看| 久久久久国产精品麻豆| 懂色av中文字幕一区二区三区| 国产日本一区二区| 波多野结衣中文一区| 中文字幕一区二区三区色视频 | 亚洲视频在线一区观看| 91免费精品国自产拍在线不卡| 国产精品久久久久久户外露出| 99久久99久久免费精品蜜臀| 亚洲美女免费在线| 精品视频999| 久久国产免费看| 国产女人水真多18毛片18精品视频| 成人性生交大片免费看中文| 国产精品毛片久久久久久久 | 亚洲一区二区三区四区在线观看 | 青青草国产精品97视觉盛宴| 91精品国产综合久久婷婷香蕉| 毛片av一区二区| 日本一区二区三区在线不卡| 91在线一区二区三区| 天堂午夜影视日韩欧美一区二区| 欧美一级高清大全免费观看| 国产一区不卡在线| 亚洲三级在线播放| 欧美精品第1页| 国产制服丝袜一区| 亚洲三级在线观看| 欧美一级欧美一级在线播放| 国产乱国产乱300精品| 日韩美女啊v在线免费观看| 欧美日韩一区二区三区四区五区| 免费一级片91| 国产精品成人一区二区艾草| 欧美日韩国产中文| 国精品**一区二区三区在线蜜桃| 亚洲视频香蕉人妖| 日韩一卡二卡三卡| 99久久99久久综合| 日本中文一区二区三区| 国产欧美日韩激情| 91黄色小视频| 国内外成人在线视频| 亚洲乱码国产乱码精品精可以看| 日韩欧美的一区| 91香蕉视频污| 激情欧美一区二区| 亚洲国产一区二区三区青草影视 | 成人午夜电影久久影院| 亚洲一二三区在线观看| 久久夜色精品国产欧美乱极品| 91色九色蝌蚪| 国产在线一区观看| 一区二区三区在线影院| 久久亚洲精品国产精品紫薇| 欧美日韩免费视频| 国v精品久久久网| 青青草伊人久久| 一区二区三区久久久| 国产午夜精品美女毛片视频| 欧美丝袜自拍制服另类| 成人午夜视频网站| 精品中文字幕一区二区 | 日韩一区二区三区高清免费看看| 99久久综合国产精品| 久久99精品国产91久久来源| 亚洲老司机在线| 国产精品嫩草久久久久| 精品欧美久久久| 欧美日韩国产高清一区二区三区 | 亚洲电影一区二区| 国产精品久久久久影院| 精品国产99国产精品| 欧美日韩亚洲高清一区二区| 99国产精品久久久久久久久久| 精品亚洲国产成人av制服丝袜| 图片区小说区国产精品视频| 亚洲欧美成人一区二区三区| 国产亚洲欧美中文| 欧美一区二区三区在线观看| 在线国产亚洲欧美| 99精品国产视频| 成人免费视频播放| 国产乱一区二区| 国内精品伊人久久久久av影院 | 久久影音资源网| 欧美大尺度电影在线| 欧美日韩国产123区| 色94色欧美sute亚洲线路二| 成人激情动漫在线观看| 国产精品一二三四五| 麻豆成人91精品二区三区| 视频一区中文字幕国产| 亚洲在线观看免费| 一区二区三区欧美| 亚洲欧美一区二区三区久本道91 | 91成人看片片| 91视频免费观看| 91尤物视频在线观看| 99综合电影在线视频| 成人一道本在线| 成人激情视频网站| 成人精品视频网站| 成人午夜在线播放| gogogo免费视频观看亚洲一| 不卡一卡二卡三乱码免费网站 | 伊人色综合久久天天| 亚洲乱码一区二区三区在线观看| 亚洲美女视频在线| 亚洲国产日韩一级| 香蕉影视欧美成人| 免费观看日韩av| 久久成人麻豆午夜电影| 蜜桃视频在线观看一区二区| 久久99久久久久| 国产精品一区二区在线观看网站 | 亚洲视频免费看| 亚洲黄色小视频| 丝袜国产日韩另类美女| 日本中文一区二区三区| 久久成人免费网| 成人网在线免费视频| 日本久久一区二区| 欧美剧情片在线观看| 欧美成人福利视频| 国产色91在线|