что означает «мини-партия» в глубоком обучении? - PullRequest
0 голосов
/ 07 октября 2019

Я прохожу курс fast-ai и в уроке 2 SGD говорится:

Мини-пакет: «случайная группа точек, которые вы используете для обновления своих весов»

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

Что такое мини-партия и в чем отличие мини-партии от партии?

спасибо за помощь

Ответы [ 2 ]

3 голосов
/ 07 октября 2019

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

Также сравниваете стохастический спуск с градиентом, где вы обрабатываете один пример из обучающего наборав каждой итерации.

Другой способ взглянуть на это: все они являются примерами одного и того же подхода к градиентному спуску с размером пакета m и обучающим набором размера n. Для стохастического градиентного спуска m = 1. Для пакетного градиентного спуска m = n. Для мини-партии m = b и b

Мини-партия добавляет вопрос определения правильного размера для b, но поиск правильного b может значительно улучшить ваширезультаты.

2 голосов
/ 07 октября 2019

Отличное объяснение @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 различных примеров по отдельности. В частности, взяв несколько обучающих примеров и сгруппировав аналогичные операции для одновременной обработки, мы можем реализовать большой выигрыш в вычислительной эффективности благодаря тому, что современное оборудование (в частности, графические процессоры, но также и процессоры) имеют очень эффективные инструкции векторной обработки, которые можно использоватьс правильно структурированными входами.

Объяснение взято из этой превосходной бумаги, , которую вы можете прочитать, если у вас есть время:

...