Сравнительное тестирование моделей с Dropout

Еще один этап работы с нашей библиотекой завершен. Мы изучили метод Dropout, который борется с явлением совместной адаптации признаков, и построили класс для реализации данного алгоритма в наших моделях. В предыдущем разделе мы собрали скрипт на языке Python для сравнительного тестирования моделей с использованием данного метода и без. Предлагаю посмотреть на результаты такого тестирования.

Сначала посмотрим на график тестового обучения моделей с одним скрытым слоем. Динамика среднеквадратичной ошибки моделей с использование Dropout оказалась хуже, чем у моделей без его использования. Это касается как модели обучаемой на нормализованных данных, так и модели с использованием слоя пакетной нормализации для предварительной обработки исходных данных. Можно заметить, что обе модели с использованием слоя Dropout отработали синхронно. Их линии на графике практически наложены друг на друга как в процессе обучения, так и на этапе валидации.

Аналогичные выводы можно сделать и при анализе динамики метрики Accuracy. Но в отличие от MSE, в процессе валидации значения показателя близки к значениям других моделей.

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

Сравнительное тестирование моделей с Dropout

Сравнительное тестирование моделей с Dropout

Сравнительное тестирование моделей с Dropout

Сравнительное тестирование моделей с Dropout

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

Сравнительное тестирование моделей с Dropout (тестовая выборка)

Сравнительное тестирование моделей с Dropout (тестовая выборка)

 

Сравнительное тестирование моделей с Dropout (тестовая выборка)

Сравнительное тестирование моделей с Dropout (тестовая выборка)

Это лишь мои предположения. Для получения конкретных выводов у меня недостаточно информации. Потребуются дополнительные тесты. Но это больше направленность научной работы. Наша же цель — практическое использование моделей. Мы проводим эксперименты с различными архитектурными решениями и выбираем лучшее для каждой конкретной задачи.

Сравнительное тестирование моделей с Dropout

Сравнительное тестирование моделей с Dropout

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

Это позволяет сделать вывод, что использование слоя Dropout снижает вероятность переобучения модели.

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

На тестовой выборке наблюдается отставание моделей с использованием слоя Dropout по обоим показателям.

Сравнительное тестирование моделей с Dropout

Сравнительное тестирование моделей с Dropout

Сравнительное тестирование моделей с Dropout (тестовая выборка)

Сравнительное тестирование моделей с Dropout (тестовая выборка)

Сравнительное тестирование моделей с Dropout (тестовая выборка)

Сравнительное тестирование моделей с Dropout (тестовая выборка)

В данном разделе мы провели сравнительное тестирование моделей с использованием технологии Dropout и без. Проведенные тесты позволяют сделать следующие выводы:

  • использование технологии Dropout позволяет снизить риск переобучения модели;
  • эффективность технологии Dropout повышается с ростом модели.