как выбрать размер порции в кафе

Я понимаю, что больший размер пакета дает более точные результаты из здесь . Но я не уверен, какой размер партии «достаточно хорош». Я предполагаю, что большие размеры партий всегда будут лучше, но кажется, что в определенный момент вы получите лишь небольшое улучшение точности при каждом увеличении размера партии. Существует ли эвристика или эмпирическое правило для определения оптимального размера партии?

В настоящее время у меня есть 40000 обучающих данных и 10000 тестовых данных. Размер моей партии по умолчанию: 256 для обучения и 50 для теста. Я использую NVIDIA GTX 1080 с 8 гигабайтами памяти.


person MoneyBall    schedule 30.04.2017    source источник


Ответы (2)


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

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

person Shai    schedule 30.04.2017
comment
Попался. Спасибо. - person MoneyBall; 30.04.2017
comment
Я думаю, что полезным диапазоном может быть [number of labels, batch size your memory can hold]. - person lnman; 30.04.2017
comment
@lnman для imagenet количество ярлыков 1000… я не думаю, что это разумно - person Shai; 30.04.2017
comment
Да, я знаю. Вот почему я сказал полезный диапазон и memory can hold часть. - person lnman; 30.04.2017
comment
@lnman Предположим, у вас очень большой объем памяти, вы бы установили «batch_size: 1000»? Я так не думаю. Я думаю, что 256 — это очень большой размер пакета для начала. Исходя из моего ограниченного опыта, я думаю, что ~50 больше похож на нормальный размер. - person Shai; 30.04.2017
comment
Поскольку mini-batch является оценкой batch, это, безусловно, помогает, если вы используете все типы примеров для каждой партии для сходимости. Так почему бы не использовать 1000, если у вас достаточно памяти? Для недавних GPU большой размер пакета может быть эффективно вычислен и распараллелен на многих GPU и будет иметь меньшую дисперсию. - person lnman; 30.04.2017
comment
@lnman недавно появилось несколько публикаций, успешно работающих с очень большими партиями. Так что я предполагаю, что моя склонность к меньшим партиям не является хорошей практикой. - person Shai; 01.10.2017

Подробнее о некоторых причинах выбора больший размер партии / меньший размер партии. Вы хотите посмотреть на

  • эпохи до конвергенции
  • время в эпоху: чем выше, тем лучше
  • результирующее качество модели: чем ниже, тем лучше (в моих экспериментах)

Размер пакета 32 был хорош для моих наборов данных/моделей/алгоритма обучения.

person Martin Thoma    schedule 01.08.2017