2016-11-10 6 views
1

Я занимаюсь регрессией нейронной сети с 4 функциями. Как определить размер мини-пакета для моей проблемы? Я вижу, что люди используют размер партии 100 ~ 1000 для компьютерного зрения с 32 * 32 * 3 функциями для каждого изображения, означает ли это, что я должен использовать размер партии 1 миллион? У меня есть миллиарды данных и десятки ГБ памяти, поэтому я не требую, чтобы я этого не делал.Выбор размера мини-партии для регрессии нейронных сетей

Я также наблюдал использование мини-партии размером ~ 1000, что делает конвергенцию намного быстрее, чем размер партии 1 миллион. Я думал, что это должно быть наоборот, так как градиент, рассчитанный с большим размером партии, является наиболее представительным для градиента всей выборки? Почему использование мини-пакета ускоряет конвергенцию?

ответ

3

От Tradeoff batch size vs. number of iterations to train a neural network:

От Nitish Шириш Keskar, Dheevatsa Mudigere Хорхе Nocedal Михаил Смелянский, Ping Tak Питер Тан. О многопартийном обучении для глубокого обучения: разрыв обобщения и резкие минимумы. https://arxiv.org/abs/1609.04836:

Метод стохастического градиентного спуска и его варианты являются алгоритмами выбора для многих задач Deep Learning. Эти методы работают в режиме малой партии, в котором часть данных обучения, обычно 32-512 точек данных, отбирается для вычисления приближения к градиенту. На практике наблюдалось, что при использовании большей партии наблюдается значительное ухудшение качества модели, измеряемое ее способностью к обобщению. Были предприняты некоторые попытки исследовать причину этого падения обобщения в режиме большой партии, однако точный ответ на это явление до сих пор неизвестен. В этой статье мы приводим многочисленные численные данные, которые подтверждают мнение о том, что методы с большими партиями стремятся свести к резким минимизаторам функций обучения и тестирования - и что резкие минимумы приводят к более слабому обобщению. Напротив, мелкосерийные методы последовательно сходятся к плоским минимизаторам, и наши эксперименты поддерживают общепринятое мнение, что это связано с присущим шумом в оценке градиента. Мы также обсуждаем несколько эмпирических стратегий, которые помогают крупномасштабным методам устранять пробел обобщения и заканчиваются рядом будущих идей исследований и открытых вопросов.

[...]

Отсутствие способности обобщения связано с тем, что методы обработки больших партий имеют тенденцию сходиться к резких минимизирующих функции обучения. Эти минимизаторы характеризуются большими положительными собственными значениями в $ \ nabla^2 f (x) $ и имеют тенденцию к меньшему обобщению. Напротив, малые периодические методы сходятся к плоским минимизаторам, характеризующимся малыми положительными собственными значениями $ \ nabla^2 f (x) $. Мы заметили, что ландшафт функции потерь в глубоких нейронных сетях таков, что широкомасштабные методы почти всегда привлекаются к областям с резкими минимумами и что, в отличие от небольших периодических методов, не могут выйти из бассейнов этих минимизаторов.

[...]

enter image description here

Кроме того, некоторые хорошие идеи из Ian Goodfellow отвечающие why do not use the whole training set to compute the gradient? на Quora:

от размера скорости обучения ограничивается в основном такими факторами, как как изогнутый функция стоимости есть.Вы можете думать о градиентном спуске, как , делая линейное приближение к функции стоимости, затем перемещая вниз по этой примерной цене. Если функция стоимости сильно нелинейная (сильно изогнутая), то аппроксимация будет не очень хорошо подходит очень далеко, поэтому размеры только небольшого шага безопасны. Вы можете прочитать больше об этом в главе 4 глубокого изучения учебника, на численного расчета: http://www.deeplearningbook.org/contents/numerical.html

Когда вы м примеры в minibatch, что вам нужно сделать O (м) вычисления и использовать O (m) памяти, но вы уменьшаете величину неопределенности в градиенте только с коэффициентом O (sqrt (m)). Другими словами, уменьшаются маргинальные значения , что дает больше примеров в мини-баре. Вы можете прочитать больше об этом в главе 8 глубокого изучения учебника, на алгоритмов оптимизации для глубокого изучения: http://www.deeplearningbook.org/contents/optimization.html

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