Preprocessing of ECG data and anomaly detection using recurrent neural networks

Cover Page

Cite item

Full Text

Abstract

The paper considers the problem of detecting ECG anomalies using recurrent neural networks that can effectively process temporal dependencies of signals, as well as identify complex patterns and anomalies that may not be obvious when using traditional analysis methods. The stages of ECG data preprocessing from the ECG5000 dataset are described, including interpolation, augmentation and normalization of ECG in order to improve the characteristics of the input data for model training. The architecture of a neural network for solving the presented problem is presented, the process of its training and quality assessment is described. The obtained experimental results show high classification accuracy and the possibility of successfully identifying various types of anomalies. The prospects of using deep learning in the field of cardiology are substantiated, which can serve as a basis for further research.

Full Text

Введение

В эпоху цифровых технологий обработка и анализ медицинских данных становятся все более важными для диагностики и мониторинга здоровья людей. Использование нейронных сетей для анализа ЭКГ способствует раннему выявлении симптомов сердечных заболеваний, например, фибрилляции предсердий, что способно предотвратить более серьезные состояния: инсульты и сердечные приступы. Более того, автоматизация процесса обнаружения аномалий может значительно снизить нагрузку на врачей и другой медицинский персонал, позволяя им сосредоточиться на принятии клинических решений. В настоящее время рекуррентные нейронные сети показывают хорошую эффективность при решении задач обработки последовательностей данных. Поскольку ЭКГ представляют собой последовательности электрических сигналов сердца, рекуррентные нейронные сети способны успешно распознавать сложные шаблоны, которые могут указывать на аномалии [1]. Данный тип нейронных сетей применяется и для обработки данных переменной длины, что соответствует внутреннему представлению ЭКГ, где продолжительность записей может сильно варьироваться.

В рамках работы проведена предобработка датасета ECG5000, создана, обучена и протестирована рекуррентная нейронная сеть для обнаружения аномалий ЭКГ. Выполнена квантизация модели до 8 бит, продемонстрировавшая уменьшение объема памяти, необходимого для хранения весов модели, в четыре раза, и ускорение времени получения результатов за счет более эффективных целочисленных операций. Для удобства взаимодействия пользователя с разработанным функционалом был реализован веб-сервис на основе фреймворка Django, который позволил сделать процесс анализа более эффективным и доступным.

Анализ и предобработка данных ЭКГ

Исходный набор данных ECG5000 представляет собой 20-часовую ЭКГ, загруженную из базы данных BIDMC и содержащую 5000 временных рядов, 2989 из которых относятся к нормальному типу ЭКГ, а остальные 2011 – к типу аномалий. Прежде чем выполнять обучение при помощи нейронной сети, необходимо провести предобработку данных. Каждый загруженный удар сердца интерполируется до одинаковой длины, равной 140 временным шагам. Данные ЭКГ разделены на пять классов: нормальный ('Normal'), желудочковые тахиаритмии ('R on T'), преждевременное сокращение желудочков ('PVC'), наджелудочковое преждевременное ('SP') и неклассифицированное сердцебиение ('UB'). Каждый временной ряд содержит 140 значений ЭКГ и метку – класс. Пример ЭКГ каждого класса представлен на рис. 1. Данные ЭКГ содержат по краям резкие подъемы и спуски. Эти экстремальные значения могут оказывать негативное влияние на обучение модели. Чтобы предотвратить это, было принято решение обрезать края каждой ЭКГ, оставив только набор точек с 25 по 80 отсчеты. Самым большим классом по количеству экземпляров является класс 'Normal', содержащий 2919 данных. Остальные классы распределены следующим образом: 'R on T' – 1767 экземпляров, 'PVC' – 194 экземпляра, 'SP' – 96 экземпляров и 'UB' – 24 экземпляра (рис. 2).

 

Рис. 1. Пример ЭКГ каждого класса

Fig. 1. Example of ECG of each class

 

Рис. 2. Распределение данных по классам

Fig. 2. Distribution of data by classes

 

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

Для обеспечения более эффективного обучения нейронной сети была применена аугментация данных. Это важный шаг, который позволяет расширить набор данных и улучшить обобщающую способность модели. Для этого была разработана специальная функция с целью добавления шума к ЭКГ каждого класса, за исключением 'Normal'. Такой подход позволяет модели учитывать различные вариации сигналов, с которыми она может столкнуться в реальных условиях.

После проведения аугментации размер датасета значительно увеличился, а количество экземпляров ЭКГ в каждом классе стало одинаковым. На рис. 3 можно видеть пример сравнения исходной ЭКГ и аугментированной для каждого класса.

 

Рис. 3. Пример сравнения исходной и аугментированной ЭКГ для каждого класса

Fig. 3. Example of comparison of original ECG and augmented one for each class

 

Для устранения неоднородности данных, улучшения сходимости алгоритмов оптимизации, предотвращения переполнения и улучшения обобщающей способности модели требуется нормализация ‒ процесс приведения значений признаков к стандартному формату или диапазону [2]. Нормализация помогает модели избегать переобучения.

Существует несколько методов нормализации данных.

  • Z-нормализация ‒ метод, преобразующий каждый признак так, чтобы его среднее значение было равно 0, а стандартное отклонение ‒ 1, путем вычитания среднего значения из каждого значения признака и деления на стандартное отклонение.
  • L2-нормализация, также известная как нормализация векторов, преобразует каждый вектор данных так, чтобы его длина (норма L2) была равна 1. Этот метод делит каждый вектор на его евклидову норму (корень из суммы квадратов его элементов).
  • Минимизация L1-нормы не соответствует нашему случаю, потому что L1-регуляризация обычно используется в моделях машинного обучения для разреживания весов, что может быть неэффективным для некоторых типов данных.
  • Мин-макс нормализация (MinMaxScaler) ‒ метод, который масштабирует значения признаков так, чтобы они находились в определенном диапазоне, обычно от 0 до 1. Для каждого признака этот метод вычитает минимальное значение признака и затем делит на разницу между максимальным и минимальным значениями признака.

На рис. 4 представлены примеры ЭКГ до и после нормализации данных.

 

Рис. 4. Пример ЭКГ до и после нормализации данных

Fig. 4. Example of ECG before and after data normalization

 

В работе сделан выбор в пользу z-нормализации, так как она позволяет сохранить форму распределения данных и обычно хорошо работает с алгоритмами машинного обучения. Кроме того, она чувствительна к выбросам в данных, что может быть полезным для обработки экстремальных значений в датасете ECG5000 [3].

Обучение нейронной сети

Поскольку предобработанные данные принадлежат к пяти классам (четыре различных класса аномалий и один класс нормальных данных), задача детектирования аномалий является задачей многоклассовой классификации.

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

  1. Embedding-слой содержит категориальные признаки в виде числовых векторов меньшей размерности, что повышает точность и производительность модели.
  2. LSTM-слой способен запоминать информацию на протяжении длительных временных интервалов данных ЭКГ благодаря своей способности контролировать поток информации, а также избегать проблем с затуханием и взрывом градиентов.
  3. Полносвязный (Dense) слой – количество выходных нейронов равно количеству классов данных.

Для создания модели использовался фрейморк глубокого обучения Keras. В качестве оптимизатора был выбран Adam [4], поскольку он комбинирует преимущества адаптивного шага обучения (который регулируется индивидуально для каждого параметра) и моментума (который помогает ускорить обучение и избежать застревания в локальных минимумах), а также автоматически адаптирует скорость обучения для каждого параметра на основе первых и вторых моментов градиента, что упрощает настройку гиперпараметров. График функции потерь (рис. 5) показывает, что обучение прошло успешно, так как функция потерь убывает с ростом числа итераций.

 

Рис. 5. График функции потерь в зависимости от эпох для рекуррентной сети

Fig. 5. Graph of the loss function depending on the epochs for a recurrent network

 

Для оценки производительности модели нейронной сети в данной работе использовалась метрика точности accuracy [5], которая определяет долю правильно классифицированных образцов по отношению к общему их числу в тестовом наборе данных. Точность модели составила 89 %: из 100 тестовых образцов 89 были классифицированы верно. Поскольку классы в наборе данных были предварительно сбалансированы, данная метрика дает надежное представление о качестве обучения нейронной сети, однако она не учитывает некоторые типы ошибок, которые могут возникнуть при классификации. Речь идет об ошибках первого (тест показывает, что болезнь присутствует, когда на самом деле ее нет) и второго рода (тест не показывает наличие болезни, хотя на самом деле она есть). Поэтому было важно выполнить также оценку таких метрик, как precision, recall и F1-score [6], чтобы получить более полное представление о надежности модели, особенно в контексте медицинской диагностики, где ошибки могут иметь серьезные последствия.

Значение метрики precision составило 87 %, что означает, что модель хорошо справляется с задачей минимизации ложных положительных результатов, которые могут привести к ненужным диагностическим процедурам или лечению.

Значение метрики recall составило 84 % и говорит о том, что модель не пропустила значительное количество положительных случаев. F1-score в 85.5 % указывает на то, что модель достигает хорошего баланса между precision и recall. Это особенно важно именно в многоклассовой задаче, где необходимо учитывать компромисс между точностью и полнотой.

Оптимизация обученной модели

Чтобы ускорить время выполнения обученной модели нейронной сети, было решено применить квантизацию ‒ процесс преобразования весов и активаций модели из формата с плавающей запятой в целочисленный формат [7]. Это позволяет значительно уменьшить объем памяти, необходимый для хранения модели, и ускорить вычисления, что особенно важно для приложений, работающих на устройствах с ограниченными ресурсами, таких как мобильные телефоны и встроенные системы. Процесс квантизации начинается с определения минимальных и максимальных значений весов и активаций в каждом слое сети. Эти значения позволяют установить диапазон, в котором находятся данные. Затем для весов модели рассчитывается коэффициент масштабирования, который помогает преобразовать значения в целочисленный формат. Это делается путем вычитания минимального значения из каждого веса, умножения на коэффициент и округления результата до ближайшего целого числа [8]. Этот же процесс повторяется для активаций, что также позволяет снизить их размер и упростить вычисления.

Изначально веса обученной модели представлены в 32-битном формате, что обеспечивает высокую точность и широкий диапазон значений. Для оптимизации работы сети была применена квантизация, которая привела к преобразованию весов в 8-битный формат. Этот процесс включает в себя сжатие диапазона значений, что позволяет значительно уменьшить объем занимаемой памяти. Каждый вес, который ранее занимал 32 бита, теперь будет представлен всего 8 битами, что эквивалентно 256 возможным значениям [9].

После применения квантизации обученной нейронной сети изменились веса модели, что привело к изменению результатов работы. Анализ работы нейронной сети после квантизации показал следующее.

  1. Метрики качества модели, такие как precision, recall и F1-score, на тестовом наборе данных остались на уровне, сопоставимом с оригинальной моделью, без каких-либо значительных ухудшений. Это означает, что квантизация не повлияла на способность модели правильно классифицировать результаты.
  2. Время ответа модели (скорость инференса) ‒ время, необходимое для обработки моделью поступающих на вход данных и выдачи ответа, стало меньше, поскольку операции с целыми числами выполняются быстрее, чем операции с плавающей запятой. Это позволило сети более эффективно реагировать на запросы.
  3. Квантизация позволила сократить объем памяти, необходимый для хранения весов модели, в четыре раза по сравнению с оригинальной ее версией. Это делает полученную модель более соответствующей развертыванию на встроенных системах, где ресурсы ограничены.

Создание веб-сервиса

Для обеспечения доступности и удобства использования разработанного функционала был создан веб-сервис на основе фреймворка Django [10], что позволило сделать более наглядным процесс анализа ЭКГ. При таком подходе пользователи могут посмотреть свои данные и результаты их анализа в любое время и из любого места, что особенно важно для людей, находящихся в разных географических точках.

Создание веб-сервиса требует архитектуры (рис. 6), которая обеспечивает надежность, масштабируемость и безопасность.

 

Рис. 6. Архитектура веб-сервиса

Fig. 6. Architecture of web-service

 

Важнейшими компонентами такого сервиса являются клиентская и серверная части [11], а также база данных; все они взаимосвязаны и работают в единой экосистеме. Клиентская часть отвечает за взаимодействие с пользователем и включает в себя интерфейс, который позволяет загружать данные ЭКГ, просматривать результаты анализа и получать отчеты. Для обеспечения удобства использования интерфейс был реализован интуитивно понятным и интерактивным, чтобы пользователи могли быстро ориентироваться в функционале. Цель серверной части − обработка запросов от клиентской стороны и реализации логики для аутентификации пользователей, управления данными и выполнения анализа. Она принимает загруженные данные, обрабатывает их и применяет алгоритмы для обнаружения аномалий. Сервер также отвечает за генерацию отчетов, которые возвращаются пользователю в удобном формате. Взаимодействие между клиентом и сервером осуществляется через API, что позволяет разделить логику приложения и интерфейс, обеспечивая гибкость и масштабируемость. Для сохранения данных пользователей, записей ЭКГ, а также результатов анализа была создана база данных на основе системы управления данными PostgreSQL, играющая ключевую роль в хранении и управлении информацией. Структура базы данных была оптимизирована для быстрого доступа и обработки информации, потому что для медицинского приложения время отклика имеет важное значение. PostgreSQL поддерживает транзакции и обеспечивает целостность данных, что также играет существенную роль в медицинских приложениях. Более того, она поддерживает хранение и обработку данных в формате JSON, что позволяет легко интегрировать неструктурированные данные. Это полезно для хранения дополнительных метаданных и результатов анализа, которые не вписываются в традиционные реляционные модели. В результате проведенного анализа качества веб-сервиса, созданного на Django, были оценены различные характеристики программного обеспечения, которые подтвердили высокие показатели производительности, надежности и удобства использования.

  1. Среднее время отклика сервиса составило 200 миллисек. Этот результат обеспечивает пользователям мгновенный доступ к функционалу приложения, что значительно улучшает общее впечатление от работы с сервисом и снижает вероятность потери пользователей из-за задержек.
  2. Веб-сервис способен обрабатывать до 500 запросов в секунду. Это свидетельствует о его высокой производительности и готовности справляться с большим объемом трафика, что особенно важно в условиях пиковых нагрузок, например, при массовых обращениях пользователей.
  3. Покрытие разработанного программного кода веб-сервиса автоматизированными тестами составило 85 %, что говорит о высоком качестве кода и его надежности, так как значительная часть функционала проверяется перед развертыванием, тем самым минимизируется вероятность ошибок.
  4. Время, необходимое для масштабирования ресурсов, составило 10 мин. Такой результат демонстрирует способность приложения быстро реагировать на изменения в нагрузке и гарантирует стабильную работу.

Выводы

Выполнена предобработка данных ЭКГ на основе датасета ECG5000, включающая нормализацию, балансировку и аугментацию данных, которые затем были использованы для обучения рекуррентной нейронной сети. Полученные высокие значения метрик качества precision, recall и F1-score указывают на то, что модель демонстрирует высокую степень точности в своих предсказаниях, что является критически важным с точки зрения потенциала использования современных технологий искусственного интеллекта для автоматизированной диагностики сердечных заболеваний. Тем не менее, для практического применения разработанной модели в клинических условиях требуется дальнейшее исследование и тестирование на более разнообразных и обширных наборах данных.

Квантизация обученной рекуррентной нейронной сети до 8 бит продемонстрировала значительное уменьшение объема памяти, необходимого для хранения весов модели, в четыре раза и позволила сократить время ответа модели за счет более эффективных целочисленных операций. Эти достижения делают модель более соответствующей развертыванию на устройствах с ограниченными ресурсами (мобильные телефоны и встроенные системы). Снижение потребления памяти не только повышает производительность приложений, но и обеспечивает возможность их использования в реальном времени, что критически важно для приложения медицинской диагностики.

Для удобства использования разработанного функционала по обнаружению аномалий в медицинских данных ЭКГ был реализован веб-сервис на основе фреймворка Django.

×

About the authors

O. P. Timofeeva

Nizhny Novgorod State Technical University n.a. R.E. Alekseev

Author for correspondence.
Email: optimofeeva@mail.ru
ORCID iD: 0000-0002-1935-7697
Russian Federation, Nizhny Novgorod

M. M. Gordeev

Nizhny Novgorod State Technical University n.a. R.E. Alekseev

Email: maximgrdv@gmail.com
ORCID iD: 0009-0005-2450-0274
Russian Federation, Nizhny Novgorod

References

  1. Xu, H., Wu, G., Zhai, E., Jin, X., Tu, L. Preference-Aware Light Graph Convolution Network for Social Recommendation. Electronics 2023, 12, 2397.
  2. Alamr A., Artoli A. Unsupervised transformer-based anomaly detection in ECG signals. Algorithms. 2023. V. 16. № 3. Рр. 152.
  3. Ahmadi-Mobarakeh M., Mohammadzade H. ECG Classification Using DTW-Based Learnable Kernels in Deep Neural Networks. 2021 28th National and 6th International Iranian Conference on Biomedical Engineering (ICBME). IEEE, 2021. Рр. 90-94.
  4. Sabata T., Holena M. Active Learning for LSTM-autoencoder-based Anomaly Detection in Electrocardiogram Readings. IAL@PKDD/ECML. 2020. Рр. 72-77.
  5. Matias P. et al. Robust Anomaly Detection in Time Series through Variational AutoEncoders and a Local Similarity Score. Biosignals. 2021. Рр. 91-102.
  6. Peter A. Flach, Meelis Kull. Precision-Recall-Gain Curves: PR Analysis Done Right. Neural Information Processing Systems. 2015. Рр. 3-4.
  7. Y. Chen, T. Zhang, H. Wang, Y. Zhang, Y. Xu. Towards Accurate and Efficient Neural Network Quantization. IEEE Transactions on Neural Networks and Learning Systems. 2020. Рр. 1-12.
  8. Z. Wu, Y. Wang, Y. Zhang, L. Wang, Y. Wang. Quantization of Deep Neural Networks: A Survey. IEEE Transactions on Neural Networks and Learning Systems. 2018. Рр. 1-24.
  9. Z. Wu, Y. Wang, Y. Zhang, L. Wang, Y. Wang. Quantization of Deep Neural Networks: A Survey. IEEE Transactions on Neural Networks and Learning Systems. 2018. Рр. 1-24.
  10. Antonio Melé. Django 3 By Example: Build powerful web applications from scratch. Packt Publishing. 2020. Рр. 1-400.
  11. Adam Johnson. Django for APIs: Build web APIs with Python and Django. Independently published. 2018. Рр. 1-200.

Supplementary files

Supplementary Files
Action
1. JATS XML
2. Fig. 1. Example of ECG of each class

Download (126KB)
3. Fig. 2. Distribution of data by classes

Download (43KB)
4. Fig. 3. Example of comparison of original ECG and augmented one for each class

Download (254KB)
5. Fig. 4. Example of ECG before and after data normalization

Download (150KB)
6. Fig. 5. Graph of the loss function depending on the epochs for a recurrent network

Download (73KB)
7. Fig. 6. Architecture of web-service

Download (69KB)

Copyright (c) 2025 Timofeeva O.P., Gordeev M.M.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

СМИ зарегистрировано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор).
Регистрационный номер и дата принятия решения о регистрации СМИ: серия ПИ № ФС 77 - 56417 от 11 декабря 2013.