Тема: Переобучение нейроэволюционного алгоритма NEAT
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
2 Анализ существующих работ 4
3 Адаптация методов регуляризации для процесса эволюции
нейронной сети с помощью алгоритма NEAT 6
3.1 L2 Регуляризация 6
3.2 Max-Norm Регуляризация 8
3.3 Label smoothing regularization 8
3.4 ReLU функция активации 9
3.5 Layer decay 11
3.6 Pruning нейронной сети 12
3.7 Комбинирование техник регуляризации 12
4 Экспериментальная часть 13
4.1 Подготовка экспериментов 13
4.2 Результаты экспериментов 20
4.2.1 Эксперименты на данных Koby Bryant Shot Selection 20
4.2.2 Эксперименты на данных dota 2. Данные о команде и героях 22
4.2.3 Эксперименты на данных dota 2. Данные о покупках героев 26
4.2.4 Эксперименты на данных Yandex taxi 30
5 Заключение 32
Список использованных источников 34
Приложение 1. Параметры экспериментов 36
Приложение 2. Источники данных 37
Приложений 3. Воспроизведение результатов экспериментов
📖 Введение
При применение алгоритма NEAT для решения задач, связанных с классификацией объектов, возникает одна из самых острых проблем в такой области - переобучение нейронной сети. Явление переобучения заключается в том, что модель хорошо показывает себя на данных для обучения, но, в то же время, демонстрирует плохой результат на тестовых данных. Существует большое количество способов борьбы с переобучением нейронных сетей. Но все они предполагают заданную заранее структуру сети, а также тесно интегрированы с процессом обучения нейронной сети. Такие подходы как применение L1 и L2 регуляризаций, max-norm регуляризации, label smoothing, ReLU функции и ее модификаций, dropout - разработаны и опробованы лишь для нейронных сетей фиксированной топологии, преимущественно для глубоких сетей[7,8,9]. Данные техники неприменимы напрямую для нейроэволюционного алгоритма NEAT и требуют поиска способа их интеграции в процесс эволюции. Такая проблема по прежнему актуальна для целого класса генетических алгоритмов[10]. Существующие работы, рассматривающие вопрос переобучения генетических алгоритмов, описывают решение проблемы с помощью применения техник случайных подвыборок (Random subsampling)[11,12]. Но предложенные ими подходы при ближайшем рассмотрении оказываются не так эффективны для алгоритма NEAT.
В данной работе мы рассматриваем способы адаптации наиболее эффективных существующих техник регуляризации в машинном обучении для процесса эволюции нейронной сети с применением алгоритма NEAT. С помощью экспериментов на задачах бинарной классификации мы показываем, что использование введенных нами техник помогает уменьшить процесс переобучения и время сходимости алгоритма.
✅ Заключение
Эксперименты показали, что стабильный хороший результат демонстрирует метод с применением адаптированной L2 регуляризации, штрафующий нейронную сеть за слишком большие веса связей. В комбинации с такой техникой, как layer decay модель на данных с линейными зависимостями может давать результаты лучше логистической регрессии. Применение таких эвристик, как label smoothing и различных модификаций функции активации ReLU тоже дает хороший результат. Использование стохастических подвыборок не демонстрировало улучшения качества модели во всех экспериментах. Применение рассмотренных эвристик помогает получить улучшение качества от 1 до 3%, что в машинном обучении является серьезной цифрой. А в некоторых случаях, результаты построенных моделей превосходят результаты такого мощного алгоритма машинного обучения, как логистическая регрессия.
Валидация результатов экспериментов проводилась по методу holdout. Обучающая выборка разбивалась на тренировочную и тестовую в соотношении 1 к 5 (80% - тренировочные данные, 20% - тестовые). Эволюция моделей проводилась с помощью тренировочной выборки, а ее валидация на тестовой выборке.
Применение метода кроссвалидации типа k-folds может дать более точную оценку, но было решено не использовать такую методику ввиду ее высокой вычислительной стоимости. Дело в том, что для одного запуска эволюции требуется от 1 часа до нескольких и более. Эксперименты показали, что наибольшую вычислительную стоимость имеет вычисление фитнесс функции для нейронных сетей. Реализация алгоритма на Python с использование Cuda может дать существенный прирост в скорости работы алгоритма. Отдельный интерес представляет возможность использования для ускорения вычислений устройств, поддерживающих стандарт OpenCL. В списке таких устройств находятся видеокарты, FPGA, CPU. Данная технология любопытна именно своей открытостью и широкой поддержкой такими компаниями как IBM, Altera, NVidia, AMD. Но ускорения работы средствами вычислительных возможностей по прежнему может быть недостаточно для комплексных проблем. Здесь уже требуется переработка логики вычисления фитнесс функции, к примеру вычисление ее приблизительного значения.
В экспериментах также рассматривалась возможность применения dropout - техники регуляризации глубоких нейронных сетей. Она позволяет в процессе обучения нейронной сети отбрасывать некоторые нейроны вместе с их связями, не позволяя таким образом скрытым нейронам слишком тесно кооперировать друг с другом. Но эффективность ее применения сводится на нет из-за динамической структуры эволюционирующих сетей. Были проведены эксперименты с отложенным включением dropout, но и они не демонстрировали хорошего результата. Между тем, представляет интерес использование данной техники, если запускать алгоритм эволюции с фиксированной архитектуры нейронной сети, применяя pruning и dropout для решения той же задачи поиска оптимальной структуры и весов нейронной сети.
Автор выражает благодарность и большую признательность научному руководителю Таланову М. О. (Max Talanov) за поддержку, помощь, обсуждение результатов и научное руководство. Также автор благодарит Чичигина А. (Alexander Tchitchigin) за помощь в поиске материалов и обсуждение результатов.



