В Книге глубокого обучения для этого есть отдельная глава. Я порекомендую вам пройти через то же самое, поскольку в нем упоминается много вещей, которые я усвоил на собственном горьком опыте, то есть проведя несколько экспериментов.

Вот несколько вещей, которым я стараюсь следовать:

  • Почти наверняка выберите предварительно обученную модель (обычно AlexNet или VGGNet) для запуска первого эксперимента. Почему? Это связано с тем, что эти модели были обучены на действительно большом наборе данных, а начальные слои изучают функции, общие для любого изображения. Если изображения являются изображениями природных объектов, вам лучше заморозить сверточные слои и просто обучить полностью связанные слои.
  • Сначала добавьте только один полностью связанный слой и попробуйте добавить больше слоев, только если точность не окажется приемлемой.
  • Всегда используйте ReLU в качестве функции активации в сверточных слоях. О преимуществах использования ReLU вы можете прочитать здесь.
  • Используйте Dropout (для начала = 0,5). Подробнее об отсеве здесь.
  • Используйте инициализацию Xavier для весов полностью связанных слоев. Реализация Keras здесь.
  • Поиграйте с скоростью обучения. Много раз случалось, что модель, точность которой не меняется при скорости обучения = 0,01, достигает 90% точности при изменении коэффициента на 1e-4 или 1e-5. Это самый важный параметр, который нужно настраивать во время тренировочного процесса.

Последние два пункта не связаны с изменениями в архитектуре, но очень важны с точки зрения экспериментов.

  • Увеличение данных - это очень эффективный метод регуляризации, при котором вы искусственно увеличиваете размер набора данных, добавляя преобразования к исходному набору данных. Обычные преобразования - это перемещение, вращение, добавление сдвига, переворота по горизонтали и т. Д. У Keras есть очень полезный ImageDataGenerator, который делает всю работу за вас. Вы также можете просмотреть главу Регуляризация для глубокого обучения в книге по ссылке выше. В нем упоминаются все различные используемые методы, а также математика, лежащая в основе этого.
  • Наконец, ИСПОЛЬЗУЙТЕ Keras. И под «ИСПОЛЬЗОВАНИЕМ» я имею в виду использование возможностей Keras для экспериментов.

Надеюсь, это помогло :)

Первоначально опубликовано на www.quora.com.