【论文笔记】基于半实例归一化和GMD损失函数的ECG信号降噪
原文:An ECG Denoising Technique Based on Half Instance Normalization Block and Gradient Difference Max Loss
摘要
心电图信号在采集过程中由于频率和幅度较低,容易受到一些未知噪声的干扰,导致信号中重要信息的丢失。最近的深度学习模型在去噪方面取得了令人鼓舞的结果,然而,该模型的泛化能力对各种噪声并不鲁棒,并且去噪信号与原始信号之间的梯度差总是被忽略。在本文中,我们提出了一种基于半实例归一化(HIN)块和梯度差分最大(GDM)损失函数的深度学习去噪方法,该方法包括两个阶段。在第一阶段,我们输入有噪声的ECG信号以获得去噪信号。在第二阶段,我们通过融合第一阶段的初步结果来重建去噪信号,并校正第一阶段去噪引起的波形失真,以减少信息损失。还提出了一种新的损失函数,该函数可以考虑去噪ECG信号和干净ECG信号的斜率之间的差异。在MITBIH数据库上的实验结果表明,我们的方法在信噪比(SNR)和均方根误差(RMSE)方面都达到了最佳性能。
- 问题:用于心电图去噪的深度学习方法并不对各种噪声都有鲁棒性,而且去噪和原始信号之间的梯度差总是被忽略。
- 贡献:提出一种基于半实例归一化块和梯度差分最大损失函数的深度学习去噪方法。
- 数据集:MITBIH数据库(MIT-BIH噪声压力数据集
- 结论:方法在信噪比(SNR)和均方根误差(RMSE)方面都达到了最佳性能 。
问题
1. HIN块是什么?有什么用?
HIN block是本文引入的基于半实例归一化架构的块。
用途:对每个样本实现具有独立性的归一化操作。
HIN块通过3 × 3卷积产生中间特征 F mid,然后把中间特征分成两个部分,一个部分F mid1 做归一化处理,然后在通道维度上与 F mid 2 拼接。就是说,HIN块在一半通道上使用IN,在另一半通道上保存上下文信息。
半实例归一化与传统的归一化操作有什么不同?
半实例归一化 | 归一化 | |
---|---|---|
一半的样本 | 基于全部样本的到 | 均值和方差 |
好 | 差,样本之间影响大,依赖大 | 独立性 |
一半样本归一化 | 基于全部样本的均值和方差 | 归一化 |
2. GDM损失函数是怎么工作的?比起其他损失函数的优势在哪里?
GMD损失函数由两部分组成,分别是GMLoss和MaxLoss
GDloss由梯度差异得出,Maxloss追求最大的差距。
优势在于可以在连续信号类型的输出中更加专注与梯度的差异。有种掌握前进方向而不是偏差距离的感觉
公式:
其中𝜆是调整损失函数权重的超参数。
lgrad的值相当于在计算每个点的梯度叠加。
所有点中,差距最大的点的差距。
3. 此领域的评价标准是什么?
论文里用到的不同方法间的评价标准可以理解成:
降噪后的信号信噪比 原始信号信噪比 \frac{降噪后的信号信噪比}{原始信号信噪比} 原始信号信噪比降噪后的信号信噪比
算法结构
传入算法的变量:x
定义 x = y + n x=y+n x=y+n
- n是来自数据集MIT-BIH噪声压力数据库中的BW、MA、EM噪声
- y是无噪声的、纯净的ECG信号。相当于是标签。
- x是有噪声的。相当于真实的ECG信号。
目的:去除n,使得x接近y
第一级D-Unet(去噪)
定义 f ( x ) f(x) f(x)为第一级,传入变量是 x x x。
目的:去噪,
Conv layer
- kernel size:1*31
- stride:1
- channels:64
输入:噪声信号x
作用:提取噪声信号x的初步特征
输出:一个三维张量,形状为(样本数,特征图高度,特征图宽度,特征通道数)
HIN块
输入:特征图
过程:
- 分割子集:IN子集和ID子集。每个子集的样本数量均分且相等。
- HIN层:IN子集计算均值、方差,进行归一化,ID层保留数据,再融合两个子集。具体看【1】论文
- 之后是两层ReLU和一层卷积和残差连接。
公式:
其他:Res块和SEConv块。
第二级R-Unet(恢复)
两个输入:噪声信号、第一阶段的输出
原因是信号中的大部分噪声在第一级之后会被去除,但心电波形不可避免地会产生一定程度的失真。 因此,我们将第一阶段的输出特征与噪声信号融合,然后将它们作为第二阶段的输入。
具体来说,R-Unet首先通过卷积核大小为1×31、步长为1的卷积层提取噪声信号x的特征,然后将第一级的输出特征和提取的特征拼接在尺寸,然后经过1×1卷积后发送到后续网络。
D-Unet和R-Unet之间通过CSFF模块连接,可以简化信息的流动,使网络优化过程更加稳定。
输出
在网络的末端,我们通过使用内核大小为1×31、步长为1、通道数为1的卷积来输出去噪信号,将信号的维度从64变为1。
GDM损失函数
MSE和L1等Loss仅考虑去噪信号与干净信号之间的距离,往往收敛性较差。作者提出一种正则化损失函数GD Loss
GD Loss
特点:考虑信号的梯度,通过保证同一区间内的梯度相等,抑制去噪信号中的干扰因素。
看上述公式,lgrad的值相当于在计算每个点的梯度叠加。
同时也引入max损失函数
所有点中,差距最大的点的差距。
最终Loss函数:
其中𝜆是调整损失函数权重的超参数。
实验结果
kernel size对比
最后选择1*31的。效果最好
Loss函数对比
GD Loss 和 Max loss 的组合不仅达到了最高的 SNR,而且在 RMSE 上也达到了最佳。 该性能证明了我们提出的损失函数的优越性。
和其他方法对比
评价标准:处理后的信号的信噪比(SNR)与原始信号的SNR的比值。比值超过1代表具有去噪能力,比值越大说明去噪效果越好。
在三种不同的噪声施加环境(BW、MA、EM)下各种方法的处理前后信噪比比
不用多说就知道作者的方法是信噪比比最高的,最好的。。。
结论
直接原文
本文提出了一种基于半实例归一化块和梯度差最大损失函数的两阶段心电信号去噪方法。 在该方法中,我们改进了卷积核的大小和网络的结构,使其能够更好地执行去噪任务。 我们还提出了正则项损失函数——梯度差最大损失。 损失函数着眼于信号的梯度,通过保证去噪后的心电信号与干净的心电信号在同一区间内的梯度尽可能相等来抑制干扰因素。 为了证明该方法的有效性,我们进行了消融实验并与其他降噪方法进行了对比实验。 实验结果表明我们的方法在SNR和RMSE方面都达到了最好的性能。 这些结果为我们的方法的可行性和实用性提供了充分的证据,我们相信该方法在实际应用中将有望产生更好的结果。 未来我们将重点关注12导联心电信号去噪。