0

我尝试使用神经网络和遗传算法进行优化。我用输入 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

从逻辑上讲,当我在命令中使用p'sim时,结果矩阵将是72x2,这与 GA 的总体相同。但由于某种原因,我总是收到错误消息“你的适应度函数必须返回一个标量值”。

请指导我解决这个问题。

4

1 回答 1

0

“sim”函数返回一个包含网络所有输出的矩阵。您需要从中计算平方误差,以便提供一个标量值以使用 GA 最小化。

于 2016-04-01T17:49:55.790 回答