基于语音特征迁移学习的驾驶疲劳检测

2020-05-29 10:18李国正彭理群严利鑫
铁道学报 2020年4期
关键词:正确率分类器语音

李 响,李国正,彭理群,严利鑫,张 驰

(1.华东交通大学 交通运输与物流学院,江西 南昌 330013;2.北京交通大学 机械与电子控制工程学院,北京 100044)

驾驶疲劳现象已经逐渐成为交通事故的主要致因,因此驾驶疲劳检测方法是目前交通安全领域的研究热点[1]。鉴于铁路、航空等高安全等级的驾驶人员在值乘过程中需频繁地采用标准(操作、呼唤、应答、联控等)作业用语,这些不断重复的标准化语音中涵盖了大量的人体生理及心理信息,同时被专用的驾驶舱语音记录装置[2]所记录保存,用于事后分析其作业行为和驾驶状态,这就为应用语音信号来检测驾驶人的疲劳状态提供了可行性[3]。并且此类基于语音信号的疲劳检测方法[3],相较于现有基于面部特征[4]或生理指标[5]的疲劳检测方法而言,还有全天候、非接触、环境适应性高和成本低廉等诸多优点[3]。因此,应用语音信号来检测人体疲劳的研究也逐渐受到业界的广泛关注[6-8]。

然而,现有的此类研究大多基于传统的监督学习方法,采用有标记的语音样本数据来训练分类器用于疲劳检测[6-8],在实际应用时会存在以下2个方面的不足:

(1)有标记的样本数据稀缺且标记成本较高,有限的标记样本往往难以训练出一个推广性能良好的分类器。现有研究对分类器训练样本的采集与疲劳类别标记,大多需要进行长时间的持续作业实验,以使被试者由正常状态逐渐转变为疲劳状态,标记时还需实时监测被试者的生理或心理指标,以确定其疲劳状态与程度[7],这一实验样本的获取和标记过程往往十分耗时耗力。因此,在样本数据更新过快的情况下,要训练出一个推广能力较强的分类器,将要花费较多的人力、时间和经费来不断地充实有标记的训练样本,这在实际应用时是难以实现的。

(2)新样本与已有样本的数据分布往往不一致,以致训练好的分类器应用于新的测试样本时,会存在非平稳泛化误差。在实际应用时,随着检测时间、应用场景或被试个体的转变,语音样本的数据分布也会随之改变,此时原有的训练样本数据与测试样本数据将无法满足独立同分布条件,那么原有数据训练出的分类器会在这一测试样本数据分布偏移的影响下产生较大的检测误差,而难以推广应用[9-10]。

实际情况下,由于语音采集手段较为便捷,以及铁路及航空驾驶舱语音记录装置的普及应用,无标记的驾驶人语音样本往往比较充足且更新频率较快。那么上述第(1)点的标记样本稀缺问题,通常可采用半监督学习[11]的方法对新的无标记样本进行伪标记,并将其与有标记样本一同训练出一个新的分类器,用于新样本的疲劳检测。但是此类方法大多要求测试数据与训练数据服从相同的分布才能获得较好的检测效果[11]。而本文所探讨的通过语音来检测人体疲劳的问题,已被证实在测试时间推移、应用场景变化和个体差异上均会导致语音样本的数据分布存在较大偏差[9-10],而严重影响分类器的检测效果,也即上述第(2)点的测试样本数据分布偏移问题仍然存在。此时,可考虑采用迁移学习方法[12]解决该问题,区别于半监督学习方法,迁移学习放宽了训练数据和测试数据需服从相同分布的应用条件,能够将某个领域学习到的知识结构或判别模式迁移至不同但相关的目标领域中,从而实现跨领域的机器学习[12]。由于迁移学习能够显著提高跨领域分类器的泛化能力,目前在机器视觉识别和生物信息检测等领域已经展现出了较好的应用效果[12-14]。

为此,本文在分析总结语音的疲劳表征机理及其特征参数的基础上,引入迁移学习方法来解决实际应用时的标注样本稀缺与测试样本数据分布偏移等问题,进而提出一种基于语音特征迁移学习的人体疲劳检测方法。首先,通过基于迁移学习的特征变换,将源领域有标记样本与目标域无标记样本的特征数据共同映射至一个公共的特征空间,使两领域数据在该空间内的边缘分布、条件分布与流形结构均能保持一致,并具有较好的类别区分能力与降维处理效果。其次,在新的特征空间中,以半监督学习的方式来迭代优化目标域样本的伪标记,并不断同步更新特征变换方式和训练新的迁移分类器,直至收敛。最终,将学习所得的特征变换和迁移分类器应用于目标域测试样本,以实现当有标记样本不足且测试样本数据发生偏移时,仍能得到一个泛化性能良好的疲劳检测模型。

1 语音的疲劳表征机理及其特征参数

根据语音与疲劳相关性的前期研究[3,6-7],可将人体疲劳对其发声系统及语音信号的影响归结为:(1)人体疲劳时,声带、声道、喉部及面部肌肉松弛,会引起声门脉冲和基音频率等音质特性的变化;(2)肺部气压下降,导致声门压力降低,使得语音的幅度及能量减弱;(3)体温下降,声道壁的热传导和黏弹性随之改变,从而影响声道壁对气流的摩擦与共振特性,以致语音频谱、共振峰及其带宽等声道滤波特性的变化,并且声道壁和气流强度的变化还会进一步引起语音湍流发生改变,导致其混沌、分形等非线性动力学特征的变化;(4)脑活力下降,语音认知规划能力降低,发声系统的控制及反馈时间延长,导致语音清晰度下降、停顿模式异常和语速变慢等现象。据此,本文提取了语音的韵律、音质、语谱和非线性动力学4类特征[6-8]来描述语音信号中所包含的疲劳信息,详细的特征参数(包括底层描述子及其语段统计参数)如表1所示。

其中,语音特征的底层描述子包括各类语音短时帧级特征及其在时间上的一阶差分(记为“Δ”用于描述其帧间变化)和二阶差分(记为“ΔΔ”用于描述其变化速率)。此时,可将表中各类语音底层描述子的语段统计值参数串接成一个多维的特征向量,用以量化语音信号中所包含的疲劳信息。那么特征向量的维度共计:前6个帧数统计值+(78个底层描述子×11个语段统计参数)=864维。可见其维度较高,即便是采用传统机器学习方法,也需要进行数据降维处理,以减少后续建模检测的计算复杂度,同时避免“维度灾难”问题[3]。鉴于此,本文通过迁移学习方法对不同领域语音样本的特征数据进行空间映射来适配其数据分布时,还需对特征数据进行降维处理,以减少特征数据间的相关性和冗余度,提高检测效率。

表1 语音特征及其统计参数

2 语音疲劳特征的迁移学习方法

2.1 语音特征迁移学习的总体方案

对本文的迁移学习问题进行抽象描述:设有标记的原样本为源领域样本,数据集为Ds={(xs1,ys1),(xs2,ys2),…,(xsn,ysn)},其中下角标s代表源领域,x为d维特征向量,y为样本类别标号,n为源领域样本数量。设无标记的新样本为目标领域样本,数据集为Dt={xt1,xt1,…,xtm},其中下角标t代表目标领域,m为目标领域样本数量。所讨论的数据集偏移问题,即为两类样本数据的边缘概率分布P(x)不同,即P(xs)≠P(xt),同时不同领域内样本类别判决模型的条件概率分布Q(x|y)也不相等,即Q(xs|ys)≠Q(xt|yt)。此时通过有标记样本Ds训练得到的分类器将难以直接推广应用于新样本Dt的分类检测。

那么本文的迁移学习目标为:力求学习得到一个特征变换T(x)将不同领域的样本数据统一映射到一个共同的特征空间中,使得它们在该空间内能够同时满足边缘分布一致且条件分布也尽可能地相近,即有P[T(xs)]=P[T(xt)]且Q[T(xs)|ys]≈Q[T(xt)|yt]。据此便可以在新的特征空间内训练出一个泛化能力较强的迁移分类器f[T(x)],来准确应用于目标领域样本的疲劳检测。

针对该问题,现有迁移学习方法大多专注于特征变换后数据边缘分布(数据整体结构)的一致性,而忽视了数据条件分布(数据判别结构)及其流形结构(局部邻域结构)的适配,例如迁移成分分析方法[13];或未考虑特征变换后的数据区分能力与降维处理效果,例如域适应方法[14]。以致现有的迁移学习方法无法良好适用于本文语音疲劳特征的迁移学习问题。为此,本文在现有方法的基础上综合考虑了多个迁移学习目标,提出迁移学习方案与检测模型结构,见图1。

图1 语音特征迁移学习方案与检测模型结构

其中,在训练阶段对源领域和目标领域的语音样本进行特征提取,并将所得的特征数据共同映射至一个新的公共特征空间内,使得源领域与目标领域的样本数据在该空间内能够实现边缘分布、条件分布与流形结构的联合适配,且保证数据具有较好的类别区分能力与降维处理效果。这样便可以在该空间内利用半监督学习方法来迭代优化目标领域样本的伪标记,并不断同步更新特征变换和迁移分类器,直至收敛。最终,将学习所得的特征变换和迁移分类器应用于目标领域测试样本,实现基于语音特征迁移学习的疲劳检测。

2.2 基于特征空间变换的领域适配与降维处理算法

本文的特征变换具体分为2步实现:首先,为了更好地处理非线性数据,可用一个隐性的非线性映射函数φ(x),将数据由输入特征空间映射至一个高维的可再生核希尔伯特空间(Reproduction Kernel Hilbert Space,RKHS)[14];然后,在该RKHS空间中再通过变换矩阵V将样本数据投影到一个公共的低维子空间内,并在该空间内实现源领域与目标域样本数据的适配与降维。

由此,特征变换可以表示为T(x)=VTφ(x)。实际计算时,可利用核函数矩阵K=φ(x)Tφ(x)∈R(n+m)×(n+m)实现RKHS的非线性映射[14],而无需知道函数φ(x)的具体形式,那么特征变换转变为T(x)=VTφ(x)=ATK(:,x)。其中,A∈R(n+m)×k表示将数据投影到k维子空间的变换矩阵,有k≪d。此时,数据在k维子空间内的嵌入表征为x′=ATK。具体的领域适配与降维处理算法如下:

(1)数据整体结构的边缘分布适配

首先,采用最大均值差异(Maximum Mean Discrepancy, MMD)算法[15]量化特征变换后源领域与目标领域样本数据间的边缘分布差异,计算方法为

tr(ATKMPKTA)

(1)

式中:tr为矩阵的迹;MP为参数矩阵。MP各元素计算方法为:当xi与xj同属Ds时,MPij=1/n2;当xi与xj同属Dt时,MPij=1/m2;当xi与xj分属不同领域时,MPij=-1/(nm)。此时,为保证特征变换后的数据边缘分布一致,即为寻求该式所示的数据边缘分布差异最小,那么最基础的数据边缘分布适配目标可以表示为

(2)

(2)数据判别结构的条件分布适配

设样本的类别变量为c=1,2,…,C。同样可采用MMD算法计算领域间各类别数据条件分布Q[T(xs)|ys=c]和Q[T(xt)|yt=c]之间的均值距离,并对所有类别的均值距离进行求和,以量化其总体的条件分布差异,有

tr(ATKMQKTA)

(3)

(4)

此处由于目标领域数据没有类别标记yt,因而参数矩阵Mc和MQ无法准确计算得到。为此,本文后续将采用半监督学习方法将源领域数据训练所得的分类器应用于目标域无标数据来得到其伪标记yt,并以此对矩阵MQ进行迭代更新来寻求条件分布差异的最优估计。

(3)数据局部邻域结构的流形一致性适配

根据流形假设[16],如果两个领域数据的局部邻域结构在特征变换后能够保持一致,也即数据边缘分布P[T(xs)]和P[T(xt)]的内在几何流形如果是相似的,那么其条件分布和判决模型也应该相似,从而有利于跨领域迁移学习的应用效果。据此,引入图拉普拉斯矩阵[16]来量化数据在特征变换后的流形结构差异,表示为

tr(ATKLKTA)

(5)

(6)

式中:Np(xi)代表xi的p-近邻样本集合。

据此,可在式(2)的基础上,引入式(3)条件分布和式(5)流形一致性的适配正则项,目标函数转变为

γtr(ATKMQKTA)+μtr(ATKLKTA)=

(7)

式中:γ和μ分别为条件分布和流形正则项的非负参数,用于调整目标函数对各优化目标的侧重程度。

(4)基于核主成分分析的数据降维处理

根据核主成分分析(Kernel Principal Component Analysis, KPCA)算法[17]思想,在特征变换时还要求样本数据的嵌入协方差保持最大化,以实现数据在高维RKHS空间内最具类别区分能力的降维投影。此时,这一降维优化问题可以描述为

(8)

式中:H=I-(1/n)1为协方差中心化矩阵,1为元素全为1的n+m阶方阵。以式(8)的嵌入协方差最大化作为式(7)的约束条件,那么最终的目标函数可以表示为

s.t.ATKHKTA=I

(9)

引入拉格朗日乘子Ψ=diag(ψ1,ψ2,…,ψk)∈Rk×k,将这一带约束的优化问题形式化为拉格朗日函数为

=tr{AT[K(MP+γMQ+μL)KT+λI]A}+

tr[(I-ATKHKTA)Ψ]

(10)

再将其对变换矩阵A求偏导,并令∂/∂A=0,可得

[K(MP+γMQ+μL)KT+λI]A=KHKTAΨ

(11)

最终,对该式进行本征分解,求取k个最小本征值所对应的本征向量,即可得到变换矩阵A。由此便可实现基于特征变换x′=T(x)=ATK的领域适配与降维处理。

2.3 基于半监督学习的分类器迭代训练

算法:语音特征迁移学习算法。

输入:源领域数据Ds;目标域数据Dt;正则化参数λ,γ,μ;子空间维度k;核函数类型。

输出:变换矩阵A;迁移分类器f。

重复(1)~(6):

(2)对式(11)进行本征分解,求取k个最小本征值所对应的本征向量来构造变换矩阵A;

(3)将特征数据映射至新空间,数据变为x′=T(x)=ATK;

(6)更新各类别数据的条件分布参数矩阵Mc。

直至收敛(目标函数值不再下降)。

结束:返回学习所得的特征变换矩阵A和迁移分类器f。

值得指出的是,通过这一迭代算法可以得到一个不断优化的特征变换x′=T(x)以及在该变换下训练所得的迁移分类器f(x′),将该分类器应用于目标领域数据便可以不断提高其伪标记效果直到收敛。根据半监督学习理论,如果两类样本的数据分布能够保持一致,那么目标领域的伪标记是根据已知数据所能获得的最优结果。由于特征变换的优化求解保证了数据分布和流形结构的一致性,因此上述迭代式地标记精化过程是合理的。此外,算法中需事先设定正则化参数λ、γ和μ,实际上是为了调整目标函数对各优化目标的侧重比例,其具体取值将在实验部分给出详细的分析和讨论。

3 实验

为了验证所提出的语音特征迁移学习方法在实际应用于驾驶疲劳检测时的可行性和有效性,本文在不同测试时间、不同应用场景和不同被试者的条件下,先后开展了两期驾驶疲劳实验,并据此构建了两个数据分布不同的驾驶疲劳语音样本库。前期驾驶疲劳实验[7-8]在如图2(a)所示的电力机车模拟驾驶操作台上进行,其中驾驶人共20人,实验期间采集语音样本960份,其中正常状态语音样本793份,疲劳状态样本167份。时隔3年开展的后期驾驶疲劳实验,安排在如图2(b)所示的动车模拟驾驶操作台上进行,被试驾驶人共40人,后期实验共采集语音样本4 467份,其中正常样本3 663份,疲劳样本804份。所有实验内容均为每人单次持续8 h的列车模拟驾驶操作,为实现重度疲劳状态,部分被试者在实验前还进行了4~8 h的睡眠剥夺。实验过程中所采集的驾驶人语音样本均为其呼唤应答、车机联控和数字播报等标准作业用语(不同语句按类别分别进行建模和检测),各段语音的时长约为0.5~20 s,采样频率为22.05 kHz,量化精度为16位。

所有实验均以被试驾驶人每隔0.5 h填写1次的疲劳症状自测量表[18]得分及实时监测记录的驾驶人心率指标作为其疲劳状态的参照标准,即将被试驾驶人在疲劳量表(10分制)得分低于5分且每分钟心率低于心率均值时间段内的语音样本标记为疲劳类语音样本,其余样本则标记为正常类样本。本文将前期驾驶疲劳实验所采集的960份语音样本作为迁移学习的源领域有标记训练样本,后期实验的4 467份样本作为目标领域无标记测试样本(其疲劳类别标记不用于机器学习和分类器训练,仅用于验证检测结果)。此时,源领域训练样本数量显著低于目标领域测试样本数量,以验证有标记训练样本数量不足时的迁移学习效果。

图2 列车模拟驾驶实验平台

首先,采用网格搜索法[19]确定本文算法中各项参数λ、γ和μ的最佳取值,并以此考察目标函数中各优化项在特征迁移学习中的作用。当采用高斯径向基核函数计算核函数矩阵K,同时以标准支持向量机算法搭建分类器f时,各参数在[10-3, 103]范围内不同取值的情况下,迁移学习所得检测模型对所有测试样本进行疲劳检测的平均正确率曲线见图3。

图3 不同参数取值下的疲劳检测正确率

根据式(9)所示的目标函数可知,参数λ是用于控制变换矩阵A复杂度的正则项参数,其取值大小决定了该优化问题的适定性。由图3的曲线可见,当λ取值很小时,优化模型退化为平凡解而难以适定,此时所得的检测模型的正确率较低;而当λ取值过大时,目标函数则会过分要求变换矩阵A的复杂度降低,便相应忽略了数据分布适配和流形一致性等较为关键的优化目标,从而失去了特征迁移学习的效果,检测模型的正确率也随之急剧下降。由其曲线可见,λ较为合适的取值区间为[0.05, 1],本文在实际应用时取λ=0.1。

同样,参数γ是用于控制目标函数中条件分布适配程度的非负参数。当γ取值过小时,目标函数将不做条件分布适配,即特征空间变换过程中将不考虑两个领域数据的判决结构是否能够保持一致,此时迁移分类器的半监督迭代优化更新也将失去作用,因而训练所得的分类器也无法拟合原始数据的判别结构,而影响其检测效果;当γ取值过大时,目标函数则会过分要求判决模型完全一致而导致过拟合现象,此时检测效果反而变差。图3同样展示了正确率随参数γ的变化规律,可见γ的合理取值区间为[0.1, 10],本文取γ=1。

流形正则化参数μ体现了不同领域数据的流形一致性在迁移学习算法中的权重。由图3可以看出,当μ取值较小时,目标函数将忽略数据流形结构的适配,此时不利于两类数据局部判别结构的一致性,其检测效果不佳;而当μ取较大值时,仅有流形一致性得到保持,数据的边缘分布和条件分布却无法保持适配。可见,参数μ的合理取值区间为[0.01, 1],本文取μ=0.5。

其次,考察领域适配与降维处理后的子空间维度k对疲劳检测正确率的影响。子空间维度k在不同取值下执行本文算法,对所有测试样本进行疲劳检测的平均正确率曲线见图4。可以看出,当k<60时,空间维度不足以区分类别信息,导致检测效果不够理想;而当维度增加到k≥60时,疲劳检测的平均正确率达到86.7%左右并趋于稳定。因此,考虑到分类器训练及检测的计算效率,本文在实际应用时选取的子空间维度为k=60。相较于原始的864维语音特征,其维度在不影响疲劳区分能力的前提下进行了大幅降低。此时,在CPU为4核3.6 GHz、内存容量为8 GB的PC平台下,待测样本的检测耗时为480~1 360 ms,相较于驾驶人标准作业用语的间隔时间和人体疲劳状态的变化速度而言,基本能够保证检测的实时性。

最后,为了验证本文迁移学习方法应用于实际疲劳检测的有效性,将其与现有的传统监督学习[8]、半监督学习[11]、迁移成分分析[13]和域适应[14]等常用机器学习方法进行了比较。各方法均以前期实验样本作为有标记训练样本库,以后期实验样本作为无标记测试样本库。各方法的样本数据适配及优化功能、分类器算法和检测结果如表2所示。为体现对比效果,各方法采用的分类器算法均以支持向量机为基础算法,包括:标准支持向量机(Support Vector Machine, SVM)[7];模糊支持向量机(Fuzzy SVM, FSVM)[8];半监督支持向量机(Semi-Supervised SVM, S3VM)[11];域适应支持向量机(Adaptation Regularization SVM, ARSVM)[14]。各方法的检测结果,分别用它们对测试样本库中正常样本、疲劳样本和所有样本的疲劳检测正确率表示。

图4 不同特征空间维度的疲劳检测正确率

表2 多种机器学习方法的疲劳检测结果

由表2的检测结果可以看出,当采用传统监督学习方法,训练样本和测试样本分别来自不同的实验样本库时,其对所有测试样本的平均正确率仅为72.0%,显著低于文献[7]和文献[8]中训练样本和测试样本均来自同一实验样本库的平均正确率(可达85%以上)。这说明训练样本的不足和测试样本的数据偏移,均会引起传统监督学习方法的检测性能下降,而影响其实际应用效果。当采用基于S3VM的半监督学习方法时,后期无标记的测试样本也可以参与到分类器训练中,但由于测试样本与训练样本仍存在数据分布差异,因此训练所得的分类器还不够理想。随后采用迁移成分分析和域适应等现有较为常见的迁移学习方法对样本数据进行跨领域的适配与检测,此时疲劳检测的正确率得以大幅提高,对所有测试样本的平均正确率分别达到81.3%和83.9%。但由于这两种方法的数据适配及优化功能还不够完备和充分,因而检测效果仍存在一定程度的提升空间。

最终,本文方法综合考虑了测试样本与训练样本数据的边缘分布适配、条件分布适配、流形一致性和特征空间降维处理等多种迁移学习目标,并通过基于半监督学习的迭代更新优化,来训练得到一个泛化能力更强的迁移分类器应用于疲劳检测。从表2所示的结果可见,本文方法对所有测试样本的平均正确率达到了最高的86.7%,这说明本文方法在应对有标记训练样本匮乏和测试样本数据分布漂移等实际问题时,可以表现出较现有方法更好的疲劳检测性能。同时可以看出,本文方法对正常样本和疲劳样本的检测结果也均优于现有方法,正确率分别达到86.4%和88.2%。这一方面表明,该方法在实际应用于正常状态的驾驶人时,不会因为经常性的误检而引起驾驶人的不适或心理压力;另一方面,该方法在应对疲劳状态的驾驶人时,可以表现出更好的查全率,因而能够及时准确地检测出被测驾驶人的疲劳状态,在消除驾驶疲劳隐患、保障行车安全方面,具有实际应用价值。

4 结束语

铁路机车与动车驾驶人需频繁使用标准作业用语,为应用语音信号检测其疲劳状态提供了可能性。然而,现有研究所采用的监督学习方法在实际应用时,会由于训练样本稀缺和测试样本数据分布偏移等问题而导致疲劳检测效果不佳。为此,本文提出一种基于语音特征迁移学习的驾驶疲劳检测方法。首先,通过样本数据间的领域适配与降维处理,不仅可以有效应对测试样本数据分布偏移的问题,同时可以降低特征空间维度进而提高检测效率。其次,在特征空间变换后采用半监督学习方法来迭代优化无标记样本的伪标记,并不断同步更新特征变换和分类器,能够有效解决训练样本不足的问题,进而提升疲劳检测模型的精度和泛化能力。实验结果显示,在测试时间、应用场景和被试个体均发生变化的情况下,该方法的驾驶疲劳检测正确率显著优于现有同类方法,具有实际应用价值。

该方法的具体应用可以体现在以下两个方面:一方面,可以辅助或替代现有机务管理部门人工检索分析驾驶人语音记录的繁琐工作,解决人工识别其驾驶状态时难以实现遍历性和准确性的问题;另一方面,该方法可以进一步开发为机载的驾驶疲劳智能化在线检测设备,应用于驾驶人疲劳状态的实时监测与预警。为此,后续研究将引入更为丰富的驾驶人语音样本数据对该方法的有效性进行交叉验证,还将尝试采用更多的语音特征和分类器算法,来进一步提高语音特征迁移学习的驾驶疲劳检测效果。

猜你喜欢
正确率分类器语音
个性化护理干预对提高住院患者留取痰标本正确率的影响
学贯中西(6):阐述ML分类器的工作流程
基于朴素Bayes组合的简易集成分类器①
门诊分诊服务态度与正确率对护患关系的影响
基于特征选择的SVM选择性集成学习方法
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……
基于差异性测度的遥感自适应分类器选择