侯麗敏,劉煥成,施曉宇,張新鵬
(上海大學 通信與信息工程學院,上海 200444)
鼾聲相關信號的分類是利用鼾聲輔助診斷睡眠呼吸暫停低通氣綜合征(Sleep Apnea Hypopnea Syndrome, SAHS)過程中重要的前端工作[1-3].Lei等[4]對錄音的呼吸聲和非呼吸聲分類中提取了基于頻譜相關的特征,結合Mel倒譜系數(shù)(Mel-Frequency Cepstral Coefficients, MFCC)特征作為特征集,用支持向量機(Support Vector Machine, SVM)和徑向基函數(shù)(Radial Basis Function, RBF)神經(jīng)網(wǎng)絡等分類器融合來實現(xiàn)分類.Mlynczak等[5]在手機端運用多層感知機模塊對鼾聲和呼吸聲做分類.Swarnkar等[6]提取包括聲音的基頻、MFCC和能量等特征用多層感知機對鼾聲與非鼾聲進行分類.對低信噪比的錄音,Emoto等[7]用人工神經(jīng)網(wǎng)絡(Artificial Neural Network, ANN)的方法來區(qū)分低信噪比下的鼾聲事件和非鼾聲事件.Karunajeewa等[8]用最小誤差概率決策準則,對包括鼾聲、呼吸聲和靜音的聲音片段做分類.Rosenwein等[9]提出了鼾聲、呼吸聲和噪聲的分類系統(tǒng),構造的聲學特征集共351維,用隨機森林分類器對鼾聲、呼吸聲和噪聲分類的平均正確率達到91%.
本文提出了基于ANN對鼾聲、呼吸聲和其他噪聲分類的方法.該方法提取每個聲音片段的頻譜相關特征集作為ANN的輸入特征,用小批量訓練和Adam學習率自適應等深度學習策略來優(yōu)化ANN結構的參數(shù),該方法區(qū)分鼾聲、呼吸聲和其他噪聲的平均召回率、平均精準率和平均F1值都在95%以上.
本文的實驗數(shù)據(jù)均來自上海市第六人民醫(yī)院耳鼻喉科睡眠監(jiān)測病房里打鼾者的整夜錄音.患者鼾聲信號的錄音與患者做多導睡眠(Polysomnography, PSG)監(jiān)測診斷同步進行.睡眠記錄儀采用偉康Alice 4,錄音設備為Dell Inspiration 570,聲卡型號為Creative Audigy 4 Value,麥克風為Sony ECM-C10,采樣率為16kHz.研究對象為上海市第六人民醫(yī)院耳鼻喉科提供的接受PSG診斷的受試者.PSG報告給出了受試者的睡眠呼吸暫停低通氣指數(shù)(Apnea Hypopnea Index, AHI)等相關診斷結果.AHI值(λAHI)表示平均每小時測試者睡眠呼吸暫停低通氣事件的次數(shù),單位為次·h-1.λAHI對應著睡眠呼吸暫停低通氣綜合征的嚴重程度,可分為4種不同的級別:λAHI<5為單純打鼾者(Non-SAHS, N),5≤λAHI≤15為輕度SAHS患者(Mild-SAHS,L),15<λAHI≤30為中度SAHS患者(Moderate-SAHS, M),λAHI>30為重度SAHS患者(Severe-SAHS, S).
實驗數(shù)據(jù)包括了不同SAHS級別患者的整夜錄音.受測的打鼾者中有單純型11人,輕度SAHS型11人,中度SAHS型10人,重度SAHS型10人,共計42人.表1是這些受試者的年齡、性別和PSG診斷的AHI值的統(tǒng)計分布,還包括我們從錄音中人工切割鼾聲和非鼾聲片段(包括呼吸聲和其他噪聲)的數(shù)量.鼾聲有46517個片段,呼吸聲有25357個片段,其他噪聲有12966個片段,所有切割的片段數(shù)量共計84840個.
表1 實驗數(shù)據(jù)統(tǒng)計
注: 3類聲音的總片段數(shù)為84840個.
表2 聲學特征集
表1中鼾聲的切割方法是用整夜錄音的鼾聲信號同步PSG標記的鼾聲,對準切割出錄音的鼾聲片段.呼吸聲和其他噪聲的數(shù)據(jù)是通過3個工作者主觀試聽之后切割的.其他噪聲包括生物噪聲(語音、咳嗽聲、悶哼聲等)和非生物噪聲(音樂聲、被子摩擦聲、關門聲等).
鼾聲、呼吸聲和其他噪聲在頻譜分布上有明顯的差異性.為了恰當描述這些差異性,我們對每個聲音片段提取了43維的特征集,主要包括4個方面: 頻譜能量類相關特征集(Spectral Energy related feature, SE),22維特征[10];基頻類相關特征集(Pitch Related feature, PR),3維特征[11];Mel倒譜系數(shù)相關特征集(MFCC related feature, MF),2維特征;頻譜余弦相似度特征集(Spectral Cosine Similarity feature, SCS),16維特征.表2給出了這些聲學特征參數(shù).
修正的頻譜質(zhì)心是指對頻譜質(zhì)心計算中的頻譜幅度修正為頻譜能量,提取所有幀的修正后的頻譜質(zhì)心的均值和差分作為特征.子帶能量特征是在頻域8000Hz內(nèi)均勻劃分出16個子帶,提取16個子帶的歸一化能量的均值和提取相鄰時間段的16個子帶能量的差分作為特征.在頻譜幅度值包絡下歸一化面積特征.頻譜熵特征是分別從時間方向和頻率方向?qū)β曌V圖計算熵,得到兩個熵值.
基頻是由聲源的周期性振動造成的,是聲音信號的最小周期的倒數(shù).現(xiàn)在有倒譜法、線性預測法、自相關法等多種方法計算基頻,本文使用自相關法來提取聲音的基頻,提取聲音片段的基頻均值、基頻方差和基頻密度,其中基頻密度表示一個聲音片段在持續(xù)時間內(nèi)具有基頻的比例.
對于Mel倒譜類特征,取MFCC維數(shù)為16,計算MFCC0~MFCC16.在此基礎上提取動態(tài)MFCC距離來描述信號Mel頻域的穩(wěn)定性,MFCC特征子集中只保留第0維系數(shù)MFCC0.
頻譜余弦相似度(SCS)相關特征集共包括4種余弦相似度的相關特征: 寬度為31.25Hz子帶的頻率方向頻譜余弦相似度(Frequency Detail SCS, FD);寬度為500Hz子帶的頻率方向頻譜余弦相似度(Frequency Overall SCS, FO);寬度為31.25Hz子帶的時間方向頻譜余弦相似度(Time Detail SCS, TD);寬度為500Hz子帶的時間方向頻譜余弦相似度(Time Overall SCS, TO).提取每種余弦距離的均值(1階原點矩)、方差(2階中心距)、偏度(3階中心距)和余弦距離的熵作為頻譜余弦相似度相關特征集.
ANN的每層神經(jīng)元與下一層神經(jīng)元全互連,神經(jīng)元之間不存在同層連接,這種結構通常被稱為多層前饋神經(jīng)網(wǎng)絡模型.訓練過程可分為前向傳播過程和誤差反饋傳播過程.我們對鼾聲及相關信號的分類使用ANN[12],分類流程如圖1所示.
圖1 ANN分類訓練的流程圖Fig.1 The flow chart of ANN classification training
在訓練階段,用表1中數(shù)據(jù)選取合適的訓練數(shù)據(jù)集,提取特征后對特征進行預處理,利用小批量訓練的方式將特征放到ANN中進行訓練,在訓練過程中運用丟棄法和自適應學習率的策略;在測試階段,從數(shù)據(jù)集中選取與訓練數(shù)據(jù)不重疊的測試數(shù)據(jù),在提取特征和預處理后放入訓練完成的ANN模型中得出測試集的分類結果.選取表1中80%患者的聲音片段作為訓練數(shù)據(jù).
用整個訓練集數(shù)據(jù)進行訓練的方法的梯度估計比任何子集所得到的方差要小,且收斂性好.但這種訓練耗資耗時,還可能導致高度依靠參數(shù)初始模型,收斂到局部最優(yōu),但并非全局最優(yōu)的情況.對于訓練數(shù)據(jù),每次選取一定數(shù)量的樣本放入神經(jīng)網(wǎng)絡中,選取每一次輸入樣本的代價函數(shù)的均值作為代價函數(shù)對模型進行收斂.這種方法有助于加快模型訓練的速度,并訓練出一個更好的模型,稱為小批量(minbatch)方法[13].本文使用小批量訓練的方法,并結合隨機梯度下降(Stochastic Gradient Descent, SGD)法[14].小批量訓練會從訓練數(shù)據(jù)中抽出小批量的數(shù)據(jù)并基于此估計梯度.
我們用取樣隨機化(sample randomization)的策略保證樣本的獨立同分布性.每一輪訓練時,隨機打亂訓練集后對索引重新排序,根據(jù)排序后的索引數(shù)組抽取樣本數(shù)據(jù).這種做法保證了每一輪次的完整訓練中每個樣本只用來訓練一次,并不會影響數(shù)據(jù)分布,從而保證學習輸出模型的一致性.
目前自適應學習率的算法很多,主要是通過一些策略使得學習率隨著訓練次數(shù)的增加逐步遞減,比較流行的有RMSProp(Root Mean Square Prop)和Adam算法[15].這些算法針對不同的網(wǎng)絡模型表現(xiàn)出的性能相當.本文采用Adam算法.
為保證生成模型的泛化效果,將對全部的訓練集重復訓練的次數(shù)記為迭代輪數(shù),記測試集snore,breath和other的分類錯誤率的均值為測試集錯誤率(r錯誤),將隨著迭代輪數(shù)測試集錯誤率的變化結果作為評價模型的標準.調(diào)整的方法是: 首先確定一個初始參數(shù)模型,在初始模型上,控制其他參數(shù)不變,依次調(diào)節(jié)隱含層層數(shù),隱含層節(jié)點個數(shù)、學習率、每次迭代選取的樣本個數(shù)(minbatch)和每層隨機丟棄的比例(dropout)[16],最后得到最優(yōu)化結果.
隱含層的層數(shù)多有助于提升模型的表示能力,隨著隱含層層數(shù)的增加,訓練集的擬合效果越來越好.但是一旦模型表示能力過強,則會造成過擬合的后果,與此同時,隱含層層數(shù)的增加會增加訓練時更多的內(nèi)存代價,因此需將隱含層的層數(shù)調(diào)整至合適的層數(shù).圖2(a)是不同隱含層訓練時的測試集錯誤率.結果顯示,當隱含層為2和3層時,模型收斂最快.隱含層節(jié)點個數(shù)的調(diào)整與隱含層層數(shù)一樣.圖2(b)是不同節(jié)點數(shù)訓練時的測試集錯誤率.當每層隱含層節(jié)點數(shù)為80個時,模型收斂速度最快,測試集錯誤率最低.
圖2 參數(shù)調(diào)整的迭代圖Fig.2 The iteration diagram of parameter adjustment
丟棄法的目的是防止過擬合.由于神經(jīng)網(wǎng)絡模型的復雜性,網(wǎng)絡模型往往會對訓練集過擬合,故在每一次訓練過程中對網(wǎng)絡的每一層隨機丟棄一定比例的節(jié)點不進行激活,而在測試時利用完整的節(jié)點進行測試,可以提升模型的泛化效果.圖2(c)給出了丟棄比例參數(shù)的調(diào)整.當丟棄比例為0.3時,測試集錯誤率最低.圖2(d)是不同minbatch個數(shù)的測試集錯誤率.從圖中可以發(fā)現(xiàn),當minbatch數(shù)量為2048時,測試集錯誤率最低.學習率和迭代次數(shù)等參數(shù)優(yōu)化調(diào)節(jié)過程與以上參數(shù)調(diào)試類似,不再一一陳述.
我們切割的各類聲音片段的總數(shù)如表1所示,分別為46517,25357,12966,按八二比例將它們分為訓練集和測試集.劃分有3種方案,如表3(@@@534頁)所示.第1種保持八二比例的原始數(shù)據(jù),顯然鼾聲、呼吸聲和其他噪聲片段的數(shù)量相差較大,鼾聲片段的數(shù)量遠遠大于呼吸聲和其他噪聲片段的數(shù)量.針對這種類別數(shù)據(jù)不平衡的問題,第2種方案是直接對訓練集里的多數(shù)類別的樣本進行下采樣(downsampling),即去除多數(shù)類別中多余的樣本量,使得各類樣本的數(shù)量接近.第3種方案是對訓練集中的少數(shù)類別的樣本進行上采樣(upsampling),即增加一些少數(shù)樣本的數(shù)量,使得各類樣本的數(shù)量接近.第3種方案對于訓練集中樣本數(shù)量較少的呼吸聲和其他噪聲片段,通過加入白噪聲的方式,合成新的信噪比為20dB的“呼吸聲”和“其他噪聲”加入訓練集的對應類別中,使得訓練集的呼吸聲與其他噪聲片段同鼾聲片段的數(shù)量一樣.3個方案中測試集相同.本文分別對訓練集進行下采樣和上采樣處理以解決類別不平衡問題.詳細數(shù)據(jù)見表3.
表3 訓練集和測試集的設置方案
對第1種方案,通過類似代價敏感學習的方式,訓練時,提升少數(shù)類別損失在整體代價函數(shù)中的權重,使得分類效果相對平衡.利用圖1設計的模型,對3種方案分別做了測試.我們用召回率(recall rate)R,精準率(precision)P和F1值等指標作為測試的結果,如圖3所示.對鼾聲和呼吸聲測試的R,P和F1值均達到了98%以上,而對其他噪聲測試的結果略弱一些,R,P和F1值在89%~95%之間.原因可能在分類的對象上: 鼾聲和呼吸聲自身的泛化效果較好,聲音差別不大,共性多,較容易訓練;而其他噪聲本身內(nèi)部的聲學特征有較大差異,而且數(shù)據(jù)量相對較少.
使用下采樣或上采樣數(shù)據(jù)量均衡方式對部分指標的正確率有所幫助.下采樣中R最高,達到99.7%,但P卻最低,為89%.上采樣方式的效果最為穩(wěn)定,無論是R,P還是F1值都有較高的正確率,對其他噪聲進行判斷得到的R,P和F1值均達到最大,分別為93.09%,93.04%和93.07%.從模型的穩(wěn)定性來看,使用上采樣方式的結果總體上要優(yōu)于使用下采樣的結果.
使用原始數(shù)據(jù)、下采樣和上采樣3種方案的平均R分別為96.61%,97.04%和96.80%;平均P分別為96.35%,95.45%和96.72%;平均F1值均在96%.從模型的均衡性的角度來看,訓練數(shù)據(jù)越多越好.下采樣由于削弱了訓練數(shù)據(jù)量,使得R與P之間難以保持一致.而上采樣用合成新的聲音的方式對訓練集中樣本量少的類別加大數(shù)量來提升其豐富性的方法有一定的作用,所以,上采樣的方案對提升整體分類效果較為明顯.
由于鼾聲和呼吸聲的數(shù)據(jù)量相對其他噪聲的要多,這種數(shù)據(jù)數(shù)量的不平衡易導致哪類的數(shù)據(jù)量越大,哪類的區(qū)分效果就越好.因此,不平衡的數(shù)據(jù)以及小數(shù)據(jù)量如何更好地用在人工神經(jīng)網(wǎng)絡上,這是未來我們要深入研究的問題.
圖3 3種測試方案的召回率、精準率和F1值的結果Fig.3 Results of recall rate, precision and F1 value for three test schemes
本文提出了利用ANN對鼾聲、呼吸聲和其他噪聲進行分類的方法.設計了小批量訓練與梯度下降結合的方案,采用隨機丟棄法和自適應學習率的策略,分別通過下采樣、上采樣和直接使用原始訓練集等方式對分類器進行了訓練,均獲得較好的分類效果,其中上采樣方式訓練得到的模型最優(yōu).本文方法對鼾聲、呼吸聲與其他噪聲能實現(xiàn)有效的分類.
致謝:感謝上海第六人民醫(yī)院耳鼻喉科的醫(yī)生和護士們對鼾聲數(shù)據(jù)采集的大力支持和幫助.