fit_rgnn.m
来自「介绍如何用较复杂的方法去优化对负载具有感知特性的“黑匣子”模型的神经网络控制。」· M 代码 · 共 53 行
M
53 行
function [fitness, x] = fit_rgnn(x,fcn_opts)%[fitness, x] = fit_rgnn(x,fcn_opts)%this calculates the fitness for a system identification problem, a%recurrent generalized neural network. The fitness is the negative RMS%error, or, in the case of nan, the number of finite values before nan.%fcn_opts.U is the input matrix (N_in x N_points)%fcn_opts.Y is the target output vector (1 x N_points)%fcn_opts.activation is the activation vector (N_neurons x 1)% Copyright Travis Wiens 2008%% This program is free software: you can redistribute it and/or modify% it under the terms of the GNU General Public License as published by% the Free Software Foundation, either version 3 of the License, or% (at your option) any later version.%% This program is distributed in the hope that it will be useful,% but WITHOUT ANY WARRANTY; without even the implied warranty of% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the% GNU General Public License for more details.%% You should have received a copy of the GNU General Public License% along with this program. If not, see <http://www.gnu.org/licenses/>.%% If you would like to request a commerical (or other) license, please% feel free to contact travis.mlfx@nutaksas.comuse_mex=false;%set to true to use precompiled mex functionsN_in=size(fcn_opts.U,1);%number of inputsW=params_to_W(x,N_in);%convert row vector of params to square W matrixx0=zeros(size(W,1),1);%initial statesif use_mex [Y_hat]=rgnn_sim_mex(fcn_opts.U,W,fcn_opts.activation,x0);%perform NN calculationelse [Y_hat]=rgnn_sim(fcn_opts.U,W,fcn_opts.activation,x0);endk_skip=100;%skip first few data pointsE=sqrt(mean((fcn_opts.Y(k_skip:end)-Y_hat(k_skip:end)).^2));%RMS errorfitness=-E;%maximize the negative errorif isnan(fitness) %if the error is "not a number" then the fitness is the number of finite values fitness=-(numel(Y_hat)-max(find(~isnan(Y_hat))));end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?