基于条件式变分自编码器的心电信号生成方法

文档序号:31708872发布日期:2022-10-01 13:57阅读:88来源:国知局
基于条件式变分自编码器的心电信号生成方法

1.本发明属于数据生成领域,涉及一种心电信号生成算法的实现方法,具体涉及一种基于条件式变分自编码器算法的心电信号生成的实现方法。


背景技术:

2.随着人工智能技术的发展,心电信号的诊断可以不再依赖于专业医生的经验判断,可以使用人工智能技术中的深度学习算法让机器来对心电信号进行分类,根据分类结果来进行诊断,从而提高了心电信号诊断的效率。然而,深度学习算法需要有大量的数据来进行学习,然而目前公开的可供学习使用的数据有限,且这些数据存在严重的数据不平衡的问题。因此许多研究都致力于生成心电信号,希望借此来缓解现有数据库所存在的问题。
3.目前主流的两种生成方法为基于数学建模的生成算法和基于深度学习的生成算法。前者使用一些固定的数学模型,在其基础上加上一些噪音或者是在原始信号的基础上加上一些抖动,使其可以生成不同于原始信号的新的心电信号。但由于模型较为固定,这种方式产生的心电信号的多样性较差。对于基于深度学习的算法而言,需要利用真实的心电图样本进行学习,然后构建生成模型。这种方式的典型代表是基于生成式对抗网络(gan)的方法,已经在心电信号生成领域有一些初步研究。但这种模型的训练较为困难,容易导致训练不收敛或模型坍塌等问题。如何构建面向心电图领域的高效稳定的生成模型是一个需要解决的问题,高质量的生成样本对提升心电分类能力有重要作用。此外,现有的心电信号生成方法只能对单个类别的样本进行学习和生成。如果需要生成多类别的样本,需要采取逐个类别分别进行训练与生成的操作,过程比较繁琐。
4.与gan类似,变分自编码器(vae)是数据生成领域另一种常用的生成式模型,它已经被成功应用于图像生成、语音生成等领域,但并没有被应用到心电图生成领域中。这种模型框架是否可以在心电图生成中进行应用,以及如何进行应用,这些都是值得研究的问题。


技术实现要素:

5.本发明的目的是提供一种基于条件式变分自编码器的心电信号生成方法,该方法能够利用已有的少量真实心电信号来进行深度学习并形成生成模型,从而实现心电信号的生成。利用本发明的方法来进行心电信号生成时,仅需要给定少量带类别标签的真实心电信号数据,之后就可以生成任意数量的不同类别的心电信号,极大地扩充了心电信号样本的数量,极大地缓解了心电信号分类学习时样本不足和数据不平衡的问题,对基于样本学习的心电信号自动分类算法具有重要的作用和意义。
6.本发明的目的是通过以下技术方案实现的:一种基于条件式变分自编码器的心电信号生成方法,包括如下步骤:步骤(1)收集一组带类别标签的单导联真实心电图数据形成数据集;步骤(2)对心电图中的每个r波峰位置进行人工标记或采用自动化检测算法进行标记;以每个r峰的位置为中心向左截取m个采样点,向右截取n个采样点,得到长度为m+n+1
的包含单个心拍的心电信号数据段,其中:m和n的取值主要根据心电图的采样率来确定,若心电图每秒钟采样x个点,则m和n的长度需要满足0.2x≤m≤0.5x,0.2x≤n≤0.5x,其中m和n的长度比r需要满足1/2≤r≤2/3;经过分段后,最后一段长度若小于m+n+1,则舍弃该数据段;步骤(3)对步骤(2)得到的每一个心电数据段使用常用的小波降噪来进行噪声过滤,并形成训练数据集;步骤(4)基于步骤(3)得到的训练数据集训练生成式网络模型,得到可以用于将心电信号映射到n维标准正态分布的编码器参数模型和能够生成指定类型的心电信号的解码器参数模型,其中:生成式网络模型是基于条件式变分自编码器构建的,图2所示,包含编码器和解码器两部分,具体构建步骤如下:将条件式变分自编码器的输入数据替换为基于步骤(3)得到的训练数据集,将条件式变分自编码器的条件项替换为步骤(1)得到的标注结果;生成式网络模型加入了条件项,即训练的过程中传入了标注结果;条件式变分自编码器为条件式卷积神经网络变分自编码器或条件式全连接网络变分自编码器,其中:条件式卷积神经网络变分自编码器的编码器和解码器的网络结构使用了一维卷积神经网络,条件式全连接网络变分自编码器的编码器和解码器的网络结构使用了全连接神经网络, 不论使用何种网络结构,编码器接收的训练数据长度均为(m+n+1+标注的类别个数),编码器输出的长度为n;解码器接收的数据长度为(n+标注的类别个数),解码器的输出长度为(m+n+1);n通常远小于m+n+1,但最好大于5;步骤(5)利用步骤(4)中训练好的解码器来生成心电信号,通过向解码器中传入从n维标准正态分布中采样的随机噪声以及心电信号类型即可生成指定类型的心电信号;步骤(6)对于单导联心电信号,完成步骤(5)即结束;对于多导联心电信号的生成,需要分别对每个导联的数据执行上述步骤(1)-步骤(5)。
7.相比于现有技术,本发明具有如下优点:1、本发明可以仅需要少量的标注好的心电信号就可以利用条件式变分自编码器来学习到不同类型的心电信号的特征,从而可以生成任意类型、任意数量的心电信号。
8.2、本发明在mit-bih心律失常数据库上进行了测试,取得了极佳的性能。测试时使用了四种类别的心电信号,每种类别仅使用了1000个样本。其中:基于条件式卷积神经网络变分自编码器所生成的心电信号可以将支持向量机(svm)分类器的分类准确率提升8%;基于条件式全连接网络变分自编码器所生成的心电信号可以将svm分类器的分类准确率提升7%。
附图说明
9.图1是本发明基于条件式变分自编码器的心电信号生成方法的总体流程图。
10.图2是条件式变分自编码器模型的示意图。
11.图3是条件式全连接神经网络变分自编码器中编码器的示意图。
12.图4是条件式全连接神经网络变分自编码器中解码器的示意图。
13.图5是实施例1所生成的n、l、r、v四种类型的心电信号图。
14.图6是条件式卷积神经网络变分自编码器中编码器的卷积单元示意图。
15.图7是条件式卷积神经网络变分自编码器中解码器的卷积单元示意图。
16.图8是实施例2所生成的n、l、r、v四种类型的心电信号图。
具体实施方式
17.下面结合附图对本发明的技术方案作进一步的说明,但并不局限于此,凡是对本发明技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的保护范围中。
18.实施例1:本实施例提供了一种基于条件式全连接神经网络变分自编码器的心电信号生成方法,具体实施方式步骤如下:(1)将mit-bih心律失常数据库中的记录读入。
19.(2)基于mit-bih心律失常数据库的注释文件,得到这些心电记录中各个心拍的r峰位置及心拍类型,由于mit-bih心律失常数据库中心电图的采样率为360,因此以每个r峰的位置为中心向左截取100个采样点,向右截取155个采样点,加上r峰位置的点共得到长度为256的包含单个心拍的心电信号数据段,若最后一段长度小于256则舍弃该数据段。
20.(3)将步骤(2)中得到的心电数据段进行预处理,采用小波去噪的方法来去除噪声,采用最大最小值归一化的方法来进行数据的归一化。利用预处理后的心电数据段以及其心拍类型来构成数据集,从数据集中分别取出2000个n、l、r、v类型的心电数据,并按照1:1的比例分成训练集和测试集。
21.(4)将步骤(3)得到的训练集送入设计好的条件式全连接神经网络变分自编码器中,让网络自动学习如何将心电信号映射到一个低维的正态分布,以及如何将低维空间中的点映射回心电信号,最终得到用于生成心电信号的条件式全连接神经网络变分自编码器参数模型。这里用到的条件式全连接神经网络变分自编码器中编码器的网络如图3所示,具体结构是:第一层是输入层,输入的每一个样本的长度为260,包含长度为256的心电数据以及长度为4的心电数据类型的独热编码;第二层是一个全连接层,共含有200个隐藏神经元,该全连接层后面带有一个修正线性单元(rectified linear unit,relu);第三层包含了两个全连接层,均包含了10个隐藏神经元,分别用于生成正态分布的均值和标准差。条件式全连接网络变分自编码器中解码器的网络如图4所示,具体结构是:第一层是输入层,输入的每一个样本的长度为14,包含长度为10的随机噪音以及长度为4的心电数据类型的独热编码;第二层是一个全连接层,共含有200个隐藏神经元,该全连接层后面带有一个修正线性单元;第三层为全连接层,共含有256个隐藏神经元,后面带有一个sigmoid激活函数层。在整个网络训练过程中训练集的批处理量为250,学习速率为0.001,最大迭代次数为1000。
22.(5)在实际生成心电数据时,仅利用训练好的变分自编码器中的解码器来进行生成。生成心电信号时首先需要从10维标准正态分布中随机采样,将该采样结果及期望生成的心电信号类型的独热编码一同传入解码器,即可生成指定类型的心电信号,利用该方法生成的n、l、r、v四种类型的心电信号图如图5所示。
23.实施例2:
本实施例提供了一种基于条件式卷积神经网络变分自编码器的心电信号生成方法,具体实施方式步骤如下:(1)将mit-bih心律失常数据库中的记录读入。
24.(2)基于mit-bih心律失常数据库的注释文件,得到这些心电记录中各个心拍的r峰位置及心拍类型,由于mit-bih心律失常数据库中心电图的采样率为360,因此以每个r峰的位置为中心向左截取100个采样点,向右截取155个采样点,加上r峰位置的点共得到长度为256的包含单个心拍的心电信号数据段,若最后一段长度小于256则舍弃该数据段。
25.(3)将步骤(2)中得到的心电数据段进行预处理,采用小波去噪的方法来去除噪声,采用最大最小值归一化的方法来进行数据的归一化。利用预处理后的心电数据段以及其心拍类型来构成数据集,从数据集中分别取出2000个n、l、r、v类型的心电数据,并按照1:1的比例分成训练集和测试集。
26.(4)将步骤(3)得到的训练集送入设计好的条件式卷积神经网络变分自编码器中,让网络自动学习如何将心电信号映射到一个低维的正态分布,以及如何将低维空间中的点映射回心电信号,最终得到用于生成心电信号的条件式卷积神经网络变分自编码器参数模型。这里用到的条件式卷积神经网络变分自编码器中编码器的网络结构使用了多个卷积单元,卷积单元如图6所示,每个卷积单元包含了一个卷积核为3、步长为1的卷积层、一个批标准化层以及一个修正线性单元(rectified linear unit,relu)。编码器的具体网络结构是:第一层是输入层,输入的每一个样本的长度为260,包含长度为256的心电数据以及长度为4的心电数据类型的独热编码;第二层-第六层均使用了卷积单元,其使用的卷积核数量分别为20、40、20、10、1;第七层是一个全连接层,包含了128个隐藏神经元;第八层是一个全连接层,包含了123个隐藏神经元,该全连接层后面跟着一个sigmoid激活函数层。第九-第十三层包含了两个完全一样的卷积神经网络,分别用于生成正态分布的均值和标准差。网络结构如下:第九层-第十二层均使用了卷积单元,其使用的卷积核数量分别为40、20、10、1;第十三层是一个全连接层,包含了10个隐藏神经元。条件式卷积神经网络变分自编码器中解码器的网络结构也使用了多个卷积单元,卷积单元如图7所示,每个卷积单元包含了一个卷积核为3、步长为1的反卷积层、一个批标准化层以及一个修正线性单元。解码器的具体网络结构是:第一层是输入层,输入的每一个样本的长度为14,包含长度为10的从10维标准正态分布中随机采样的噪音以及长度为4的心电数据类型的独热编码;第二层-第七层均使用了卷积单元,其使用的卷积核数量分别为20、40、20、10、10、1;第八层是一个全连接层,包含了128个隐藏神经元;第九层是一个全连接层,包含了256个隐藏神经元,该全连接层后面跟着一个sigmoid激活函数层。在整个网络训练过程中训练集的批处理量为250,学习速率为0.001,最大迭代次数为1000。
27.(5)在实际生成心电数据时,仅利用训练好的变分自编码器中的解码器来进行生成。生成心电信号时首先需要从10维标准正态分布中随机采样,将该采样结果及期望生成的心电信号类型的独热编码一同传入解码器,即可生成指定类型的心电信号,利用该方法生成的n、l、r、v四种类型的心电信号图如图8所示。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1