$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Declaração ética
Este estudo baseou-se inteiramente em dados públicos e anonimizados de ECG baixados da PhysioNet. Todos os conjuntos de dados utilizados neste estudo foram originalmente coletados com o consentimento dos participantes e com aprovação ética dos respectivos proprietários dos dados. Essa pesquisa não exigiu coleta de dados, trabalho experimental com humanos ou animais ou informações de identidade pessoal dos pacientes. Portanto, nenhuma revisão ética adicional foi solicitada.
Metodologia
A Figura 2 ilustra o fluxo de trabalho da arquitetura proposta.
Coleta de dados
Os dados do ECG são coletados do Banco de Dados PhysioNet, um repositório popular de sinais fisiológicos. Múltiplos conjuntos de dados são recuperados do banco de dados. Esses conjuntos de dados são mesclados em um único conjunto principal que inclui várias classes de sinais de ECG.
Conjuntos de dados utilizados
Este estudo utilizou vários conjuntos de dados públicos de ECG para desenvolver e avaliar um modelo de aprendizado profundo para classificação de arritmias. A seleção desses conjuntos de dados foi feita com cuidado, considerando sua diversidade em termos de demografia dos pacientes e a variedade de tipos de arritmias, para garantir que o modelo proposto tenha bom desempenho em diferentescenários 9. Para este estudo, apenas dados de Chumbo-I do Banco de Dados de Arritmias do MIT-BIH, do Banco de Dados de Arritmias Supraventriculares do MIT-BIH, do Banco de Dados de Arritmia INCART de St. Petersburg com 12 derivações e do Banco de Dados Holter de Morte Cardíaca Súbita foram combinados. Esses conjuntos de dados são conhecidos por seus registros de ECG anotados e de alta qualidade, que abrangem um amplo espectro de classes de arritmias.
Os conjuntos de dados combinados acima incluem demografia dos pacientes, dispositivos de gravação, frequências de amostragem e configurações. A variabilidade mencionada acima no modelo melhora sua generalização ao expô-lo a uma ampla gama de morfologias, ruído e ritmos do ECG.
Descrição dos conjuntos de dados
Banco de dados de arritmias do MIT-BIH
O Conjunto de Dados de Arritmias do MIT-BIH possui 48 gravações de ECG de meia hora, numeradas de 100 a 234. Cada registro contém sinais de ECG de dois canais digitalizados a 360 amostras por segundo. Os dados são armazenados nos formatos .dat, .hea e .atr.
Banco de dados de arritmias supraventriculares do MIT-BIH
Este é um subconjunto específico dos bancos de dados do MIT-BIH. O Banco de Dados de Arritmias Supraventriculares do MIT-BIH inclui 78 gravações completas de ECG, variando de 30 minutos a várias horas, numeradas de 801 a 811. Cada registro inclui sinais de ECG de dois canais, convertidos para formato digital a 128 amostras por segundo.
O banco de dados de arritmias de 12 derivações INCART de São Petersburgo
Este banco de dados inclui 75 gravações anotadas feitas de 32 monitores Holter. Cada gravação dura 30 minutos e inclui 12 solos padrão, cada um sampleado a 257 Hz. A intensidade do sinal varia entre 250 e 1100 unidades de conversor analógico-digital por milivolt.
Banco de dados Holter sobre morte cardíaca imprevista.
Este conjunto de dados é um dos muitos registros Holter de acesso aberto que capturam ocorrências factuais de taquicardia ventricular (TV) e fibrilação ventricular (FV). Ambos podem levar a morte cardíaca inesperada. Cada disco tem 24 horas de duração e é amostrado a 250 Hz.
Pré-processamento de dados
Neste estudo, foram utilizados quatro bancos de dados públicos de ECG com diferentes taxas de amostragem: MIT-BIH Arritmia (360 Hz), MIT-BIH Arritmia Supraventricular (128 Hz), St. Petersburg INCART 12-derivações (257 Hz) e Holter de Morte Súbita Cardíaca (250 Hz). Para garantir que todos os dados fossem consistentes e pudessem ser combinados durante o treinamento do modelo, todos os sinais de ECG foram reamostrados para uma taxa comum de 360 Hz, que corresponde ao Banco de Dados de Arritmias do MIT-BIH e é comumente usada como padrão em pesquisas de ECG. Resampling foi realizado por interpolação limitada por banda; inicialmente, os sinais de ECG eram filtrados passa-baixa para evitar aliasing, e subsequentemente, um kernel de reconstrução baseado em SINC foi usado para interpolação, seguido pela reamostragem final em 360 Hz. Após a reamostragem, cada sinal foi dividido em janelas de 180 amostras, aproximadamente equivalentes a 0,5 s de dados, garantindo que todos os conjuntos de dados tivessem a mesma resolução temporal. Essa padronização permitiu combinar sinais de diferentes bancos de dados para treinamento e teste, ajudando o modelo a aprender padrões consistentes ao longo do tempo.
O pré-processamento envolveu várias etapas importantes para garantir a qualidade dos dados de entrada:
Segmentação de dados:
Após a reamostragem, cada sinal de ECG era dividido em janelas de comprimento fixo de 180 amostras. Isso corresponde a cerca de 0,5 s de duração do sinal com uma taxa de amostragem de 360 Hz. Essa pesquisa utilizou uma janela deslizante fixa, não sobreposta, para segmentação. Cada janela coletou uma sequência contínua de amostras de ECG. O estudo optou por uma janela de 180 amostras porque um intervalo de 0,5 s é suficiente para capturar um ciclo cardíaco completo ou suas principais partes: a onda P, o complexo QRS e a onda T, para frequências cardíacas típicas em adultos. Um rótulo de classe era atribuído a cada segmento com base na anotação no centro do segmento. Dessa forma, o rótulo do segmento correspondia à forma principal do batimento cardíaco dentro daquela janela. Método da janela deslizante, aplicado esta função de segmentação:

onde si é a amostra do ECG no tempo i.
Normalização:
Normalizei os dados segmentados do ECG com escala Min-Max para garantir que todas as características tivessem valores entre 0 e110.

Essa etapa ajuda a acelerar a convergência do modelo durante o treinamento.
Balanceamento de classes com SMOTE
Batimentos normais (N) superavam em muito as classes anormais de batimentos cardíacos no conjunto de dados do ECG, que mostraram um desequilíbrio significativo de classes. Após segmentação, normalização e divisão train-test, o conjunto de dados de treinamento foi submetido à Técnica de Superamostragem de Minorias Sintéticas (SMOTE) para tratar esse problema.
Um espaço de características de 180 dimensões foi usado para representar cada segmento de ECG, consistindo em 180 amostras normalizadas. O SMOTE usou a distância euclidiana para determinar os k vizinhos mais próximos (k = 5) de cada amostra de classe minoritária dentro de sua própria classe. O SMOTE foi aplicado apenas aos dados de treinamento, que foram divididos em 70% de conjuntos de treinamento e 30% de testes usando amostragem estratificada. Dessa forma, nenhuma amostra artificial foi adicionada ao conjunto de testes, garantindo que os resultados do teste não fossem influenciados pelo processo de superamostragem. Os dados de teste permaneceram inalterados, preservando sua distribuição original de classes, e foram usados apenas para avaliar o modelo de forma justa. Como resultado, os resultados de alto desempenho deste estudo demonstram a verdadeira capacidade do modelo de generalizar, não devido a superajuste ou escores inflados ao adicionar amostras extras.
Divisão do teste do trem:
Após pré-processamento e filtragem de classes, o conjunto de dados foi dividido em subconjuntos de treinamento e teste com uma divisão de 70%–30% usando amostragem aleatória estratificada. Essa estratificação é baseada nos rótulos das classes para garantir que as proporções relativas de cada classe de batimentos cardíacos sejam mantidas nos conjuntos de treinamento e teste.
A divisão foi realizada usando uma semente aleatória para reprodutibilidade. Cada segmento de ECG apareceu exclusivamente no conjunto de treinamento ou no de testes. Para evitar viés e desvio de dados, cada etapa de pré-processamento que pudesse afetar a distribuição dos dados (ou seja, balanceamento de classes via SMOTE) era realizada somente após a divisão e exclusivamente nos dados de treinamento.
Nesse sentido, ao manter proporções de classes, usar estratificação aleatória e separar estritamente as amostras em conjuntos de treinamento e teste, o processo de divisão reduz a probabilidade de viés nas amostras, permitindo que as métricas de desempenho reflitam a generalização do modelo em vez de resíduos específicos de dados.
Divisão de conjuntos de dados e distribuição de classes
O conjunto final de dados foi dividido em conjuntos de treinamento e teste, com 70% para treinamento e 30% para testes. Após a aplicação do SMOTE, o desequilíbrio de classe foi reduzido, garantindo que cada tipo de arritmia estivesse bem representado tanto no conjunto de treinamento quanto no de teste. Um total de 3.966.620 segmentos de ECG foram usados para treinamento, enquanto 112.575 segmentos de ECG foram usados para testes. O grande volume de dados, combinado com a variedade de tipos de arritmias, permitiu a criação de um modelo que identifica efetivamente diferentes tipos de arritmia em sinais reais de ECG. Este estudo utiliza modelos de aprendizado profundo para classificar arritmias no ECG. Os cinco tipos de batimentos cardíacos, a saber: Normal (N), Bloco de Ramo do Feixe Esquerdo (L), Bloqueio do Ramo do Feixe Direito (R), Batimento Prematuro Atrial (A) e Contracción Ventricular Precoce (V), foram escolhidos em conformidade com as anotações padronizadas de batimentos fornecidas no Banco de Dados de Arritmia do MIT-BIH, bem como as diretrizes AAMI para anotação de batidas no ECG. Todas as cinco anotações de batimentos mencionadas aqui abrangem condições cardíacas significativas que se enquadram na ampla categoria de arritmias e apresentam características distintas de forma de onda nos sinais de ECG ao redor das ondas P, QRS e T.
Além disso, essas classes estão entre as mais frequentes e consistentemente rotuladas em bancos de dados públicos de ECG, facilitando o teste de sua eficácia em comparação com outras abordagens de classificação do ritmo cardíaco baseadas em ECG. Os conjuntos de dados foram divididos usando um método entre pacientes. Essa configuração garantia que segmentos de ECG de um único paciente não aparecessem simultaneamente nos conjuntos de treinamento e teste. Uma vez que essa divisão ocorreu, o SMOTE foi aplicado apenas ao conjunto de treinamento. O conjunto de teste permaneceu livre de amostras sintéticas e janelas temporais repetidas. Tudo isso ajuda a evitar sobreposição em nível de segmento e apoia uma verdadeira generalização ao lidar com pacientes não vistos anteriormente.
Distribuição de classes antes e depois do SMOTE:
O conjunto de dados original apresentava um desequilíbrio significativo entre as classes, com um grande número de batidas Normais (N) e menos amostras para as classes anormais. Antes do uso do SMOTE, os dados de treinamento tinham cerca de 133.320 segmentos normais (N), 8.075 blocos de ramificação do feixe esquerdo (L), 10.431 blocos de ramo do feixe direito (R), 4.489 batimentos prematuros atrial (A) e 60.682 segmentos de contração ventricular prematura (V). Para corrigir o desequilíbrio, o SMOTE foi aplicado apenas ao conjunto de treinamento, aumentando o número de amostras nas classes minoritárias para corresponder à classe majoritária. Após o aumento, cada turma tinha 793.324 segmentos, resultando em um total de 3.966.620 segmentos de ECG para treinamento. O conjunto de teste, que tinha 112.575 segmentos, manteve sua distribuição original de classes e não foi superamostrado. Essa abordagem garantiu uma avaliação justa e imparcial do desempenho do modelo.
Treinamento e inferência
analisou a eficiência computacional verificando o desempenho de treinamento e inferência em uma GPU NVIDIA RTX 3050 com 6 GB de memória. O processo de treinamento levava cerca de 3,2 horas durante 60 épocas. A latência de inferência foi de 0,45 ms em média para cada segmento de 180 amostras, o que possibilita o uso em tempo real. O uso de memória da GPU atingiu um pico de 4,2 GB, e o modelo tem apenas 1,8 milhão de parâmetros, então ele parece leve em comparação com a maioria dos sistemas de ECG baseados em transformadores.
O processo de treinamento e inferência tem as seguintes etapas:
Configuração do treinamento: Parâmetros de treinamento, como taxa de aprendizado, tamanho do lote e épocas, são definidos.
Treinamento do modelo: O modelo CNN-Transformer é treinado com os dados de treinamento.
Validação: Após o treinamento, a precisão e a perda de validação do modelo são verificadas. Se o desempenho for bom, o modelo é salvo. Se o desempenho for ruim, o pipeline se repete com diferentes parâmetros de treinamento, voltando para a etapa de definição de parâmetros.
Arquitetura do modelo
Todo o conjunto CNN-Transformer tem quatro partes principais: extração convolucional de características, uma camada de projeção, o codificador do transformador e, finalmente, a cabeça de classificação. O bloco convolucional começa com uma camada convolucional unidimensional com 32 filtros, tamanho de núcleo de 3, passo de 1 e preenchimento de 1, seguido por um ReLU. Isso reduz as coisas com o max-pooling, tamanho do kernel 2, para diminuir a resolução temporal do sinal. Depois dessa primeira camada de convolução, há outra com 64 filtros, mesmo tamanho de kernel 3, passo 1, preenchimento 1, ReLU novamente, e outro max-pooling com tamanho 2. A saída de tudo isso é achatada, passada por uma camada linear de projeção que mapeia características para um espaço de imersão de 128 dimensões, que então alimenta o transformador18,19.
O bloco do transformador possui duas camadas de codificadores, cada uma com autoatenção multi-cabeças, usando 4 cabeças para capturar dependências de longo alcance no sinal de ECG. Em cada camada, há uma rede feedforward posicional com tamanho oculto de 256 e dropout em 0,5 para ajudar no sobreajuste. A normalização das camadas ocorre após cada subcamada, o que estabiliza o treinamento.
Para a cabeça de classificação, é uma camada totalmente conectada que cai de 128 para 64, seguida por ReLU e dropout 0,5 novamente. Depois, a camada de saída tem cinco neurônios para as classes de arritmia, com Softmax para obter probabilidades.
Blocos de Rede Neural Convolucional 1D (CNN):
O bloco CNN consiste em duas camadas convolucionais 1D, cada uma seguida por uma ativação ReLU e uma camada de pool máximo. Essas camadas ajudam a identificar relações espaciais dentro do sinal de entrada do ECG. Para melhorar a extração de características, funções adicionais de ativação do ReLU são aplicadas após cada etapa de transformação nas camadas CNN.
Primeira camada convolucional: Esta camada usa 32 filtros, cada um de tamanho 3, no sinal de entrada. O processo pode ser escrito como:

onde yi é a saída, wj representa os pesos do filtro, xi+j é o segmento de entrada, b é o termo de viés e σ representa a função de ativação (ReLU). O mapa de características resultante passa por uma camada de ativação do ReLU para adicionar não linearidade:

Camada de pooling: Após cada operação convolucional, aplica-se um passo de max-pooling para reduzir as dimensões espaciais pela metade. Esse processo é definido como:

Isso ajuda a manter as características mais significativas, ao mesmo tempo em que reduz a carga computacional.
Segunda camada convolucional: Esta camada usa 64 filtros de tamanho 3 x 3 para processar os mapas de características da camada anterior, permitindo que o modelo detecte padrões mais complexos. Após a convolução, uma função de ativação do ReLU é aplicada para introduzir a não linearidade no modelo.

Essa etapa garante que o modelo capture padrões detalhados do sinal de ECG.
Camadas adicionais de ativação: A ativação do ReLU é aplicada após cada etapa após o processo de convolução para ajudar a rede a capturar melhor padrões complexos, garantindo que o modelo foque em ativações positivas.
Processo de achatamento: Após a segunda operação de max-pooling, os mapas de características são achatados em um único vetor para entrada no bloco do transformador.
Blocos de transformador:
O bloco transformador consiste em duas camadas de autoatenção multi-cabeça, que ajudam o modelo a entender as relações entre diferentes partes do sinal do ECG ao longo do tempo. A Autoatenção Multi-Cabeça funciona observando cada par de elementos em uma sequência. Para uma sequência com consulta Q, chave K e valor V, a atenção é calculada como:

Aqui, dk é a dimensionalidade dos vetores chave, garantindo invariância de escala.
Camadas feedforward: Cada saída de autoatenção passa por uma rede feedforward totalmente conectada com ativação do ReLU, seguida pela normalização da camada. Essa etapa refina as características temporais extraídas:

onde W1 e b1 são os pesos e vieses da camada feedforward.
Representação em primeiro lote: O transformador opera em sequências em um layout batch-first, garantindo compatibilidade com o formato de entrada do bloco CNN.
Camadas totalmente conectadas (densas):
Após o processamento pelo bloco do transformador, a sequência de saída é achatada e então enviada por duas camadas totalmente conectadas para realizar a classificação. A primeira camada totalmente conectada transforma o vetor de entrada em um espaço de características de 128 dimensões, remodelando-o no processo.

onde W é a matriz de pesos, x é o vetor de entrada e b é o vetor de viés. Uma camada de ativação ReLU é aplicada:

Uma camada de dropout com taxa de 0,5 segue para evitar sobreajuste.
Segunda camada totalmente conectada: A camada final mapeia as características de 128 dimensões ao número de classes de batimentos cardíacos (por exemplo, 5 classes para detecção de arritmias). A saída passa por uma função log-SoftMax para calcular as probabilidades logarítmicas: exp(xi)
Modelo híbrido CNN-Transformador
O modelo apresentado é um modelo híbrido de deep learning que combina as forças de CNNs e transformadores para usar representações espaciais e temporais. Essa arquitetura é especialmente adaptada para processar dados complexos de longa sequência, como sinais fisiológicos.

A equação representa a representação de entrada, onde N = número de amostras, T = número de passos de tempo, d = dimensão de característica por passo de tempo.

Essa equação indica os embeddings posicionais, onde pos = posição em sequência; i = índice de dimensão de incorporação.
Módulo CNN – Extração local de características
CNNs aprendem de forma eficiente dependências locais e padrões morfológicos, como picos, inclinações ou picos, em dados sequenciais. A camada convolucional usa
núcleos de extensão
espacial sobre um tensor
de entrada . Cada canal de saída m é determinado por:

= número de canais de entrada; K = tamanho do núcleo; W = pesos do filtro; b = viés
Função ReLU
Neste caso,
representa o peso aprendível e
é o viés para o canal mA, ativação não linear, como a Unidade Linear Retificada (ReLU), é aplicada:

Agrupamento e compressão de recursos
Camadas de agrupamento reduzem a dimensão espacial ou temporal dos mapas de características, preservando características importantes e reduzindo o cálculo. No max pooling com tamanho
de janela e passo s, a característica do pool no local
é:

Comprimento de saída após o pooling

Onde
é comprimento de entrada; stride define um tamanho de passo para deslizar a janela de pooling. Essa fórmula calcula o comprimento de saída de um mapa de características após uma operação de pooling (por exemplo, max pooling). Ele calcula quanto o mapa de características é reduzido com base no comprimento da entrada, tamanho do pool e passo. Transforma mapas de características multidimensionais em um vetor para camadas totalmente conexas.
Codificador transformador – captura de dependências de longo alcance
Transformers usam autoatenção para aprender dependências temporais de longo alcance nassequências 17.
Atenção escalonada com produto escalar

Q, K, V são matrizes de consulta, chave e valor calculadas por meio de projeções aprendidas;
é a dimensão-chave usada para escalar o produto escalar.
Atenção multi-cabeça

Cada cabeça calcula a atenção de forma independente; as saídas são concatenadas e transformadas linearmente.
são matrizes de projeção aprendidas para cada cabeça.
é o peso final da projeção apósa concatenação 18,19.
Previsão final e derrota
Camadas totalmente conectadas mapeiam características para logitas, que são então transformadas em previsões usando funções de ativação. Após algumas camadas convolucionais e de pooling,
é achatada em um vetor
Uma camada totalmente conectada calcula os logits: Uma camada totalmente conectada então calcula os logits de classe:

Ativação Sigmoid/Softmax:

A função de ativação mapeia a saída bruta 'z' do modelo para probabilidades. Sigmoid é aplicado à classificação binária, e Softmax para problemas multiclasse para a distribuição de probabilidades entre classes. z é a saída linear (por exemplo, última camada: z = Wx + b). A saída ŷ está entre (0, 1), o que indica probabilidade20.
Processo de treinamento
O treinamento era realizado em um sistema com as seguintes especificações de hardware:
Processador: AMD Ryzen 7 7840HS
RAM DA CPU: 16 GB
RAM da GPU: 6 GB NVIDIA GeForce RTX 3050
Os modelos foram treinados usando o otimizador Adam, que adapta a taxa de aprendizado durante o treinamento com base no primeiro e segundo momento do gradiente. A regra de atualização para Adam é dada por:

Nesse contexto, mt e vt representam as estimativas do primeiro e segundo momento, α é a taxa de aprendizado, e ε é uma pequena constante usada para evitar divisão por zero. Os modelos foram treinados para 60 épocas, com paradas precoces para evitar sobreajustes. Um lote de 1024 foi usado, e os dados de treinamento foram carregados nos modelos usando o DataLoader do PyTorch. A desistência e a normalização em lote foram incorporadas para regularizar o modelo e acelerar a convergência. O dropout é um método de regularização que desliga aleatoriamente uma porcentagem p dos neurônios durante o treinamento, o que ajuda a reduzir o sobreajuste. Matematicamente, seja zi a ativação doi-ésimo neurônio. Durante a fase de treinamento, a ativação modificada z' é calculada como:

onde p é a taxa de abandono (por exemplo, p = 0,5 para um abandono de 50%). Durante a inferência, nenhuma queda é aplicada e toda a rede é utilizada.
A convergência em redes neurais é um problema que impacta significativamente os sistemas de classificação existentes no setor de saúde, especialmente quando os diagnósticos são inconsistentes devido à convergência insuficiente. Pesquisas recentes sobre abordagens de otimização em tempo pré-definido e convergência em tempo fixo mostraram que ainda é possível treinar modelos que convergem dentro de um número fixo de iterações para todos os estados iniciais. Modelos futuros baseados nesse podem incluir otimização em tempo pré-definido.
Normalização em lote:
A normalização em lote estabiliza e acelera o treinamento ao normalizar as entradas para cada camada. Dado um mini-lote de ativações x = {x 1, x2, . . ., xN}, a saída normalizada em lote xi .é calculado como:


onde μB e σB2 são a média e a variância do lote, ε é uma pequena constante para estabilidade numérica, e γ e β são parâmetros aprendíveis que escalam e deslocam os valores normalizados. A normalização em lote ajuda a reduzir o deslocamento interno das covariáveis e permite o uso de taxas de aprendizado maiores. Essas técnicas, combinadas com o otimizador Adam, garantem treinamento robusto ao mitigar o sobreajuste e melhorar a velocidade deconvergência 21,22.
A Figura 3 mostra a Perda de Validação e a Precisão da Validação ao longo de Épocas durante o treinamento de um modelo de aprendizado de máquina. A precisão da validação (linha azul, eixo Y direito) começa relativamente baixa (cerca de 97,5%) e aumenta rapidamente nas primeiras 10 épocas. Continua a melhorar e atinge níveis de cerca de 99,7% a 99,8% após cerca de 20 épocas. Isso indica que o modelo está aprendendo e aplicando o conhecimento bem no conjunto de validação. A perda de validação (linha vermelha, eixo Y esquerdo) começa alta, depois cai abruptamente para quase zero nas primeiras épocas (cerca de 2 a 3). Depois disso, permanece praticamente zero pelo restante dotreinamento, 23,24.