Я видел аналогичный вывод из многих дискуссий, что с увеличением размера мини-пакета конвергенция SGD становится все труднее / хуже, например, в этой статье и в этом ответе . Также я слышал о людях, использующих такие уловки, как небольшая скорость обучения или размеры партий на ранней стадии, для решения этой проблемы с большими размерами партий.
Однако это кажется нелогичным, поскольку средние потери мини-пакета можно рассматривать как приближение к ожидаемым потерям при распределении данных
Вот некоторые из моих (вероятно, неправильных) мыслей, которые пытаются объяснить.
Параметры модели сильно зависят друг от друга: когда партия становится слишком большой, это повлияет на слишком много параметров одновременно, так что для параметров трудно достичь стабильной внутренней зависимости? (например, проблема внутреннего ковариатного сдвига, упомянутая в статье о нормализации партии )
Или когда почти все параметры отвечают за каждую итерацию, они склонны изучать избыточные неявные шаблоны и, следовательно, снижают производительность модели? (Я имею в виду, скажем, для задач классификации цифр некоторые шаблоны должны отвечать за точки, некоторые за края, но когда это происходит, каждый шаблон пытается отвечать за все формы).
Или это потому, что, когда размер пакетов становится ближе к масштабу обучающего набора, мини-пакеты больше не могут рассматриваться как идентифицированные из распределения данных, поскольку будет большая вероятность для коррелированных мини-пакетов?
Обновить
Как указывалось в ответе Бенуа Санчеса, одна важная причина заключается в том, что для больших мини-пакетов требуется больше вычислений для выполнения одного обновления, а в большинстве анализов для сравнения используется фиксированное количество тренировочных эпох.
Однако эта статья (Wilson and Martinez, 2003) показывает, что больший размер партии все еще несколько невыгоден даже при достаточном количестве тренировочных эпох. Это вообще так?
Чтобы добавить к ответу Кертиса Уайта (и добавить еще несколько ссылок):
Да SGD работает как тип регуляризации. Это важно, потому что в противном случае трудно объяснить, почему DNN не всегда подходят, потому что они могут .
Причина, как я понимаю, заключается в том, что SGD вызывает «скачкообразное изменение» в пространстве параметров, поэтому во время обучения параметры не могут оставаться в узком минимуме, только в (или близко к) более широким. И эти более широкие, по-видимому, [1] обобщают лучше (иначе, меньше переобучения).
Больше ссылок:
"stochastic relaxation, or random diffusion"
которой приводит стохастичность, присущая SGD"maximiz[ation of] the conditional entropy of the layer"
.Оба типа говорят, что SGD соответствует члену регуляризации энтропии.
Определенно могут быть и другие способы влияния размера партии на конвергенцию; это тот, о котором я знаю.
[1] Пример: «Байесовская перспектива обобщения и стохастического градиентного спуска», Smith, Le, 2018. Из аннотации:
"We propose that the noise introduced by small mini-batches drives the parameters towards minima whose evidence is large."
[2] «Стохастический градиентный спуск выполняет вариационный вывод, сходится к предельным циклам для глубоких сетей», Chaudhari, Soatto 2017
[3] «Открытие черного ящика глубоких нейронных сетей с помощью информации» Шварц-Зив, Тишби, 2017
[4] «Понимание глубокого обучения требует переосмысления обобщений», К. Чжан и др. 2016
источник
Слишком большой размер пакета может предотвратить конвергенцию, по крайней мере, при использовании SGD и обучении MLP с использованием Keras. Что касается того, почему, я не уверен на 100%, связано ли это с усреднением градиентов или что небольшие обновления обеспечивают большую вероятность выхода из локальных минимумов.
Смотрите здесь .
источник