- Вопрос или проблема
- Ответ или решение
- Понимание проблемы деградации производительности сверточной нейронной сети при использовании мини-пакетов на наборе MNIST
- 1. Нарушение статистического представительства
- 2. Эффект обновления параметров
- 3. Сложности с обучением и переобучением
- 4. Структура модели
- 5. Параметры гиперпараметров обучения
- Заключение
Вопрос или проблема
Я создал свёрточную нейронную сеть с нуля на Python для классификации рукописных цифр MNIST (централизованный). Она состоит из одной свёрточной сети с 8 ядрами 3×3, слоя максимального объединения 2×2 и плотного слоя из 10 узлов с softmax в качестве функции активации. Я использую функцию потерь кросс-энтропии и SGD.
Когда я обучаю сеть на всей обучающей выборке за одну эпоху с размером мини-батча 1, я получаю точность 95%. Однако, когда я пробую с большим размером мини-батча (16, 32, 128), обучение становится очень шумным, и окончательная точность варьируется от 47% до 86%. Почему моя сеть работает так хуже и шумнее на мини-батчах?
Ваша модель очень маленькая для свёрточной сети. 1 свёрточный слой, 1 слой максимального объединения и 1 полносвязный слой – это очень мелко. Попробуйте добавлять больше слоёв и слой нормализации пакетов 2d после каждого свёрточного слоя, за которым следует ReLU. Без слоёв объединения.
Ответ или решение
Понимание проблемы деградации производительности сверточной нейронной сети при использовании мини-пакетов на наборе MNIST
При разработке моделей машинного обучения важно тщательно относиться к процессу обучения. Ваши наблюдения о том, что использование мини-пакетов снижает точность вашей сверточной нейронной сети (CNN) на наборе данных MNIST, поднимает несколько критических аспектов, которые требуют рассмотрения.
1. Нарушение статистического представительства
Использование мини-пакетов приводит к тому, что каждая итерация обновления весов модели основывается на небольшой подвыборке обучающих данных. Это может вызвать значительные колебания в градиентах, особенно если данные не случайным образом распределены или если минимальные пакеты представляют разные подмножества данных. В вашем случае, более мелкие пакеты могут привести к тому, что модель будет «обучаться» на неполных и нестабильных представлениях данных, что приводит к более низкой и шумной производительности. В отличие от обучения на всём наборе данных, где среднее градиент может быть более предсказуемым и стабильным.
2. Эффект обновления параметров
Размер мини-пакета влияет на то, как часто обновляются веса модели. С меньшими пакетами изменения в весах могут быть более резкими и нестабильными, что порождает проблемы при поиске оптимального решения (локальные минимумы). С большей величиной минимального пакета градиенты становятся более сглаженными, однако они могут не охватывать все возможные вариации обучения.
3. Сложности с обучением и переобучением
При использовании маленьких пакетов может возникнуть ситуация, когда сеть начал подстраиваться под шум в данных, а не под их обобщенные характеристики. Это может привести к тем временным колебаниям в точности, которые вы наблюдаете. Большие мини-пакеты, напротив, могут помочь в повышении устойчивости и обобщающем поведении модели, поскольку они менее подвержены влиянию отдельных примеров в наборе данных.
4. Структура модели
Вы описали, что ваша модель CNN состоит всего из одного свёрточного слоя и слоя максимального подвыборки. Эта базовая архитектура может быть недостаточной для решения задачи классификации изображений, особенно в условия, когда вы используете большие мини-пакеты, чьи свойства могут ещё больше скрывать недостатки модели. Рекомендуется рассмотреть возможность расширения архитектуры вашей сети, добавляя дополнительные свёрточные слои, нормализацию по батчам и функции активации, такие как ReLU, чтобы улучшить её производительность и обеспечить лучшее обобщение.
5. Параметры гиперпараметров обучения
Гиперпараметры, такие как скорость обучения, также могут влиять на то, как модель адаптируется к различным размерам батчей. Меньшие пакеты могут требовать более низкую скорость обучения, чтобы позволить модели вникнуть в детали, в то время как большие пакеты могут позволить более высокую скорость обучения. Настройка этих параметров с учётом изменения размеров пакетов может помочь достичь лучших результатов.
Заключение
В целом, проблема, с которой вы столкнулись, может быть следствием нескольких факторов, связанных с размером мини-пакетов, архитектурой вашей модели и способами, которыми срабатывают обновления весов. Рекомендуется провести дополнительные эксперименты с увеличением сложности модели, применением техник нормализации и внимательной настройкой гиперпараметров, чтобы добиться лучшего результата на наборе MNIST.