Интерпретация результатов градиента и производительности в обучении нейронных искусственных сетей с Matlab - PullRequest
0 голосов
/ 24 июня 2018

Я тренирую нейронную сеть в Matlab, и у меня возникают некоторые трудности с пониманием полученных результатов.

Например, Matlab представляет в nntraintool значения производительности и градиента, полученные на этапе обучения.

Если я хорошо это понял, нам нужна минимальная производительность, насколько это возможно, то есть значение производительности должно быть близко к параметру net.trainParam.goal = 0.001.

Но я не знаю, как интерпретировать значение градиента. Мы хотим наименьшее или наибольшее возможное значение?

Предположим, что сеть MLP со скрытым слоем с 20 нейронами (сценарий 1.a). Набор данных является thyroid_dataset. Код следующий:

[InputData,TargetData] = thyroid_dataset;

net = newff(InputData,TargetData,20 ,{'logsig' 'tansig'},'traingd');

net.trainParam.epochs=20000;
net.trainParam.goal=0.001;
net.trainParam.lr=0.05;
net.divideParam.trainRatio=0.7;
net.divideParam.valRatio=0;
net.divideParam.testRatio=0.3;

[net,tr] = train(net,InputData,TargetData);

OutputData = net(InputData);
errors = gsubtract(TargetData, OutputData);
performance = perform(net, TargetData, OutputData);

Предположим также, что был добавлен новый скрытый слой с 20 нейронами, поэтому новый MLP (сценарий 1.b):

net = newff(InputData,TargetData,[20 20],{'logsig' 'logsig' 'tansig'},'traingd');

Затем я запустил оба сценария и получил следующие результаты:

 Scenario 1.a
 Gradient: 0.00111 / Performance: 0.00443 / Epoch: 20000


 Scenario 1.b
 Gradient: 0.00070 / Performance: 0.04460 / Epoch: 20000

Какой сценарий самый лучший?

Теперь давайте предположим, что алгоритмы обучения были изменены. В сценарии 2.a у нас есть Левенберг-Марквардт, а в сценарии 2.b - градиентный спуск с обратным распространением адаптивной скорости обучения.

Результаты были:

Scenario 2.a
Gradient: 3.14e-08 / Performance: 0.00205 / Epoch: 174


 Scenario 2.b
 Gradient: 3.08e-08 / Performance: 0.04580 / Epoch: 212

В сценариях 2.a и 2.b эпохи были намного меньше, чем в сценариях 1.a и 1.b. Кроме того, градиенты были также меньше.

Что это значит?

Сценарии 2.a и 2.b лучше, чем 1.a и 1.b? Или нет?

Спасибо!

1 Ответ

0 голосов
/ 25 июня 2018

Градиентные методы, используемые для обучения нейронной сети, основаны на градиенте.

Что это значит? Эти методы используют градиент для перемещения в пространстве решения. Когда они перемещаются в пространство решения, их значения изменяются, потому что градиент различен в каждой точке пространства решения.

Существует какая-то связь между градиентом и производительностью.

...