我正在训练使用梯度下降traingd
的前馈作为反向传播算法来预测时间表。
X = [repmat([1:10]', 10, 1) repelem([1:10]', 10)];
y = X(:, 1) .* X(:, 2);
net = feedforwardnet(8); % Create a neural network with 8 neurons in the hidden layer
net.layers{1}.transferFcn = 'logsig'; % Hidden layer activation function set to logsig
net.trainFcn = 'traingd'; % Set backpropagation algorithm to gradient descent
net.divideParam.trainRatio = 0.6;
net.divideParam.testRatio = 0.2;
net.divideParam.valRatio = 0.2;
[net, TR] = train(net, X', y'); % Train the network
但是,当我尝试训练我的网络时,它直接失败了,这意味着验证错误从一开始就不断增加,如下所示。
我不知道原因,所以我想在这里问。
当我使用Levenberg-Marquardt trainlm
作为反向传播算法训练我的网络时,一切正常。