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

📄 average_outputs_snn.m

📁 神经网络的工具箱, 神经网络的工具箱,
💻 M
字号:
function y_av = average_outputs_snn(ym, alpha, errf)%AVERAGE_OUTPUTS_SNN  Weighted output average.%%  Syntax%%   y_av = average_outputs_snn(ym, alpha, errf) %%  Description%%   AVERAGE_OUTPUTS_SNN takes%     ym	- [NL x MU x M] matrix of networks outputs. %     alpha 	- [1 x M] matrix of weighting factors.%     errf 	- string OR [N x 1] cell array of strings of errorfunction(s).%   and returns%     y_av      - [NL x MU] matrix of weighted outputs.%%   (NL = #outputs; MU = #patterns; M = #networks in ensemble)%%   Supported output errorfunctions are:%     - SE_SNN              squared error;%     - RELERR_SNN          relative error;%     - CROSSENTROPY_SNN    cross entropy;%     - CROSSLOGISTIC_SNN   cross logisitc;%     - LOGLIKELIHOOD_SNN   log likelihood;%% See also%%     BALANCE_SNN, SIMFF_AVR_SNN%if (nargin ~= 3)   error('Must have 3 input arguments.');end[N, MU, M] = size(ym);delta = 1e-6;alpha = alpha/(sum(alpha,1));if isstr(errf)   switch (errf)     case {'se_snn'},       y_av = reshape(reshape(ym, N*MU, M) * alpha, N, MU);      case {'qe_snn'},       y_av = reshape(reshape(ym, N*MU, M) * alpha, N, MU);      case {'relerr_snn'},       y_av = reshape(...                   ((reshape(ym, N*MU, M).^2) * alpha)./ ...                   (reshape(ym, N*MU, M) * alpha), ...	           N, MU);     case {'crossentropy_snn'},       y_av = reshape(...                 tanh(atanh(max(min(reshape(ym, N*MU, M), 1-delta),... 		      -1+delta))...                 * alpha), ...		 N, MU);     case {'crosslogistic_snn'},       ym = reshape(max(min(ym, 1-delta), delta), N*MU, M);       y_av = reshape(...                 1./(1 + exp(log((1-ym)./ym) * alpha)), ...                 N, MU);     case {'loglikelihood_snn'},       y_av = reshape(1./((1./reshape(ym, N*MU, M)) * alpha), N, MU);     otherwise,       error(sprintf('No support for output error function %s', errf));   endelseif iscell(errf)       y_av = zeros(N, MU);       for i = 1:N	   switch (errf{i,1})             case {'se_snn'},               y_av(i, :) = (reshape(ym(i,:,:), MU, M) * alpha)';              case {'qe_snn'},               y_av(i, :) = (reshape(ym(i,:,:), MU, M) * alpha)';              case {'relerr_snn'},               y_av(i, :) = ...                    ( ((reshape(ym(i,:,:), MU, M).^2) * alpha)./ ...                   (reshape(ym(i,:,:), MU, M) * alpha) )';             case {'crossentropy_snn'},               y_av(i, :) = ...                 (tanh(atanh(max(min(reshape(ym(i,:,:), MU, M), 1-delta),...		      -1+delta))...                 * alpha))';             case {'crosslogistic_snn'},               tmp = reshape(max(min(ym(i,:,:), 1-delta), delta), MU, M);               y_av(i, :) = (1./(1 + exp(log((1-tmp)./tmp) * alpha)))';             case {'loglikelihood_snn'},               y_av(i, :) = (1./((1./reshape(ym(i,:,:), MU, M)) * alpha))';             otherwise,               error(sprintf(...	           'No support for output errorfunction %s', errf{i,1}));	   end       endelse   error('Incorrect format for output errorfunction');end

⌨️ 快捷键说明

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