ПЕРЕЧЕНЬ СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ 4
ВВЕДЕНИЕ 5
1 Анализ современных методологий и решений в областях машинного
обучения и нейронных сетей 7
1.1 Анализ архитектур нейронных сетей 7
1.2 Анализ языков программирования для реализации и обучения нейронных
сетей 12
1.3 Анализ библиотек машинного обучения 13
1.4 Анализ языков программирования и систем управления базами данных
для реализации прикладного API 14
2 Подготовка данных и обучение нейросетевых алгоритмов 16
2.1 Анализ и предобработка данных 16
2.2 Подготовка данных и обучение моделей 21
2.3 Обучение CNN 29
2.3 Анализ результатов обучения CNN 32
2.4 Обучение RNN 35
2.5 Анализ результатов обучения сетей 43
3 Проектирование программной системы 44
3.1 Требования, предъявляемые к программной системе 45
3.2 Проектирование 45
ЗАКЛЮЧЕНИЕ 53
ПРИЛОЖЕНИЕ А 55
ПРИЛОЖЕНИЕ Б 72
Обработка сигналов является одной из наиболее сложных, но вместе с тем перспективным и востребованным направлением для исследований. Сигналы - распространяющиеся в среде колебания - встречаются во многих сферах, начиная от любой электрической цепи и заканчивая медицинскими анализами. Поскольку среда распространения колебаний может быть разнообразной, возрастает и количество способов обнаружения, изучения и принятия решений на их основе.
Изначально алгоритмы, работающие с сигналами, являлись совокупностью математических методов и эвристического анализа, основанного на наблюдении за параметрами сигнала, такими как амплитудно - частотная характеристика, зашумленность и т.д. За последние 20 лет методы анализа и обработки цифровых сигналов претерпели значительные изменения: в настоящее время применяются методы машинного обучения и нейронные сети [1].
Нейронная сеть - это математическая модель, состоящая из множества искусственных нейронов. Данная модель появилась как попытка смоделировать процессы, протекающих в живом мозге. В результате совокупности факторов, таких как вычислительные мощности, объем собранных данных и достижений в области алгоритмов, модель стала доминирующей для решения задач в области искусственного интеллекта и других наукоёмких сферах: применение нейронных сетей различной архитектуры позволяет решать задачи регрессии и классификации, генерировать новые данные, основанные на артефактах.
Отдельным случаем является анализ сигналов сразу из нескольких источников: такие задачи зачастую носят пространственный характер. В данной работе рассмотрена одна из таких задач: имеется набор сигналов, собранный с четырех сейсмографов, по которому необходимо найти координаты объекта, вызывающего возмущения на поверхности земли.
Исследования в области применения нейросетевых алгоритмов для решения задач, связанных с цифровой обработкой сигналов, могут привести к созданию наиболее передовых решений в различных областях. Решаемая в данной работе задача носит исследовательский характер и вместе с тем может найти применение в реальных сферах, таких как охранные системы, системы локации и программные комплексы по анализу цифровых последовательностей. Цель работы заключается в анализе и преобразовании исходных данных в набор данных для обучения, а также в применении различных типов нейронных сетей для решения описанной задачи.
Результаты и методы, исследованные в данной работе, могут быть использованы в прикладных программных системах, работающих с цифровыми сигналами. Решаемою в данной работе проблему можно отнести к задаче пеленгации: имеются наборы из четырёх сигналов, снятых с сейсмографов. Набор сигналов характеризует колебания поверхности земли в процессе перемещения человека в окрестности датчиков. Дополнительно к этому имеются данные трекинга человека (набор пар «метка времени - GPS координата»).
Имеется несколько вариантов перемещения человека: перемещение по кругу и по прямой линии, в обоих случаях датчики расположены на фиксированном расстоянии друг от друга в вершинах квадрата.
Задача заключается в создании системы искусственного интеллекта, которая самостоятельно может как минимум определить угол относительно геометрического центра квадрата датчиков по сигналам. Описанная задача относится к классу машинного обучения с учителем и носит регрессионный характер, поскольку у нас имеются реальные данные, на основе которых необходимо обучить алгоритм делать прогноз координаты, основываясь лишь на сигнале.
В ходе выполнения магистерской диссертации были проанализированы современные архитектуры нейронных сетей, проведены исследования по применению различных архитектура для решения задачи в области обработки сигналов, подобрана и обучена наиболее подходящая архитектура для решения задачи пеленгации, а также было спроектировано типовое программное обеспечение для развёртывания и эксплуатации нейросетевого алгоритма.
За время исследования и проектирования были рассмотрены современные методы, языки программирования и библиотеки для решения задач в области машинного обучения, визуализации различных данных, а также разработке и реализации WebAPI,системы управления базами данных и методы виртуализации.
Результаты магистерской диссертации были представлены на конференции IT OPEN2023 с темой «Применение нейронных сетей в задачах обработки сигналов».
1. Downey A. B. Think DSP. Digital Signal Processing in Python. — Green Tea Press, 2014. — 153 с.
2. Gulli A., Kapoor A., Pal S. Deep Learning with TensorFlow 2 and Keras. — 2 изд. — Packt Publishing, 2019. — 647 с.
3. Вейдман С. Глубокое обучение: легкая разработка проектов на Python. — СПб.: Питер, 2021. — 272 с.
4. Шолле Ф. Глубокое обучение на Python. — СПб.: Питер, 2018. — 400 с.
5. Shubham Saboo, GPT-3: Building Innovative NLP Products Using Large Language Models, O’Relly, 2022 - 158 c.
6. Будума Н., Локашо Н. Основы глубокого обучения. Создание алгоритмов для искусственного интеллекта следующего поколения — М.: Манн, Иванов и Фербер, 2020. — 304 с.
7. Sam Newman, Building Microservices, 2nd Edition, O’Relly, 2022 - 280 c.
8. Martin Kleppmann, Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, O’Relly, 2017 - 611 c.
9. Robert Love, Linux System Programming: Talking Directly to the Kernel and C Library, O’Relly, 2013 - 454 c.
10. Harihara Subramanian, Hands-On RESTful API Design Patterns and Best Practices: Design, develop, and deploy highly adaptable, scalable, and secure RESTful web APIs, O’Relly, 2019 - 378 c.