Почему я не могу улучшить производительность CNN в наборе данных Fashion MNIST? - PullRequest
0 голосов
/ 20 марта 2019

Я играю с Pytorch, и я реализовал CNN для набора данных MNIST, который имеет точность + 99% как для поездов, так и для тестовых наборов.

Я решил переключиться на Fashion MNIST, чтобы посмотреть, как работает архитектура моей сети. Я получил 95% точности в наборе поездов и 91% в тестовом наборе.

Затем я начал пытаться улучшить эту производительность, настроив модель.

Вкратце, моя модель выглядит так:

         Conv -> ReLU -> Batch norm -> Max pool ->
         Conv -> ReLU -> Batch norm -> Max pool ->
         Conv -> ReLU -> Batch norm -> Max pool ->
         Conv -> ReLU -> Batch norm -> Max pool ->
         Linear -> ReLu -> Linear -> Output

         Optimizer: Stochastic Gradient Descent
         Transformations: ToTensor() only

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

Однако с указанными выше комбинациями либо моя модель будет соответствовать (например, 97% поезд, 89% тест) или она не будет иметь лучших результатов (например, 91% поезд, 89% тест).

Я что-то упустил? Я делаю что-то неправильно? Есть ли другие параметры настройки, которые мне нужно отрегулировать, о которых я не думал?

Спасибо

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Модный MNIST - более сложная проблема, чем MNIST.Поэтому неудивительно, что ваша архитектура работает не так хорошо.

Если вы хотите добиться более высокой точности, вы можете попробовать метод, описанный в этой статье .

0 голосов
/ 20 марта 2019

Вы внедрили Dropout в своей нейронной сети. Сбрасывание помогает случайно установить вес нейронов на ноль, таким образом Нейрон в это конкретное время не приводит к ошибкам. И избегает чрезмерной подгонки.

...