Description
Аннотация
Статья посвящена разработке быстрой программной реализации специализированной нейросетевой архитектуры. Конструирование признаков является важнейшим этапом в решении любой задачи машинного обучения. Алгоритмы ручного отбора признаков в настоящее время теряют свою популярность в ряде задач, уступая глубоким нейросетям. Однако применение глубоких моделей ограничено в задачах онлайнового (динамического) обучения, поскольку они не способ-ны обучаться в режиме реального времени. Кроме того, их использование в высоконагруженных системах затруднительно из-за вычислительной сложности. В одной из работ автором совместно с коллективом была предложена архитектура нейронной сети, позволяющая осуществлять автоматический подбор признаков и при этом обучаться в режиме реального времени. Однако специфическая разреженность связей в этой архитектуре затрудняет ее реализацию на базе стандартных библиотек для работы с глубокими нейросетями. Поэтому было принято решение сделать собственную реализацию предложенной архитектуры. В статье рассмотрены структуры данных и алгоритмы, разработанные при написании программной реализации. Подробно описан процесс обработки примеров с позиции программной си-стемы при предсказании и обучении модели. Для более полного описания особенностей реализа-ции системы приведены UML-диаграммы классов, последовательностей и активности. Проведены эксперименты по сравнению быстродействия созданной реализации и реализаций аналогичной нейросетевой архитектуры на базе библиотек для работы с глубокими нейросетями. Анализ показал, что разработанная реализация работает на порядок быстрее реализаций на базе фреймворков для глубокого обучения. Такое ускорение связано с тем, что она оптимизирована под конкретную нейросетевую архитектуру в отличие от библиотек, рассчитанных на работу с широким классом нейронных сетей. Также экспериментальный анализ показал, что разработанная реализация нейросети работает всего на 20-30 % медленнее, чем простая логистическая регрессия с хешированием признаков, что позволяет использовать ее в высоконагруженных системах.The paper is devoted to the development of fast software implementation of a specialized neural net-work architecture. Feature engineering is one of the most important stages in solving machine learning tasks. Nowadays, the algorithms of handcrafted feature selection lose their popularity, giving way to deep neural networks. However, application of deep models is limited in online learning tasks as they are not able to learn in real time. Besides, their using is difficult in high-loaded systems due to signifi-cant computational complexity. In the one of previous articles, the author has proposed a neural network architecture with automat-ic feature selection and the ability to train in real time. However, specific sparsity of connections in this architecture complicates its implementation on the base of classic deep learning frameworks. Therefore, we decided to do our own implementation of the proposed architecture. This paper considers data structures and algorithms developed when writing software implementa-tion. It describes sample processing in details from the program system point of view during model pre-dicting and training. For a more complete description of implementation details, there are UML classes, sequences and activity diagrams. The performance of the developed implementation is compared with implementations of same ar-chitecture on the base of deep learning frameworks. The analysis has shown that the developed soft-ware works an order of magnitude faster than library-based implementations. Such acceleration is due to the fact that the developed implementation is optimized for a specific architecture, while the frame-works are designed to work with a wide class of neural networks. In addition, the benchmarks have shown that the developed implementation of a proposed neural network works only 20-30 percent slower than a simple logistic regression model with handcrafted features. Thus, it can be used in high loaded systems.
Reviews
There are no reviews yet.