Введение 2
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 (Neuroevolution of augmented topoologies) - довольно мощный инструмент, способный автоматически генерировать нейронную сеть для поставленной задачи. Его главное преимущество в том, что он генерирует топологию нейронной сети, одновременно настраивая ее веса. Структура сети постепенно эволюционирует с помощью генетического алгоритма, тем самым значительно сокращается время поиска эффективной топологии, настройка количества скрытых слоев и нейронов в них[1]. NEAT активно дорабатывался исследователями и с успехом применялся в задачах машинного обучения c подкреплением в областях робототехники, ориентации в пространстве, компьютерных играх[2,3,4,5,6].
При применение алгоритма NEAT для решения задач, связанных с классификацией объектов, возникает одна из самых острых проблем в такой области - переобучение нейронной сети. Явление переобучения заключается в том, что модель хорошо показывает себя на данных для обучения, но, в то же время, демонстрирует плохой результат на тестовых данных. Существует большое количество способов борьбы с переобучением нейронных сетей. Но все они предполагают заданную заранее структуру сети, а также тесно интегрированы с процессом обучения нейронной сети. Такие подходы как применение L1 и L2 регуляризаций, max-norm регуляризации, label smoothing, ReLU функции и ее модификаций, dropout - разработаны и опробованы лишь для нейронных сетей фиксированной топологии, преимущественно для глубоких сетей[7,8,9]. Данные техники неприменимы напрямую для нейроэволюционного алгоритма NEAT и требуют поиска способа их интеграции в процесс эволюции. Такая проблема по прежнему актуальна для целого класса генетических алгоритмов[10]. Существующие работы, рассматривающие вопрос переобучения генетических алгоритмов, описывают решение проблемы с помощью применения техник случайных подвыборок (Random subsampling)[11,12]. Но предложенные ими подходы при ближайшем рассмотрении оказываются не так эффективны для алгоритма NEAT.
В данной работе мы рассматриваем способы адаптации наиболее эффективных существующих техник регуляризации в машинном обучении для процесса эволюции нейронной сети с применением алгоритма 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) за помощь в поиске материалов и обсуждение результатов.
1. Stanley, Kenneth O., and Risto Miikkulainen. "Evolving neural networks through augmenting topologies."Evolutionary computation 10.2 (2002): 99-127.
2. Silva, Fernando, et al. "odNEAT: An algorithm for decentralised online evolution of robotic controllers." Evolutionary computation 23.3 (2015): 421-449.
3. Kohl, Nate, et al. "Evolving a real-world vehicle warning system." Proceedings of the 8th annual conference on Genetic and evolutionary computation. ACM, 2006.
4. Wittkamp, Markus, Luigi Barone, and Philip Hingston. "Using NEAT for continuous adaptation and teamwork formation in Pacman." (2008).
5. Stanley, Kenneth O., Bobby D. Bryant, and Risto Miikkulainen. "Evolving adaptive neural networks with and without adaptive synapses." Evolutionary Computation, 2003. CEC'03. The 2003 Congress on. Vol. 4. IEEE, 2003.
6. Stanley, Kenneth O. "Compositional pattern producing networks: A novel abstraction of development." Genetic programming and evolvable machines
8.2 (2007): 131-162.
7. Szegedy, Christian, et al. "Rethinking the Inception Architecture for Computer Vision." arXiv preprint arXiv:1512.00567 (2015).
8. Bing X, Naiyan Wang, Tianqi Chen, Mu Li. Empirical Evaluation of Rectified Activations in Convolution Network, 2015.
9. Srivastava, Nitish, et al. "Dropout: A simple way to prevent neural networks from overfitting." The Journal of Machine Learning Research 15.1 (2014): 1929-1958.
10. O’Neill, Michael, et al. "Open issues in genetic programming." Genetic Programming and Evolvable Machines 11.3-4 (2010): 339-363.
11. Goncalves Ivo, and Sara Silva. Balancing learning and overfitting in genetic programming with interleaved sampling of training data. Springer Berlin Heidelberg, 2013.
12. Langdon, W. B. "Minimising testing in genetic programming." RN 11.10 (2011): 1.
13. Tuite, Cliodhna, et al. "Early stopping criteria to counteract overfitting in genetic programming."Proceedings of the 13th annual conference companion on Genetic and evolutionary computation. ACM, 2011.
14. Prechelt, Lutz. "Early stopping-but when?."Neural Networks: Tricks of the trade. Springer Berlin Heidelberg, 1998. 55-69.
15. Becker, Lee A., and Mukund Seshadri. "Comprehensibility & Overfitting Avoidance in Genetic Programming for Technical Trading Rules." (2003).
16. Dabhi, Vipul K., and Sanjay Chaudhary. "A Survey on Techniques of Improving Generalization Ability of Genetic Programming Solutions." arXiv preprint arXiv: 1211.1119 (2012).
17. Shengbo, Xu, Hirotaka Moriguchi, and Shinichi Honiden. "Efficient neuroevolution for a quadruped robot." Simulated Evolution and Learning. Springer Berlin Heidelberg, 2012. 361-370.
18. Тихонов А.Н. О некорректных задачах линейной алгебры и устойчивом методе их решения // ДАН СССР, 1965, т. 163, № 3, с. 591-594
19. MIchael A.Nielsen, "Neural networks and Deep Learning", Determination Press, 2015
20. Maas, Andrew L, Hannun, Awni Y, and Ng, Andrew Y. Rectifier nonlinearities improve neural network acoustic models. InICML, volume 30, 2013.
21. Nair, Vinod, and Geoffrey E. Hinton. "Rectified linear units improve restricted boltzmann machines." Proceedings of the 27th International Conference on Machine Learning (ICML-10). 2010.