Batch size — это количество примеров данных, которые обрабатываются нейронной сетью за один проход во время обучения. В библиотеке ConvNetJS этот параметр задается при обучении сети и напрямую влияет на производительность, стабильность градиентного спуска и скорость сходимости модели.
В контексте обучения нейронных сетей с использованием Stochastic Gradient Descent (SGD), данные не обрабатываются целиком за один шаг. Вместо этого они делятся на меньшие группы — батчи. При каждом шаге градиенты вычисляются только по текущему батчу, после чего обновляются веса сети.
Преимущества использования батчей:
В ConvNetJS параметр батча задается через объект конфигурации при создании тренера (trainer) сети. Пример:
var trainer = new convnetjs.SGDTrainer(net, {
learning_rate: 0.01,
momentum: 0.9,
batch_size: 20,
l2_decay: 0.001
});
Здесь ключевой параметр — batch_size: 20. Это означает,
что веса сети будут обновляться после обработки 20 примеров данных.
Важно учитывать, что слишком маленький батч приводит к нестабильным обновлениям градиентов и колебаниям функции потерь. Слишком большой батч замедляет обновление сети и требует больше оперативной памяти. Оптимальный размер зависит от сложности модели, объема данных и доступных вычислительных ресурсов.
Малый батч (1–32 примера)
Средний батч (64–256 примеров)
Большой батч (512 и выше)
Batch size — это ключевой параметр настройки обучения сети, который балансирует скорость сходимости, стабильность градиентов и потребление памяти. В ConvNetJS его настройка проста, но требует внимательного подбора относительно структуры сети и объема данных. Правильный выбор батча повышает эффективность обучения и способствует получению качественной модели без переобучения.
Размер батча — один из наиболее влиятельных факторов в тренировке нейронной сети и требует экспериментального подхода, комбинируя его с другими гиперпараметрами тренера.