На протяжении 2010-х годов наиболее популярными областями Data Science были компьютерное зрение, обработка естественного языка, прогнозная аналитика и звуковой анализ. Однако вскоре, в 2020-х, ситуация изменится. Новые области станут более важными, и одно из приложений, которое будет быстро расти, - это анализ биосигналов, в частности - анализ электрокардиограммы (ЭКГ) наряду с анализом данных на основе акселерометра, анализ энцефалограммы (ЭЭГ) и др. Основная причина этого изменения - введение новых датчиков, которые облегчат сбор этих данных. Единственный способ получить такие данные прямо сейчас (в частности, ЭКГ) - это использовать медицинское оборудование (аппараты Холтера или стационарные кардиографы на 12 отведений) или создать прибор самостоятельно.

ЭКГ, новый обязательный датчик

Однако в сентябре 2018 года ситуация изменилась. Apple представила Apple Watch Series 4 с датчиком ЭКГ. Конечно, сейчас вы не можете использовать их для сбора необработанных данных. Но Apple - единственная компания, чьи технологии и функции становятся отраслевым стандартом в день их выпуска. Таким образом, можно предположить, что в скором времени датчик ЭКГ может стать неотъемлемой частью большинства новых умных часов и браслетов. И, как следствие, спрос на анализ такого рода данных также возрастет.

В Mawi Band мы начали работать с ЭКГ за годы до того, как она стала крутой. Еще в 2014 году мы начали разработку нашего конвейера для анализа биосигналов с использованием наборов данных с открытым исходным кодом. Тогда мы даже участвовали и выиграли в нескольких конкурсах стартапов :) Но когда мы начали работать над реальными продуктами, мы осознали описанную ранее проблему со сбором данных. Поэтому в конце 2016 года мы начали разработку портативного прибора для измерения ЭКГ. Вот как это выглядит сегодня:

С тех пор мы разработали множество различных MVP на основе анализа биосигналов:

Итак, в этой статье мы поделимся своим опытом использования машинного обучения для улучшения и ускорения обработки ЭКГ в наших продуктах.

ЭКГ 101

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

Короче говоря, ЭКГ - это электрический сигнал, который содержит много информации о нашем организме. Он состоит из волн (P, T и QRS, вы можете увидеть их на анимации выше), и в большинстве случаев вам необходимо проанализировать эти волны, чтобы получить полезные данные. Несмотря на то, что с помощью ЭКГ можно решить множество различных задач, для всех них можно использовать единую конструкцию трубопровода. И каждый этап этого конвейера можно улучшить с помощью машинного обучения, в частности глубокого обучения.

Фильтрация сигналов

ЭКГ - это электрический сигнал, поэтому на него могут влиять различные типы шума. Самый простой случай - помехи от линии электропередачи. Это происходит при воздействии внешнего переменного тока на ЭКГ. Другие типы шума включают мышечный шум, который вызывается электрической мышечной активностью, или шум, вызванный движением человека, проводящего измерения. На практике этот шум выглядит так:

Анализ ЭКГ - не новый метод, поэтому было разработано множество подходов к фильтрации ЭКГ. Наиболее популярны FIR и IIR фильтрация. Они используются для удаления шума определенных частот из сигнала, но есть одна проблема. Часто шум может иметь аналогичные частоты с зубцами P и T на ЭКГ. Следовательно, у вас есть два варианта:

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

К счастью, частота переменного тока составляет 50 Гц или 60 Гц в зависимости от страны, и эта частота может быть исключена из сигнала без какого-либо риска.

На рисунке ниже вы можете увидеть пример фильтрации с такими фильтрами (необработанный сигнал вверху, полосовой КИХ-фильтр со всеми ценными частотами внутри полосы и БИХ-фильтр, который полностью удаляет низкочастотный шум (блуждание базовой линии), но меняет морфологию.

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

Традиционно сверточные автокодеры используются для 2D-данных. В нашем случае данная методика была адаптирована для работы с сигналом с использованием одномерных слоев свертки и объединения. Неотъемлемой частью каждой модели машинного обучения являются данные. Чтобы обучить автоэнкодер, нам нужны пары соответствующих зашумленных и чистых фрагментов сигнала, чтобы подавать их в качестве входных и выходных соответственно. Очевидно, что записать одновременно чистые и шумные сигналы ЭКГ буквально невозможно, поэтому мы прибегли к следующему трюку. Во-первых, мы взяли много чистых записей из Mawi Band, затем мы добавили случайно выбранные сигналы электромиограммы (ЭМГ) из другого собранного набора данных к выбранным записям ЭКГ, получив «шумные» выборки, близкие к реальным шумам. это может происходить с мышечными движениями. Наконец, мы обучили автоэнкодер минимизировать ошибку восстановления. Более того, наши коллеги из SoftServe пошли дальше и применили генеративные состязательные сети для решения той же проблемы:

Морфологическая аннотация

Аннотация - важнейшая процедура анализа ЭКГ. Его цель - найти важные точки, называемые R-пиками, которые соответствуют событиям сокращения сердца. Знание этих точек позволяет нам получить последовательность расстояний между всеми последовательными ударами, данная последовательность представляет сердечный ритм и может использоваться в дальнейшем для анализа ВСР. Помимо R-пиков, есть точки P, Q, S и T, которые характеризуют рабочий цикл сердца и также должны быть аннотированы для более глубокого анализа.

Существует множество различных алгоритмов автоматической аннотации ЭКГ. Наиболее часто используются алгоритм Гамильтона и его модификации, в частности Пан-Томпкинс. Данные алгоритмы основаны на наборе правил, которые точно локализуют местоположение R-пиков. На практике описанный аннотатор неплохо работает только на относительно хорошем сигнале, при наличии слабого шума даже с четко различимыми R-пиками они могут быть неверно аннотированы. Аннотатор, основанный на правилах, также может дать сбой, спутав пик R с вершиной зубца T, когда он выше, как на изображении ниже:

Мы обнаружили, что появление шума значительно снижает качество аннотации, что, в свою очередь, искажает график RR-интервалов и, как следствие, некоторые характеристики ВСР (особенно частотную область). Таким образом, мы решили обновить наш аннотатор, заменив модель на основе правил на модель с обученным машинным обучением. Ключевым моментом было правильно выбрать данные ввода / вывода и функцию затрат для оптимизации. Во-первых, мы получаем структуру, которая (снова) выглядит как автоэнкодер и принимает короткий (несколько секунд) фрагмент ЭКГ в качестве входных данных, в то время как выход представляет собой разреженный вектор той же длины с единицами в положениях R-пиков и нулями на всех оставшиеся позиции (в простом варианте). После тренировки дает следующие результаты:

Чуть более усовершенствованная версия, которая также может прогнозировать зубцы P и T вместе с комплексом QRS, работает следующим образом:

Обнаружение аномалий / проверка сигнала

Итак, мы знаем, как фильтровать шум, но что, если он настолько мощный, что от исходного сигнала ЭКГ ничего не осталось? На первом графике следующего рисунка вы можете увидеть такую ​​ситуацию. Из-за ограниченного разрешения аналого-цифрового преобразователя и высокого сопротивления кожи сигнал преобразуется в ровную линию. В таком сигнале можно распознать паттерн ЭКГ, но не следует его анализировать. Итак, вам нужно создать модуль, который понимает, хороший сигнал или нет.

Эту задачу решают и практикующие врачи, и если у вас когда-либо возникали проблемы во время измерения ЭКГ в больнице, вы знакомы с самым простым процессом проверки. Доктора, которые измеряют ЭКГ, часто делают это вручную. Они регулируют систему до тех пор, пока сигнал не станет достаточно хорошим. Но это не значит, что это всегда делается вручную.

По сути, проверка ЭКГ означает понимание того, насколько высокое качество сигнала. И вы можете сделать это, аннотируя ЭКГ и измеряя «нормальное сердцебиение» - вычисляя среднее значение среди всех сокращений. Тогда расстояние между каждым ударом и «нормальным сердцебиением» можно рассматривать как качество сигнала. Если качество ЭКГ слишком низкое или пик был аннотирован неправильно, будет рассчитано расстояние между «нормальным сердцебиением» и интервалом случайного сигнала. И так было бы очень высоко. Но у этого метода есть существенные недостатки - вы не можете использовать его в реальном времени, и он сильно зависит от качества аннотатора.

Другой алгоритм оценки качества сигнала более сложен с точки зрения реализации, но основан на простой идее. Чтобы различать зашумленный и чистый сигнал, вам необходимо создать набор данных зашумленных и чистых сигналов, а затем обучить алгоритм различать их. Есть множество способов реализовать такой подход. Для простоты мы не будем останавливаться на всех экспериментах, которые мы провели для реализации этого подхода, а расскажем вам о их результатах. Мы выбрали архитектуру, которая использует сверточные слои для уменьшения размерности, а затем простой классификатор для оценки качества сигнала.

Но чтобы создать идеальный валидатор сигналов, нам нужно пойти еще дальше и полностью понять цель его использования. Допустим, мы создаем продукт, который использует сигнал ЭКГ для анализа ВСР. В этом случае появление блуждания базовой линии или шума, затрудняющего обнаружение зубцов P на ЭКГ, не имеет значения, пока мы можем правильно идентифицировать R-пики.

На изображениях ниже вы можете найти два примера сигнала ЭКГ с уже аннотированными R-пиками. Оба они были отмечены как зашумленные с помощью алгоритма, описанного ранее. Первый выглядит менее шумным, но имеет 2 пропущенных R-пика, в то время как второй имеет более сильное блуждание базовой линии и все же все пики аннотированы правильно. Таким образом, первый сегмент следует исключить, а второй можно будет успешно проанализировать. Этот случай показывает нам, что для создания идеального алгоритма проверки ЭКГ вам необходимо учитывать не только общую формулировку проблемы (например, обнаружение аномалии), но также экзогенные переменные или вспомогательные цели, связанные с проблемой, которую вы пытаетесь решить.

Поэтому универсальный алгоритм проверки ЭКГ не лучший вариант для большинства продуктов. Один и тот же сигнал можно было считать приемлемым в одном случае и слишком шумным в другом. Например, чтобы подтвердить сигнал ЭКГ в случае анализа ВСР, «достоверность» аннотации R-пика следует рассматривать как качество сигнала ЭКГ. Ситуация аналогична для всех фактов, с которыми мы работаем, поэтому мы используем универсальный валидатор только на этапе прототипирования.

Обнаружение мерцательной аритмии

Фибрилляция предсердий - наиболее распространенный вид аритмии, приводящий к серьезному ухудшению состояния здоровья и повышенному риску сердечной недостаточности, деменции и инсульта. Раннее обнаружение и правильное лечение могут предотвратить негативные эффекты. Однако признаки AFib могут появляться периодически, поэтому их нельзя обнаружить во время скрининга в больнице или даже 24-часовой записи Холтера . Короткие записи несколько раз в день могут увеличить вероятность обнаружения на основе данного исследования. Растущая популярность носимых регистраторов ЭКГ делает практически невозможным анализ всех записей практикующими врачами, поэтому требуются алгоритмы для надежного анализа и, в частности, обнаружения аритмии.

Как следует из названия, аритмия - это заболевание, вызывающее нарушения ритма. График Лоренца (также известный как диаграмма рассеяния) - это простой и надежный инструмент для проверки нарушений ритма. Координаты точек на этом графике соответствуют текущей длине RR-интервала по оси x и последующей длине RR-интервала по оси y. Если большинство нанесенных на график точек расположено близко к главной диагонали, считается, что аритмия не обнаружена, в то время как резкое изменение точек отражает наличие аритмии.

Несмотря на простоту и интерпретируемость, метод, основанный на диаграммах рассеяния, имеет ряд недостатков. Во-первых, это требует человеческого анализа; во-вторых, он не различает безобидную синусовую аритмию и AFib. Это происходит потому, что AFib вызывает не только нарушения ритма, но и морфологические изменения сигнала ЭКГ, такие как отсутствие зубца p и появление зубца f, выделенных синими и красными стрелками соответственно на изображении ниже.

Поскольку особенности AFib представляют собой хорошо различимый образец, можно предположить, что глубокая CNN справится с этой задачей. К счастью, искать недалеко. Группа Sanford ML доказала силу глубоких сверточных сетей, опубликовав статью Обнаружение аритмии на уровне кардиологов с помощью сверточных нейронных сетей, в которой они описали 34-слойную модель с остаточными связями. Набор тестов для модели был оценен комитетом из трех кардиологов, и эффективность классификации, которую продемонстрировала модель при обнаружении широкого диапазона сердечных аритмий (включая AFib) по записям ЭКГ в одном отведении, была на уровне человека. Мы были очень вдохновлены данной статьей, поэтому решили обучить наш собственный детектор AFib / не AFib с использованием CNN.

Мы взяли хорошо известную базу данных MIT-BIH по фибрилляции предсердий и базу данных Physionet Challenge, чтобы создать набор данных для обучения, проверки и тестирования. Модель содержала 5 остаточных блоков с той же структурой, что и остаточный блок в ResNet, но перестроенных для работы с входами 1D. После обучения в течение 80 эпох модель показала неплохие характеристики с точностью 98.98 на тестовой выборке. Более того, мы использовали эту модель для тестирования реальных данных из больниц, и она показывает такую ​​же приличную точность, благодаря возможностям передачи данных!

Резюме

В этой статье мы описали, как мы заменили «классический» алгоритмический подход к основным этапам обработки ЭКГ:

  • Фильтрация сигналов
  • Обнаружение аномалий
  • Морфологическая аннотация
  • Классификация

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

P.S. Если вас интересуют исследования по анализу биосигналов или вы хотите применить вышеупомянутые подходы в своих приложениях для ЭКГ, мы приглашаем вас на Mawi Research Platform! Мы предлагаем вам наше устройство и всю вспомогательную аналитику для ваших собственных экспериментов, поэтому вам не нужно придумывать, как извлекать необработанные данные из дорогих медицинских устройств на рынке, и вы можете просто сосредоточиться на исследованиях :)