一、研究背景與核心問題?
?ECG分類的挑戰?:
心電圖(ECG)信號分類在心律失常檢測、身份識別等領域至關重要,但傳統方法難以同時有效整合時域和頻域信息。現有方法包括:- ?時域分類(CNN1D)??:直接處理原始信號。
- ?頻域分類(FFT1D)??:通過傅里葉變換提取頻域特征。
- ?時頻域分類(SPECT)??:將信號轉為頻譜圖后用2D CNN處理,但轉換過程可能丟失信息。
- ?局限?:SPECT性能未達預期,需更優的時頻融合方案。
?FAN的啟發?:
傅里葉分析網絡(FAN)通過正弦/余弦激活函數捕捉周期性特征,但僅用于全連接層,對卷積層未充分探索。
?二、創新方法:CFAN架構?
?核心設計?:
- ?CONV-FAN模塊?(圖10b):
- 將卷積層替換為包含獨立權重矩陣的正弦(sin)、余弦(cos)和GELU激活函數的混合模塊。
- 比例:GELU : sin : cos = 1:1:1(對比FAN的4:1)。
- ?CONV-FAN模塊?(圖10b):
?
- 端到端時頻融合?:無需預生成頻譜圖,直接在網絡中學習聯合特征。
?架構細節?:
- ?MIT-BIH/ECG-ID任務?(圖12):
- 輸入 → CONV-FAN(3層,每層32濾波器)→ 跳躍連接+注意力 → 全連接層。
- ?MIT-BIH/ECG-ID任務?(圖12):
?
Apnea-ECG任務?(圖11):
- 類似結構,但CONV-FAN每層僅4濾波器(總計12)。
?
- 關鍵改進?:獨立權重矩陣(優于共享權重的CSFAN變體)。
?三、實驗與結果?
?數據集與預處理?:
- ?MIT-BIH?(心律失常分類):109,451個心拍,5類別(正常、室上性早搏等)。
?
ECG-ID?(身份識別):90人,2,456個心拍(圖4)。?
?
- pnea-ECG?(呼吸暫停檢測):15,880個1分鐘片段(圖3c)。
?基準方法對比?:
- SPECT(頻譜圖+EfficientNetB0)、CNN1D、FFT1D、CNN1D-FAN(全連接層替換為FAN)。
?性能優勢?:
?方法? ?MIT-BIH (Acc%)?? ?ECG-ID (Acc%)?? ?Apnea-ECG (Acc%)?? SPECT 98.93 95.34 89.86 CNN1D 98.92 95.20 93.90 ?CFAN? ?98.95? ?96.83? ?95.01? - ?統計顯著性?:CFAN在ECG-ID(p=0.02)和Apnea-ECG(p=0.0009)顯著優于次優方法(CNN1D-FAN)。
- ?效率?:參數量與CNN1D相同,但推理時間略增(表I)。
?消融實驗?:
- ?獨立權重關鍵性?:CFAN(獨立權重)> CSFAN(共享權重),如ECG-ID精度差0.9%。
- ?全領域最優?:CFAN在時域、頻域及時頻域任務中均超越基準。
?四、貢獻與意義?
?理論突破?:
- 首次將傅里葉分析嵌入卷積層,實現端到端時頻聯合學習。
- 驗證周期性激活函數在生物醫學信號中的普適性。
?應用價值?:
- ?心律失常分類?:刷新MIT-BIH準確率(98.95%)。
- ?身份識別?:ECG-ID準確率96.83%,優于文獻最佳(96%)。
- ?呼吸暫停檢測?:Apnea-ECG準確率95.01%,超越主流方法(如Bhongade的94.77%)。
?泛化潛力?:
- 架構可擴展至其他時頻敏感任務(如腦電、語音分析)。
五、核心代碼
CONV-FAN塊實現(核心創新)?
import tensorflow as tf
from tensorflow.keras.layers import Layer, Conv1Dclass CONV_FAN(Layer):"""CONV-FAN塊:融合GELU、正弦、余弦激活的卷積層"""def __init__(self, filters, kernel_size, ratio=(1,1,1), ?**kwargs):super().__init__(**kwargs)self.filters = filters# 獨立權重矩陣的三路卷積(GELU/sin/cos)self.conv_g = Conv1D(filters * ratio[0], kernel_size, padding='same', activation='gelu')self.conv_s = Conv1D(filters * ratio[1], kernel_size, padding='same', activation=tf.sin) # 正弦激活self.conv_c = Conv1D(filters * ratio[2], kernel_size, padding='same', activation=tf.cos) # 余弦激活def call(self, inputs):# 并行三路卷積g_path = self.conv_g(inputs) # GELU路徑s_path = self.conv_s(inputs) # 正弦路徑c_path = self.conv_c(inputs) # 余弦路徑# 沿通道維度拼接 (B, T, C1+C2+C3)return tf.concat([g_path, s_path, c_path], axis=-1)def get_config(self):return {'filters': self.filters}
六、結論?
CFAN通過統一時頻卷積模塊解決了傳統方法分割處理的局限,在ECG分類中實現SOTA性能,并為生物醫學信號分析提供了新范式。其核心創新在于直接融合傅里葉原理與卷積操作,避免了人工特征工程或信號轉換的瓶頸。