Размер партии - это количество обучающих примеров, которые вы используете для выполнения одного шага стохасти c градиентного спуска (SGD).
Что такое SGD? SGD является градиентным спуском (GD), но вместо того, чтобы использовать все ваши тренировочные данные для вычисления градиента вашей функции потерь относительно параметров сети, вы используете только подмножество обучающего набора данных. Отсюда и прилагательное «стохасти c», потому что, используя только подмножество обучающих данных, вы будете приближаться к стохастически (т.е. вы будете вводить шум) градиента, который будет вычисляться с использованием всех ваши тренировочные данные, которые будут считаться «фактическим» градиентом функции потерь по отношению к параметрам.
Почему я должен изменить это число? Я понял, что если я увеличу его, обучение будет быстрее, а если я уменьшу, оно станет медленнее. Но что именно я здесь меняю? Зачем мне это менять? На что мне нужно обращать внимание?
Если размер пакета слишком мал, например, 1, то вы будете вычислять градиент только с одним примером обучения. Это может привести к тому, что ваша тренировочная потеря будет сильно колебаться, потому что каждый раз вы приближаете градиент только с одним тренировочным примером, который часто не отражает целые тренировочные данные. Таким образом, как правило, чем больше обучающих примеров вы используете, тем лучше вы приближаете градиент (который будет соответствовать всем обучающим примерам), что потенциально может привести к более быстрой конвергенции. Однако , на практике, если вы используете много обучающих примеров, это также может быть вычислительно дорого. Например, представьте, что ваши тренировочные данные состоят из миллионов обучающих примеров. В этом случае, чтобы выполнить один шаг градиентного спуска, вам нужно будет go просмотреть все эти обучающие примеры, что может занять много времени. Таким образом, вам, возможно, придется подождать много времени, чтобы увидеть, как обновляются параметры вашей модели. Это не может быть идеальным.
В заключение, небольшие партии могут заставить ваш тренировочный процесс колебаться, и это может заставить вашу функцию потери занять много времени, чтобы достичь локального минимума. Однако огромный размер пакета также может быть нежелателен, поскольку он также может занимать много времени.
Типичными значениями размера пакета являются 32, 64 и 128. Почему? Люди просто используют эти цифры, потому что эмпирически они кажутся хорошими компромиссами (с точки зрения конвергенции, времени обучения и т. Д. c.) Между крошечными размерами партий и огромными размерами партий.