劉 明,黃繼風,高 海
(上海師范大學信息與機電工程學院,上海201418)
實踐證明,人類行為識別技術在智能家居領域起著至關重要的作用.例如,更準確地識別用戶的行為及其變化,使智能家居系統(tǒng)更好地為用戶提供相關幫助[1].傳統(tǒng)的行為識別方法側重于使用可穿戴式運動傳感器,如加速度計和陀螺儀來獲取用戶數(shù)據(jù).大量的已有研究[2-4]證明,加速度計與陀螺儀等運動傳感器能夠很好地識別單獨個體的動作,但無法獲取個體之外的其他信息,難以識別個體與整體環(huán)境之間的復雜交互行為.因此,研究人員開始嘗試使用圖像傳感器或聲音傳感器[5-10]來獲取用戶數(shù)據(jù),并對其行為進行識別.
雖然基于圖像或聲音傳感器的方法均可以獲取個體與整體環(huán)境間交互的信息,能夠識別更復雜的交互行為,但是價格較高,且容易受到安裝位置、燈光、死角、像素等諸多限制.基于聲音傳感器的行為識別方法價格低廉,容易部署,不會受到燈光及死角等問題的影響,更適合于家庭環(huán)境應用.研究人員提出了多種基于聲學的行為識別方法,從單一的可穿戴設備[6]到整體傳感器系統(tǒng)[7-8].然而,這些方法都需要對訓練數(shù)據(jù)進行逐幀標注,標注過程繁瑣,且容易受主觀因素影響,訓練數(shù)據(jù)較少.此外,由于每個人的行為聲音存在一定差異,導致這些方法的準確率依然較差.為了使模型能夠更準確地識別特定用戶的行為,研究人員嘗試將特定用戶的行為作為訓練數(shù)據(jù)來調整模型[9-10],這些方法需要用戶多次重復相同的行為,嚴重依賴于特定用戶的數(shù)據(jù),且只能保證對特定用戶的行為進行準確識別,泛化能力較差.
本文作者提出一種基于整體環(huán)境的聲音識別方法,能夠識別11 種常見的室內行為,不需要人工收集訓練數(shù)據(jù)或逐幀標注,也不需要通過獲取特定用戶提供數(shù)據(jù)來調整模型.用數(shù)據(jù)集以及Google AudioSet數(shù)據(jù)集[11]中的YouTube 視頻聲音片段,提取embedding 特征及原始數(shù)據(jù)的梅爾頻譜圖特征作為訓練集.由于數(shù)據(jù)集的量級較大,分類間嚴重不平衡.采用了深度強化學習方法來動態(tài)地控制每一批次數(shù)據(jù)的分布,用以解決數(shù)據(jù)不平衡問題.將數(shù)據(jù)批次作為強化學習中的環(huán)境的狀態(tài),將識別結果作為智能體的動作,把對各個行為的識別錯誤率函數(shù)作為執(zhí)行動作后獲取的獎勵信號,最終實現(xiàn)用戶的行為識別.
傳統(tǒng)的行為識別方法使用可穿戴運動傳感器,此類設備可以在智能手機[3-4]、智能手表[12-14]及可穿戴傳感器板[2]上靈活實施.KWAPISZ 等[3]的方法僅要求對象攜帶智能手機,可識別用戶步行、慢跑、上下樓、坐姿和站姿.THOMAZ 等[12]提出使用智能手表中的3 軸加速度計來檢測對象是否正在進餐.RAVI等[2]將傳感器板安裝在人體內,實現(xiàn)簡單的運動行為識別.這些工作的重點均對非常簡單的行為動作進行識別,可以通過增加傳感器的數(shù)量,識別更復雜的行為.然而,基于多傳感器的訓練數(shù)據(jù)集數(shù)量較少,且識別過程需要占用大量計算資源,基于復雜傳感器陣列的識別方法難以實現(xiàn).
由于傳統(tǒng)方法的局限性,研究人員提出聲學行為識別方法.YATANI 等[15]提出使用藍牙麥克風,從人類咽喉中收集聲學數(shù)據(jù),識別進食、說話和咳嗽等與咽喉運動相關的行為.THOMAZ 等[6]通過使用腕式聲學傳感器識別人類的進食行為.隨著智能手機的發(fā)展,智能手機的聲學傳感器也越來越多地被用于行為識別任務.一款名為AmbientSense 的Android 應用[7],可對23 種簡單的生活環(huán)境的進行分類.CHEN等[8]提供一種基于聲學傳感器的行為識別方法,從原始聲音數(shù)據(jù)中提取出梅爾頻率倒譜系數(shù)(MFCC)特征,并對6 種浴室中的常見行為進行識別.這些工作都需要收集用于訓練的數(shù)據(jù),并對原始聲音數(shù)據(jù)進行逐幀標注,部分模型需要特定用戶多次重復相同的行為后,才能獲取足夠的數(shù)據(jù)進行準確識別.
HWANG 等[16]開發(fā)了一個平臺用于收集用戶的聲音數(shù)據(jù),使用基于MFCC 特征的高斯直方圖生成全局K近鄰分類器,以識別基本的聲音場景.但是,該方案仍然需要收集用戶數(shù)據(jù),且識別性能很大程度上取決于已有訓練集的大小和質量.NGUYEN 等[9]利用半監(jiān)督學習方法將在線FreeSound 數(shù)據(jù)與用戶自己的錄音結合起來,在手動過濾離群值之后,從123 個FreeSound 聲音片段提取MFCC 特征,并進行半監(jiān)督高斯混合模型(GMM)訓練.
FreeSound 是一個聲音數(shù)據(jù)樣本存儲庫,有超過4.0×105聲音片段.SALAMON 等[17]從FreeSound 數(shù)據(jù)庫中選擇的18.5 h的城市聲音片段,建立了UrbanSound數(shù)據(jù)庫.S?GER等[18]在聲音的標簽中添加形容詞和動詞,改進了FreeSound 數(shù)據(jù)庫,并建立了AudioPairBank 數(shù)據(jù)集.ROSSI 等[10]基于高斯混合模型從FreeSound 數(shù)據(jù)庫提取MFCC 特征,并進行環(huán)境識別,然而,由于訓練集的大小有限(23 個行為分類僅有4 678 個聲音樣本),分類準確率僅為38%,在手動過濾38%的樣本作為異常值后,分類準確率達到了57%.
Google發(fā)布的聲音數(shù)據(jù)集AudioSet[11]共分為527類,所有聲音片段長度均為10 s,其標簽為10 s內該聲音片段中發(fā)生的所有事件,而非逐幀標注.AudioSet數(shù)據(jù)集還提供VGGish 模型[19]提取的embedding 特征.VGGish模型將原始聲音數(shù)據(jù)按秒轉換為特征,并使用主成分分析(PCA),僅保留前128個PCA 系數(shù).一個128 維的embedding 特征向量代表1 s 的聲音片段,因此數(shù)據(jù)集內的每個聲音片段為10 個128 維的embedding特征向量.
強化學習是近年來機器學習領域的研究熱點之一,是一種用自主學習的數(shù)學模型,在很多算法中起著重要的作用[20].它無需標簽,僅僅需要執(zhí)行動作后的獎勵信號決定如何與一個動態(tài)且未知的環(huán)境進行交互,以期將累計獎勵最大化[21].深度學習與強化學習結合,構成了深度強化學習,比如:基于深度強化學習方法的Atari2600 游戲[22]、戰(zhàn)勝了人類世界冠軍的圍棋程序AlphaGo[23]等.
在對模型進行訓練之前,需要先考慮如何從AudioSet數(shù)據(jù)集中選擇可以用于行為識別的標簽,并將其與預測的行為進行關聯(lián).FreeSound 數(shù)據(jù)庫以及AudioSet數(shù)據(jù)集中并不能同時找到所有典型的室內行為.此外,將識別目標限制在常見行為,且聲音容易獲取并識別的范圍內,某些標簽未被選中,比如“睡覺”、“坐臥”、“站立”及“房間里沒有人”等.鑒于并非所有家庭都飼養(yǎng)寵物,沒有選擇任何寵物相關的類別.由于兩大數(shù)據(jù)庫對標簽的分類設計無法與我們要識別的目標行為絕對匹配,則采用間接匹配方法,確定與目標行為密切相關的對象及其整體環(huán)境,并選擇這些對象和環(huán)境代表需要識別的目標行為.例如,使用“water tap(水龍頭聲)”和“sink(水槽流水聲)”分別代表“洗手”和“洗臉”,因為這2個特征都與使用洗手池有關,且非常相似.
基于上述考慮,確定了11 項常見室內行為,將它們與13 個標簽相關聯(lián).表1 展示了目標行為與AudioSet標簽之間的關聯(lián).
類別不平衡是機器學習領域中的一個常見的問題,具體表現(xiàn)為:數(shù)據(jù)集中某一個或幾個分類樣本的數(shù)量遠低于其他分類,AudioSet類別間的分布嚴重不平衡.圖1 展示了數(shù)據(jù)集中每個類別樣本的原始數(shù)量之比例.由圖1 可以看出,演奏音樂的樣本占了近50%,這將導致預測結果嚴重傾向于量級高的分類,嚴重影響模型的識別性能,因此針對該問題,使用深度強化學習方法控制每一數(shù)據(jù)批次的分布,避免模型的訓練受到數(shù)據(jù)分布不平衡的影響.
表1 AudioSet標簽與行為的對照表
圖1 AudioSet中各分類樣本的大致分布
在強化學習中,對于當前輸入狀態(tài)s,機器在某種策略π的指引下選擇動作a=π(s),采用狀態(tài)-動作值函數(shù)(Q值函數(shù))評估策略,其數(shù)學模型為:
其中,r為獎勵值;t為當前行動的步數(shù);γ為衰減系數(shù),取值范圍為[0,1],是用來保證長期累積獎勵能夠趨于收斂.對式(1)進一步推導可得Bellman方程:
其中,s'為狀態(tài)s下執(zhí)行動作a后轉移到的新狀態(tài);r為狀態(tài)s執(zhí)行動作a后轉移至s'時獲取的獎勵;a'為根據(jù)新的狀態(tài)所作出的新動作強化,學習任務中策略的改進與值函數(shù)的改進是一致的.根據(jù)式(2)求得Q(s,a)后,以策略替換π,Bellman方程變換為:
其中'Q'(s''a')為使用最優(yōu)策略π'時,所產(chǎn)生的期望累積獎勵.
每一輪中迭代的損失函數(shù)為:
其中,目標值為:
由于在實際應用中,對于值函數(shù)的估計太過樂觀,將yi其中的目標改為:
本研究的深度強化學習方法總體框架如圖2 所示.該方法主要由2 個部分構成:環(huán)境和智能體.其中,環(huán)境每次提供一定批次的數(shù)據(jù)作為狀態(tài),智能體根據(jù)狀態(tài),識別其中包括的行為,并執(zhí)行動作;環(huán)境結合樣本真實分類及智能體發(fā)出的動作進行評價,將評價信號作為智能體獎勵信號,更新參數(shù).同時,環(huán)境如繼續(xù)提供下一批次數(shù)據(jù),則根據(jù)智能體對當前批次樣本的識別錯誤率的比例,決定下一批次提供數(shù)據(jù)的比例.
圖2 深度強化學習流程圖
具體流程如下:
1)訓練開始時,環(huán)境將包含多個數(shù)據(jù)樣本的批次作為狀態(tài)提供給智能體,其中各個行為的分類比例相同.
2)智能體接收到狀態(tài)后,對其中的每個數(shù)據(jù)樣本進行識別,得出其包含的行為類別,作為動作提交給環(huán)境.
3)當環(huán)境接收到智能體提交的動作后,計算各行為類別的識別錯誤率,并將其作為獎勵值.假設行為共分K 個類,智能體對各行為的識別錯誤率分別為C1'C2'…'CK.獎勵函數(shù)共分為兩個部分,第一個部分為對各個分類的錯誤率平方和的負值;第二部分為最低與最高分類錯誤率的差值,差值越大,說明模型的分類不平衡情況越嚴重.由此,
如果智能體連續(xù)對多個批次的預測識別錯誤率均低于預先設定的閾值,則停止訓練;否則,決定下一批次提供的數(shù)據(jù)樣本的分類比例.假設每批次提供N 個樣本,則下一批次提供的第k個分類的樣本數(shù)
深度學習網(wǎng)絡是卷積神經(jīng)網(wǎng)絡(CNN)與長短期記憶(LSTM)網(wǎng)絡的結合,其輸入共分為兩個部分:1)原始數(shù)據(jù)的梅爾頻譜圖,統(tǒng)一截取為1 024×512 的格式;2)embedding 特征,格式為10×128,第一個維度代表時間,第二個維度代表特征.為了方便使用2維卷積神經(jīng)網(wǎng)絡,將數(shù)據(jù)樣本的格式轉換為3維,并使用卷積神經(jīng)網(wǎng)絡進一步提取與時間及特征均相關的更抽象的關系.為了防止梯度爆炸的同時,保留更加精細的特征,網(wǎng)絡結構中未使用池化層,僅在卷積層后進行批量歸一化,使用LSTM 網(wǎng)絡提取時序相關的信息,網(wǎng)絡結構如圖3 所示,輸出層參考KONG 等[24]提出的attention model 層,以實現(xiàn)網(wǎng)絡的多分類預測功能.
圖3 智能體內部神經(jīng)網(wǎng)絡結構圖
該深度強化學習模型在Ubuntu 16.04 系統(tǒng)平臺上訓練和測試,基于Google 的TensorFlow 框架,使用Keras深度學習程序包與Python 3.6開發(fā)軟件,使用NVDIA GTX 1070加速實驗.
選取樣本51 360 條,其中訓練集樣本數(shù)量為45 310 條,測試集樣本數(shù)量為6 050 條.數(shù)據(jù)的原始形式為以10 s 為單位的聲音片段,訓練數(shù)據(jù)集為音頻的梅爾頻譜圖,以及使用VGGish 模型從原始數(shù)據(jù)集中提取的embedding 特征,embedding 特征數(shù)據(jù)的信號采樣統(tǒng)一為128 Hz.模型訓練參數(shù)如下:學習率為0.000 1,mini-batch 大小為64,迭代次數(shù)為1 000,衰減系數(shù)γ 為0.9,采用Adam 算法訓練網(wǎng)絡,損失函數(shù)為分類交叉熵.
在訓練集上進行10 次交叉驗證,將其取平均值作為最終測試結果,驗證模型的泛化能力.本方法與傳統(tǒng)的合成少數(shù)類過采樣技術(SMOTE)方法在相同網(wǎng)絡結構下,總體分類準確率如表2所示.
從表2 可以看出,在解決分類不均衡問題上,本方法比SMOTE 方法效果更好.采用不同結構及過采樣解決方法在分類準確率上相差較大,說明神經(jīng)網(wǎng)絡在訓練過程中,學習到了一些特征,有助于降低數(shù)據(jù)不平衡對模型帶來的影響.
實驗結果如圖4 所示,本方法的總體識別準確率達到了87.5%,對每個行為的識別準確率均超過了83%.
表2 本方法與過采樣方法的分類準確率結果對比
由于AudioSet 數(shù)據(jù)集本身存在的分類嚴重不平衡問題,本文作者設計了基于深度強化學習思想的訓練方法,對于每一批次的預測結果,動態(tài)地調整下一批次的數(shù)據(jù)分類占比,避免了由數(shù)據(jù)集的分類不平衡問題對模型分類效果造成的影響.通過大量交叉實驗證明,本方法的總體分類準確度達到87.5%,對所有分類的準確度都在83%以上.相較于SMOTE 方法,本方法準確率達到預期效果,且不需要采集用戶數(shù)據(jù),能夠達到對聲學行為進行分類的目的.
圖4 在測試集上的識別結果