一种有监督的鼾声来源识别方法技术领域
本发明属于非语音识别技术领域,特别是一种有监督的鼾声来源识别方法。
背景技术
阻塞性睡眠呼吸暂停/低通气综合征是一种睡眠呼吸疾病,与上气道阻塞、气道结
构性狭窄以及上气道肌张力降低密切相关。在美国仅阻塞性睡眠呼吸暂停综合征就有约
1500万成年患者,并且该病常见于高血压和其他心血管疾病(包括冠心病、中风和心房颤
动)患者。全球范围内阻塞性睡眠呼吸暂停/低通气综合征的发病率较高,男性发病率大于
女性(成年男性患病率为3%~7%,成年女性为2%~5%)。阻塞性睡眠呼吸暂停/低通气综
合征常伴有打鼾、睡眠结构紊乱、频繁发生血氧饱和度下降、白天嗜睡等病征,可以是高血
压、冠心病的独立危险因素。目前主要利用多导睡眠图诊断鼾症,但是其价格昂贵,并且对
病人来说也是一种侵入式的不适。由于声学研究具有非接触式、非侵入式、低成本的优点,
引起了越来越多的关注和研究。
早期的声学研究包括连续声压级测量和时频域波形的观察。最近,出现了在机器
学习方法上的探索。针对鼾声检测,Tan L N等人提出了一种相关滤波器多层感知神经网
络,采用频域上的相关滤波器充当第一层隐层,其他隐层则是常规的多层感知机,相较于常
规的多层神经网络在测试集82%的平均检测率,该方法取得了96%的平均检测率。但是,多
层神经网络结构复杂,需要训练的参数过多,学习特征效率较低。
发明内容
本发明的目的在于提供一种训练参数少、学习特征效率高的有监督的鼾声来源识
别方法。
实现本发明目的的技术解决方案为:一种有监督的鼾声来源识别方法,步骤如下:
步骤1、利用麦克风阵列鼾声采集系统获取实测数据,并对实测数据进行鼾声片段
的标记;
步骤2、对步骤1中得到的实测数据进行特征提取,得到基于Mel频率变换的时频谱
图;
步骤3、将步骤2中提取的特征作为卷积神经网络的输入,进行训练和识别。
本发明与现有技术相比,其显著优点为:(1)仅依赖于输入数据样本和误差反向传
播算法,使得前几层网络调整为适用于识别的网络模型;(2)局部感知和权值共享、卷积层
与池化层交替出现,使得其具有更少的权值参数;(3)识别结果准确,性能优良。
下面结合附图对本发明作进一步详细描述。
附图说明
图1是Mel频率计算总体流程图。
图2是实测数据的时域、频域图,其中(a)为实测数据的时域图,(b)为实测数据的
频域图。
图3是鼾声数据的样本示意图。
图4是面向鼾声识别的卷积神经网络训练整体流程图。
图5是卷积神经网络的结构框图。
图6是二维卷积操作示意图。
图7是池化示意图。
具体实施方式
本发明提供一种以Mel频率为特征,基于卷积神经网络的鼾声来源识别方法,其主
要内容包括:
(一)将基于Mel频率变换的时频谱图输入到卷积神经网络,进行训练;
(二)将测试样本送入已经训练好的网络模型,进行识别。
结合图1,本发明有监督的鼾声来源识别方法,其特征在于,步骤如下:
步骤1、利用麦克风阵列鼾声采集系统获取实测数据,并对实测数据进行鼾声片段
的标记;
步骤2、对步骤1中得到的实测数据进行特征提取,得到基于Mel频率变换的时频谱
图,具体如下:
步骤2-1、以记录的鼾声起始点为标准,统一选取此后时长为1秒的数据,进行短时
分帧、预加重、加窗处理,所述短时分帧的帧长32ms,帧移16ms;
步骤2-2、对每一帧进行N点快速傅里叶变换变换,求频谱,公式如下:
其中,j为虚数单位,0≤k≤N-1,y[n]是输入的鼾声音频信号;
步骤2-3、求得频谱之后,对频谱取模求平方得到幅度谱,对幅值做最大值归一化
处理;
步骤2-4、对幅度谱加Mel滤波器组,Mel频率与实际频率的具体关系和Mel频率输
出公式如下:
其中,f为实际频率,l=1,2,…,L,L是Mel滤波器组的阶数,o(l)是第l阶Mel滤波
器的起始点频率,c(l)是第l阶Mel滤波器的中间点频率,h(l)是第l阶Mel滤波器的终点频
率,Wl(k)是第l阶Mel滤波器的函数;
步骤2-5、对所有的滤波器输出做对数运算,得到一个数据样本。
步骤3、将步骤2中提取的特征作为卷积神经网络的输入,进行训练和识别,具体如
下:
步骤3-1、设置网络结构、卷积层的输出特征图数量和卷积核大小、池化尺寸、权矢
量更新的学习率、批训练样本的数目、迭代次数;
步骤3-2、进行网络初始化,包括初始化卷积层的卷积核权重和偏置,尾部单层感
知机的权矢量和偏置;以一个均值为0,标准差为的正态分布初始化深度神经
网络的权重,其中Nl为与权重连接的输出节点个数,偏置初始化为0;
步骤3-3、对不同来源的鼾声样本进行统计,将鼾声样本分为训练集和测试集;训
练时,采取批处理的方式,每批训练样本中各类别也为均匀分布;依据每批数据的预测误差
进行一次权值更新;
步骤3-4、将样本送入卷积神经网络,经过多次卷积-池化操作最后由全连接层输
出预测值,这一过程称为前向过程;第l层卷积层的输出表示为:
其中,表示第l层的第j幅输出特征图,Mj表示第(l-1)层与连接的特征图数
量,*表示卷积操作,表示连接的卷积核,表示特征图的偏置,f(·)表
示激活函数;
卷积操作之后,经过激活函数处理引入非线性,来逼近任意函数,激活函数采用
sigmoid函数,公式如下:
f′(x)=f(x)·[1-f(x)]
经过sigmoid函数后进行池化操作,池化层对上一层特征图的相邻小区域进行聚
合统计,池化操作时方块不重叠,且池化层中每幅输出特征图都只是上一层的单个输入特
征图的池化结果而不涉及多个特征图的结合,采用平均池化,公式如下:
其中,M为池化尺寸,表示l层i,j位置的值,表示l-1层ik,jk位置的值;
经过卷积-池化-卷积-池化操作之后,采用全连接的单层感知机,卷积神经网络输
出层的预测y=[y1,y2,...,ym]表示为:
y=f(fv·fw+fb)
其中,fv表示特征向量,fw表示单层感知机的权向量矩阵,fb表示单层感知机的偏
置,f表示sigmoid函数;
步骤3-5、反向传播更新网络参数:采用批量梯度下降法来求取卷积神经网络参
数,对于m类多分类问题,将输入样本记为{(x1,y1),(x2,y2),…,(xM,yM)},批处理时二分之
一方差代价函数J(W,b;x,y)表示为:
梯度下降算法中每一次迭代都按照如下公式进行:
其中M表示批处理的样本数目,opj表示网络中第j个神经元的预测输出,ypj表示第
j个神经元的标签,α是学习速率,W表示权矢量,b表示偏置;
误差传播的公式和偏导数计算公式如下:
其中,δ(l)表示第l层的传播误差,表示l+1层第i个节点的传播误差,f为
sigmoid函数,W表示权矢量,b表示偏置,J为方差代价函数,ail表示第l层第i个节点输出。
实施例1
本实施例有监督的鼾声来源识别方法,步骤如下:
步骤1、经过人耳听觉判断和图2所示的时频谱图观察确认之后,对实测数据进行
标记,其中,图2(a)为实测数据的时域图,图2(b)为实测数据的频域图。将纯鼾声片段的起
始、终止位置统计在EXCEL表格中。
步骤2、以EXCEL表格中记录的鼾声起始点为标准,分帧进行Mel频率变换,并对频
谱幅值做归一化处理,形成一个数据样本,如图3所示。
结合图1,对鼾声信号进行分帧、以及Mel频率变换处理具体如下:
步骤2-1、以记录的鼾声起始点为标准,统一选取此后时长为1秒的数据,进行短时
分帧(帧长32ms,帧移16ms)、预加重、加窗等处理。
步骤2-2、对每一帧进行N点快速傅里叶变换变换,求频谱,公式如下:
其中,j为虚数单位,0≤k≤N-1,y[n]是输入的鼾声音频信号。
步骤2-3、求得频谱之后,对频谱取模求平方得到幅度谱,对幅值做最大值归一化
处理。公式如下:
X(k)=|Y(k)|2
步骤2-4、对幅度谱加Mel滤波器组,Mel频率与实际频率的具体关系和Mel频率输
出公式如下:
其中,f为实际频率,l=1,2,…,L,L是Mel滤波器组的阶数,o(l)是第l阶Mel滤波
器的起始点频率,c(l)是第l阶Mel滤波器的中间点频率,h(l)是第l阶Mel滤波器的终点频
率,Wl(k)是第l阶Mel滤波器的函数。
步骤2-5、对所有的滤波器输出做对数运算,得到一个数据样本。
步骤3、将获得的数据样本,分为训练集和测试集。分别送入卷积神经网络进行训
练和识别。结合图4,具体步骤如下:
步骤3-1、设置网络结构(卷积层和池化层的数目以及连接方式)、卷积层的输出特
征图数量和卷积核大小、池化尺寸、权矢量更新的学习率、批训练样本的数目、迭代次数(即
训练次数);
步骤3-2、进行网络初始化,主要包括初始化卷积层的卷积核权重和偏置,尾部单
层感知机的权矢量和偏置;
以一个均值为0,标准差为的正态分布初始化深度神经网络的权重,
其中Nl为与权重连接的输出节点个数,偏置初始化为0。
对于卷积神经网络,需要考虑输入特征图的数量和局部感知域(即卷积核)的尺寸
大小。设fan_in为卷积层输入的的所有连接数,fan_out为一个输入特征图对应的所有卷积
核权值的总数,对应卷积核初始化为一个标准差为sqrt(6/(fan_in+fan_out))的正态分布
随机量。
步骤3-3、对不同来源的鼾声样本进行统计,为了避免由训练样本分布不均引起的
预测误差,每一类鼾声来源数据的训练样本数量均设置为TR,余下的样本不参与训练,作为
测试样本TE。将每个样本的标签设为t=[t1,t2,...,t4,tn]T,其中,n表示鼾声来源数据的总
类别,tk=1表示此样本属于第k类,标签的其他元素均为0。训练时,采取批处理的方式,每
批训练样本中各类别也为均匀分布。依据每批数据的预测误差进行一次权值更新。迭代次
数是指全部数据训练的次数;
步骤3-4、将样本送入卷积神经网络,经过多次卷积-池化操作最后由全连接层输
出预测值。这一过程称为前向过程。卷积层的每一个输出特征图都是上一层多个特征图卷
积操作的结合。结合图5,第二层卷积层与上一层池化层的每一个特征图都有相互连接,即
如果池化层的输出特征图数量为Nin,卷积层的输出特征图数量为Nout,则连接这两层的卷积
核共有Nin·Nout个。用表示第l层的第j幅输出特征图,Mj表示第(l-1)层与连接的特
征图数量,“*”表示卷积操作,表示连接的卷积核,表示特征图的偏
置,f`(·)表示激活函数,则第l层卷积层的输出可表示为:
图像的卷积操作与时域信号处理常见的卷积操作略有区别,它实际上是一种对应
位置元素乘加的操作。结合图6,进行说明:左图为输入特征图,中间为卷积核,右图为卷积
结果。
卷积操作之后,经过激活函数处理,其作用是引入非线性,来逼近任意函数。最常
见的激活函数是sigmoid函数,公式如下:
f′(x)=f(x)·[1-f(x)]
sigmoid函数具有两个优点:①输出范围有限,在0到1之间,所以数据在传递过程
中不容易发散;并且可以用于输出层;②求导容易,误差反向传播算法中涉及到激活函数求
导。而缺点是:饱和时梯度太小。
经过sigmoid函数后进行池化操作,池化层对上一层特征图的相邻小区域进行聚
合统计,主要目的是混淆特征的具体位置。池化操作时方块不重叠,且池化层中每幅输出特
征图都只是上一层的单个输入特征图的池化结果而不涉及多个特征图的结合。常见的池化
方式有平均池化、最大池化两种,其公式如下:
其中,M为池化尺寸,表示l层i,j位置的值,表示l-1层ik,jk位置的值。
本发明采用平均池化,结合图7说明,左图为输入特征图,右图为池化结果。
经过卷积-池化-卷积-池化操作之后,采用全连接的单层感知机。将上一层的特征
图原始结合在一起作为一个特征向量fv传入单层感知机,经过逻辑回归函数(sigmoid函
数)输出预测类别的结果。特别说明,本文的单层感知机采用逻辑回归。用fw表示单层感知
机的权向量矩阵,fb表示单层感知机的偏置,则卷积神经网络输出层的预测y=[y1,y2,...,
ym]可表示为:
y=f(fv·fw+fb)
其中,fv表示特征向量,fw表示单层感知机的权向量矩阵,fb表示单层感知机的偏
置,f表示sigmoid函数。
步骤3-5、反向传播更新网络参数。采用批量梯度下降法来求取卷积神经网络参
数。对于m类多分类问题,将输入样本记为{(x1,y1),(x2,y2),…,(xM,yM)},批处理时二分之
一方差代价函数可表示为:
梯度下降算法中每一次迭代都按照如下公式进行:
其中M表示批处理的样本数目,opj表示网络中第j个神经元的预测输出,ypj表示第
j个神经元的标签,α是学习速率,W表示权矢量,b表示偏置。
梯度更新算法的关键步骤是计算偏导数。反向传播算法是偏导数的有效计算方
法。误差传播的公式和偏导数计算公式如下:
其中,δ(l)表示第l层的传播误差,表示l+1层第i个节点的传播误差,f为
sigmoid函数,W表示权矢量,b表示偏置,J为方差代价函数,表示第l层第i个节点输出。
步骤4、测试集包含4类鼾声来源数据,单纯打鼾类有876个样本,软腭为主类有588
个样本,侧壁为主类有360个样本,软腭侧壁共振类有388个样本。将测试集送入已经训练好
的网络模型中,进行识别。通过单层感知机输出识别结果,识别结果见表1。根据表中数据可
以得出识别率为82%。
表1
综上所述,本发明的方法以麦克风阵列鼾声采集系统获取的实测数据为基础,采
用卷积神经网络进行识别分类,对鼾声片段的时频谱图进行自主训练和识别。通过本发明
的方法可以得到较好的识别效果,因此可以用于针对药物诱导睡眠下鼾声数据来源的识
别。