我尝试使用神经网络和遗传算法进行优化。我训练了一个神经网络,其中输入p(4x72矩阵)和目标t(2x72矩阵)。使用遗传算法重新进行优化,我使用神经网络的sim
函数作为适应度函数。我用它的代码如下:
objFcn=@(p) sim(net,p');
%'net' is the neural network I created with p as input and t as target
[xOpt,fVal,exitflag,target]=ga(objFcn,4,[],[],[],[],LB,UB,[],options);
我提供的LB和UB分别是下限和上限。 options
,我用
options = gaoptimset('Vectorized','on');
% even vectorized off doesnt solve the problem
逻辑上,当我在sim
命令中使用 p' 时,结果矩阵将 72x2 ,这与GA的总体相同。但出于某种原因,我总是得到错误说“你的健身功能必须返回一个标量值”。
请指导我解决这个问题。
答案 0 :(得分:0)
“sim”函数返回一个矩阵,其中包含网络的所有输出。您需要从中计算平方误差,以便提供标量值以使GA最小化。