В этой статье я показываю, как сверточная нейронная сеть может использоваться для прогнозирования возраста человека на основе его ЭКГ.
Attia et al. 2019 [1] показали, что возраст человека можно предсказать по ЭКГ с помощью сверточных нейронных сетей (CNN). Они также показали, что прогнозируемый возраст связан с сердечно-сосудистым возрастом, а это означает, что модель обычно будет завышать возраст людей с тяжелыми сердечно-сосудистыми заболеваниями и занижать возраст здоровых людей. В Attia et al 2019 они описывают очень интересный случай, подчеркивая это явление:
До 54 лет у него было множество инфарктов миокарда, и, по прогнозам CNN, возраст значительно превышал его фактический возраст (прогнозируемый возраст ~ 70 лет). В 54 года ему сделали пересадку сердца от донора, умершего в возрасте 16 лет, с последующим снижением прогнозируемого CNN возраста до 50 лет. Он оставался здоровым в течение нескольких лет с последующей потерей веса до нормального веса и прекращением приема лекарств от артериального давления и сахарного диабета в возрасте 60 лет с дальнейшим снижением возраста, предсказанного CNN, до уровня ниже хронологического возраста.
Может ли это быть полезным в клинических условиях? Ответ: мы не знаем, но он показывает, что CNN может обнаружить некоторые закономерности на ЭКГ, которые хорошо коррелируют с нашим возрастом. Этого не могут сделать даже опытные кардиологи, но еще интереснее видеть, что наличие сердечно-сосудистых заболеваний или паттернов сердечного повреждения заставляет модель переоценивать возраст. Это может быть использовано, например, для стратификации рисков для пациентов, или, может быть, мы могли бы использовать eXplainable AI (XAI), чтобы лучше понять эти закономерности и научить врачей их искать.
Разработка этих моделей (включая Attia et al 2019) в основном проводилась на основе данных о пациентах, принадлежащих больницам, а не на открытых данных. До сих пор в открытом доступе не было ни одной обученной модели. Это очень прискорбно, потому что эти модели выиграли бы от тестирования, настройки и сравнительного анализа большим сообществом специалистов по данным за пределами больниц. Мы хотели что-то с этим сделать и поэтому провели исследование, в котором использовали несколько открытых наборов данных ЭКГ из Китая, США и Германии.
В дополнение к архитектуре модели Аттиа мы использовали другую многообещающую архитектуру CNN под названием Inception Time, предложенную Fawas H.I et al 2019[2]. Модели сначала обучались на наборах данных из Китая и США, содержащих 59355 ЭКГ, а затем тестировались на отдельной когорте из Германии (набор данных PTB-XL), содержащей 21748 ЭКГ. На рис. 1 показано нормализованное распределение по возрасту как в обучающей, так и в тестовой выборке. Распределения смещены вправо, возможно, это связано с тем, что ЭКГ сняты в условиях стационара, где можно предположить избыточный вес пожилых людей.
Модель была реализована на Python и сохранена в общедоступном репозитории GitHub (содержащем исходный код и обученные модели). Использование Jupyter Notebooks было сделано для того, чтобы можно было обучать и проверять модели в Google Colab, чтобы получить доступ к бесплатным графическим процессорам.
Окончательная модель (начальное время) достигла средней абсолютной ошибки 7,90 ± 0,04 при перекрестной проверке на обучающем наборе и средней абсолютной ошибке 8,3 года на тестовом наборе. Это показывает, что модель довольно хорошо обобщается и может применяться к данным за пределами больниц, в которых она была обучена, и по-прежнему работает нормально. На рис. 2 показан истинный возраст (ось X) в сравнении с прогнозируемым возрастом (ось Y). Красная линия показывает оптимальное соотношение между истинным и прогнозируемым возрастом, а зеленая линия показывает оптимальное линейное соответствие с учетом текущего прогноза.
Наконец, мы хотели увидеть, есть ли какая-либо связь между аннотированными состояниями в немецком наборе данных ЭКГ и прогнозируемым возрастом. На рисунке 3 мы показываем прогнозируемый возраст по сравнению с истинным для 20 различных сердечно-сосудистых заболеваний. Подрисунки отсортированы от самой низкой до самой высокой средней абсолютной ошибки, начиная с верхнего левого угла.
Рекомендации
- Attia et al., ZI. Оценка возраста и пола с использованием искусственного интеллекта по стандартным ЭКГ в 12 отведениях. Circulation: Arrhythmia and Electrophysiology 12, e007284 (2019).
- Исмаил Фаваз и др., H. InceptionTime: поиск AlexNet для классификации временных рядов. Диск минимальных знаний данных 34, 1936–1962 (2020).
- Сингстад, Б.-Дж. и Таваши, Б. Использование глубоких сверточных нейронных сетей для прогнозирования возраста пациентов на основе ЭКГ из независимой тестовой когорты. Материалы семинара по глубокому обучению Northern Lights 4, (2023 г.).