Что означает параметр MiniBatchSize в LSTM Matlab - PullRequest
0 голосов
/ 20 сентября 2018

Я использую структуру LSTM:

layers = [ ...
    sequenceInputLayer(1)
    bilstmLayer(100,'OutputMode','last')
    fullyConnectedLayer(2)
    softmaxLayer
    classificationLayer
    ];

options = trainingOptions('adam', ...
    'MaxEpochs',30, ...
    'MiniBatchSize', 150, ...
    'InitialLearnRate', 0.01, ...
    'GradientThreshold', 1, ...
    'plots','training-progress', ...
    'Verbose',false);

и net = trainNetwork(XTrain,Ytrain,layers,options);

, где

  • Xtrain - массив ячеек 1x100 (Xtrain{1,1} дает массив данных размером 1000x1, Xtrain{1,2} - еще один набор данных массива размером 1000x1 и т. Д.).Это означает, что у меня есть 100 примеров векторов признаков, каждый из которых имеет размерность 1000.

  • Ytrain - это переменная ответа 0/1 и массив размером 100x1.Ответ имеет тип double.

Я просто принял параметр MiniBatchSize равным 150. Я пробовал и с другими значениями, скажем, 50,60,70 ... кажется, ничего не влияетпроизводительность.Поэтому я не совсем понимаю, что обозначает этот параметр и как найти значение для него.Может кто-нибудь помочь объяснить, что это значит и в идеале, что это должно быть?спасибо

1 Ответ

0 голосов
/ 20 сентября 2018

Параметр на самом деле объяснен на странице документации Mathworks :

Размер мини-пакета, который будет использоваться для каждой итерации обучения, указывается в виде разделенной запятыми пары, состоящей изMiniBatchSize и положительное целое число.Мини-пакет - это подмножество обучающего набора, которое используется для оценки градиента функции потерь и обновления весов.См. Stochastic Gradient Descent.

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

...