Как выбрать гиперпараметры и стратегию для нейронной сети с небольшим набором данных?

В настоящее время я делаю семантическую сегментацию, однако у меня действительно небольшой набор данных,

У меня есть только около 700 изображений с расширением данных, например, переворачивание может

сделать это 2100 изображений.

Не уверен, что этого вполне достаточно для моей задачи (семантическая сегментация с четырьмя

классы).

Я хочу использовать нормализацию партии и мини-градиентный спуск

Что действительно заставляет меня чесать голову, так это то, что если размер партии слишком мал,

нормализация партии не работает хорошо, но с большим размером партии,

кажется эквивалентным полному градиентному спуску

Интересно, есть ли что-то вроде стандартного соотношения между количеством образцов и размером партии?

1 ответ

Решение

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

Во-вторых, вы спрашиваете о размере партии. Действительно, меньшая партия заставит алгоритм блуждать вокруг оптимума, как при классическом стохастическом градиентном спуске, признаком которого являются шумные колебания ваших потерь. В то время как при большем размере партии, как правило, наблюдается более "плавная" траектория движения к оптимальной. В любом случае, я предлагаю вам использовать алгоритм с импульсом, такой как Адам. Это поможет сближению ваших тренировок.

Эвристически, размер пакета может быть таким же большим, как ваша память GPU. Если объема памяти графического процессора недостаточно, размер пакета уменьшается.

Другие вопросы по тегам