为什么梯度下降法无法训练网络以预测时间表?

时间:2019-11-25 21:02:18

标签: matlab machine-learning gradient-descent

我正在训练使用梯度下降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

但是,当我尝试训练我的网络时,它直接失败了,这意味着验证错误从一开始就不断增加,如下所示。

Validation error using traingd

我不知道原因,所以我想在这里问。

当我使用Levenberg-Marquardt trainlm作为反向传播算法训练我的网络时,一切正常。

Validation error using trainlm

0 个答案:

没有答案