Отличное объяснение @majid ghafouri, но я просто хочу добавить больше деталей, чтобы убедиться, что вы получили это и почему мы его используем, или какие преимущества мы можем получить, используя его:
Stochastic Gradient Descent выполняет обновления в соответствии ск следующему итеративному процессу. Этот тип обучения, который выполняет обновления одного примера за раз, называется онлайн-обучением.
Алгоритм для него будет выглядеть так:
procedure Online
for several epochs of training do
for each training example in the data do
Calculate gradients of the loss
Update the parameters according to this gradient
end for
end for
end procedure
ВНапротив, мы можем также подумать об алгоритме пакетного обучения, который обрабатывает весь набор данных как единый блок, вычисляет градиенты для этого блока, а затем выполняет обновление только после полного прохождения данных. Эти две стратегии обновления имеют свои недостатки.
• Алгоритмы онлайн-обучения обычно быстрее находят относительно хорошее решение, так как им не требуется выполнять полный проход данных перед выполнением обновления.
• Тем не менее, в конце обучения алгоритмы пакетного обучения могут быть более стабильными, поскольку они не слишком подвержены влиянию последних увиденных обучающих примеров.
Алгоритм пакетной обработки будет выглядеть следующим образом:
procedure Batch
for several epochs of training do
for each training example in the data do
Calculate and accumulate gradients of the loss
end for
Update the parameters according to the accumulated gradient
end for
end procedure
• Алгоритмы пакетного обучения также более подвержены попаданию в локальные оптимумы;случайность в алгоритмах онлайн-обучения часто позволяет им отскочить от локальных оптимумов и найти лучшее глобальное решение.
Мини-пакетирование является счастливым посредником между этими двумя стратегиями. По сути, миниатюрное обучение похоже на онлайн-обучение, но вместо того, чтобы обрабатывать один пример за раз, мы рассчитываем градиент для n примеров за раз. В крайнем случае, когда n = 1, это эквивалентно стандартному онлайн-обучению, а в другом крайнем случае, когда n равно размеру данных, это эквивалентно полностью пакетному обучению.
По мере увеличения числаВ учебных примерах каждое обновление параметра становится более информативным и стабильным, но время, необходимое для выполнения одного обновления, увеличивается, поэтому обычно выбирается n, обеспечивающее хороший баланс между ними. Еще одно важное преимущество мини-пакетирования заключается в том, что с помощью нескольких приемов можно значительно ускорить одновременную обработку n обучающих примеров по сравнению с обработкой n различных примеров по отдельности. В частности, взяв несколько обучающих примеров и сгруппировав аналогичные операции для одновременной обработки, мы можем реализовать большой выигрыш в вычислительной эффективности благодаря тому, что современное оборудование (в частности, графические процессоры, но также и процессоры) имеют очень эффективные инструкции векторной обработки, которые можно использоватьс правильно структурированными входами.
Объяснение взято из этой превосходной бумаги, , которую вы можете прочитать, если у вас есть время: