鐘楚軼 ,朱建軍
(1.長春博立電子科技有限公司,吉林 長春 130012;2.吉林化工學(xué)院 信息與控制工程學(xué)院,吉林 吉林 132022)
人類活動識別(簡稱HAR)是通過收集和分析其運(yùn)動數(shù)據(jù)來對人正在做的事情進(jìn)行定義和分類[1-2].除了采用圖片形式的數(shù)據(jù)集對模型進(jìn)行訓(xùn)練,傳感器數(shù)據(jù)集也被廣泛應(yīng)用到人體活動識別問題當(dāng)中.傳感器數(shù)據(jù)序列是由智能手機(jī)或可穿戴式傳感器收集的,然后對數(shù)據(jù)進(jìn)行分析并將其分類為已知的明確定義的運(yùn)動或活動,例如坐著、跑步或跳躍等[3-5].目前的研究難點(diǎn)在于每秒大量的觀測數(shù)據(jù)、觀測時(shí)間的連續(xù)性以及缺乏將加速度計(jì)數(shù)據(jù)鏈接到已知運(yùn)動的明確方法.隨著機(jī)器學(xué)習(xí)以及人機(jī)交互技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)技術(shù)現(xiàn)在已經(jīng)被成熟運(yùn)用到各個(gè)領(lǐng)域,在人體活動識別領(lǐng)域中,神經(jīng)網(wǎng)絡(luò)識別出的結(jié)果可以達(dá)到很高的水平,但存在的困難仍然是海量數(shù)據(jù)的處理[6-9].傳統(tǒng)采用傳感器數(shù)據(jù)集對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練時(shí),數(shù)據(jù)集中包含大量的噪聲干擾以及無效數(shù)據(jù),會影響訓(xùn)練效率以及神經(jīng)網(wǎng)絡(luò)的性能.提出一系列針對傳感器數(shù)據(jù)集的處理方法與見解:1.如何準(zhǔn)備和預(yù)處理傳感器時(shí)間序列分類數(shù)據(jù);2.如何根據(jù)數(shù)據(jù)可視化對數(shù)據(jù)集進(jìn)行優(yōu)化;3.構(gòu)架問題,搭建神經(jīng)網(wǎng)絡(luò)和HAR網(wǎng)絡(luò)模型的評估和改進(jìn).
圖1、2是兩個(gè)不同參與者身上傳感器所收集的數(shù)據(jù)組的可視化.對比發(fā)現(xiàn)在總體趨勢一致的情況下仍可以看到一些差異:與圖1相比,圖2的整體波動更大,每個(gè)部分的邊界更加模糊.在圖1、2各自的第4個(gè)子圖中,可以看到整個(gè)序列是相似的,并且某些動作匹配得很好.但是,它們之間仍然存在一些差距,例如圖2輸出的類別7的持續(xù)時(shí)間比圖1輸出的持續(xù)時(shí)間更長,并且其中沒有0值.每一個(gè)類別代表一種動作,因此可見數(shù)據(jù)中存在一些誤差或無效數(shù)據(jù).
圖1 單個(gè)個(gè)體參與者數(shù)據(jù)組可視化a
圖2 單個(gè)個(gè)體參與者數(shù)據(jù)組可視化b
這些誤差或無效數(shù)據(jù)可能是由于每個(gè)個(gè)體受試者執(zhí)行一系列動作所花費(fèi)的時(shí)間、每個(gè)動作之間是否存在延遲以及每個(gè)個(gè)體身體運(yùn)動幅度的差異所產(chǎn)生的影響.這些影響看似微弱,但實(shí)際上嚴(yán)重干擾了結(jié)果的預(yù)測.例如,每個(gè)單獨(dú)活動之間的延遲可能是受試者站立或坐一段時(shí)間,這可能被檢測為活動站立或坐,這樣的數(shù)據(jù)在網(wǎng)絡(luò)模型訓(xùn)練中會造成很多不必要的計(jì)算,影響訓(xùn)練效率并會干擾到網(wǎng)絡(luò)模型的性能.
為了避免上述問題的發(fā)生,需要進(jìn)一步對數(shù)據(jù)進(jìn)行處理,弄清楚每個(gè)活動持續(xù)的時(shí)間,由此可以判斷出哪些部分是噪聲,并去除掉這些噪聲.如果在可視化中,一項(xiàng)活動的數(shù)據(jù)要多于另一項(xiàng)活動,這表明代表性較低的活動可能更難建模.采用盒須圖的方式達(dá)到上述目的.
按主題和活動將所有觀察結(jié)果分組,以查看每個(gè)活動花費(fèi)了多少時(shí)間以及每個(gè)個(gè)體花費(fèi)在一個(gè)特定活動上的時(shí)間.圖3顯示了每個(gè)主題的每個(gè)活動持續(xù)時(shí)間的分布.每個(gè)盒里面的橫線代表該活動持續(xù)時(shí)間的平均值,從圖3中可以看到活動0(無活動)在整個(gè)時(shí)間序列中沒有發(fā)生,而活動1(坐在電腦前)和活動7(站立交談)出現(xiàn)的頻次最多, 其他活動例如活動2(起立行走)、活動5(上下樓梯)以及活動6(和他人行走并交談)出現(xiàn)的頻次較少,通過圖3,可以輕松了解活動在整個(gè)持續(xù)時(shí)間內(nèi)的分布情況.在數(shù)據(jù)準(zhǔn)備以及模型訓(xùn)練中,重復(fù)次數(shù)較少的活動可以排除在外,這樣可以減少計(jì)算量,提升效率.
活動序號圖3 數(shù)據(jù)盒須圖
了解單個(gè)個(gè)體的數(shù)據(jù)后,將著重研究15個(gè)個(gè)體整體的情況.圖4(a)將15個(gè)個(gè)體的數(shù)據(jù)統(tǒng)一用圖像表示出來,每個(gè)子圖代表一個(gè)個(gè)體數(shù)據(jù)的軌跡,每個(gè)跡線是X,Y和Z加速器值的混合跡線.從圖中可以看出,絕大多數(shù)的子圖都由兩個(gè)跡線疊加而成,這也符合對所有活動的理解,在每個(gè)個(gè)體所做的7項(xiàng)活動中,x,y軸方向發(fā)生的運(yùn)動占了絕大部分,鮮有z軸方向上的活動軌跡.可以看出,兩個(gè)跡線波動是同步的,這意味著X和Y加速器的一般變化是同時(shí)發(fā)生的.對于所有軌跡,都可以在開始時(shí)找到較大的峰值,這可能是實(shí)驗(yàn)啟動的干擾,這些干擾會影響后面訓(xùn)練的進(jìn)程,將被視為噪聲被過濾掉.跡線看起來具有相同的比例,但幅度可能有所不同,例如將跡線1和2做比較,跡線1要平穩(wěn)得多.跡線內(nèi)的重新縮放似乎比交叉跡線好得多,如果這種情況發(fā)生在測試結(jié)果上,則會干擾相應(yīng)的預(yù)測和識別.
圖4(b)是15個(gè)對象的直方圖.每個(gè)對象有3個(gè)直方圖,分別代表X,Y和Z的加速器值.之前已經(jīng)了解到Z加速器值數(shù)據(jù)在數(shù)據(jù)集中占的比例很小,因此在直方圖中Z部分也很少出現(xiàn).從圖中可以看出,每個(gè)直方圖的分布都類似于高斯分布.X加速器值和Z加速器值的直方圖位于軸的左側(cè),Y加速器值直方圖位于右側(cè).Y加速器值的分布比X和Z的分布更銳利.盡管看起來有些分散,但大多數(shù)直方圖都聚集在2 000左右.這種現(xiàn)象表明,對每個(gè)主題數(shù)據(jù)的主題和軸上的坐標(biāo)進(jìn)行規(guī)范化非常重要(例如以單位方差平移到零均值,或標(biāo)準(zhǔn)正態(tài)分布).通過數(shù)據(jù)可視化,對數(shù)據(jù)集所包含的內(nèi)容有了更深的理解,也方便處理數(shù)據(jù)集中包含的噪聲和無效數(shù)據(jù).至此,將對數(shù)據(jù)進(jìn)行規(guī)范化,過濾掉噪聲以及無效數(shù)據(jù),提高使用數(shù)據(jù)的效率,因此也可以更好地對問題進(jìn)行建模.
(a)數(shù)據(jù)集整體數(shù)據(jù)軌跡圖
(b)數(shù)據(jù)集整體數(shù)據(jù)直方圖圖4 整體數(shù)據(jù)集可視化
在對數(shù)據(jù)進(jìn)行可視化分析處理之后,將數(shù)據(jù)載入一維神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練.從原始數(shù)據(jù)中過濾掉噪聲以及無效數(shù)據(jù),并設(shè)計(jì)一個(gè)滑動窗口作用于數(shù)據(jù)集上,數(shù)據(jù)將被分成2.56秒的窗口序列,窗口之間有50%的重疊值.數(shù)據(jù)集的70%(11個(gè)個(gè)體)用于訓(xùn)練,而30%(4個(gè)個(gè)體)用于測試.
一維神經(jīng)網(wǎng)絡(luò)模型將獲得一維數(shù)據(jù)序列,它將學(xué)習(xí)從觀測序列中提取特征,以及如何將內(nèi)部特征映射到不同的活動類型.使用一維神經(jīng)網(wǎng)絡(luò)作為模型的優(yōu)勢在于,它可以直接從原始數(shù)據(jù)序列中學(xué)習(xí),而無需領(lǐng)域?qū)I(yè)知識來手動重新組織輸入功能,從而提高了效率.一維神經(jīng)網(wǎng)絡(luò)模型可以學(xué)習(xí)數(shù)據(jù)序列的內(nèi)部表示,并且在理想的情況下可以對具有工程特征的數(shù)據(jù)集進(jìn)行模型擬合并達(dá)到出色的性能效果.
預(yù)期輸出是一個(gè)六維的向量,其中包含活動類型和給定窗口的相對概率,模型的結(jié)構(gòu)為:兩層的一維卷積神經(jīng)網(wǎng)絡(luò)層,用于規(guī)范化的輟學(xué)層,以及池化層.池化是在卷積層之后通常在卷積網(wǎng)絡(luò)中使用的特征提取層.池化技術(shù)用于在卷積層后獲得的小鄰域中集成特征點(diǎn)以獲得新特征.一方面,它防止了無用參數(shù)增加計(jì)算時(shí)間和復(fù)雜度;另一方面,它增加了特征的集成.池化過程是提取高度抽象特征表示圖像,圖像具有“靜態(tài)”屬性,這意味著圖像區(qū)域中的有用特征同樣的可能適用于另一個(gè)領(lǐng)域.因此,為了描述大圖像,集合不同位置的特征要素信息,通常取平均值或最大值用于匯總統(tǒng)計(jì)信息.CNN層(卷積神經(jīng)網(wǎng)絡(luò))通常以二層為一組進(jìn)行設(shè)計(jì),因此該模型可以更好地從輸入數(shù)據(jù)中學(xué)習(xí)特征.CNN模型的學(xué)習(xí)速度非常快,因此需要一個(gè)輟學(xué)層來減慢學(xué)習(xí)過程并獲得更好的最終結(jié)果.池化層將有助于減少復(fù)雜度和優(yōu)化學(xué)習(xí)功能,從而將其合并為最重要的特征元素.在CNN層和池化層之后,學(xué)習(xí)到的特征將作為矢量存儲.在矢量到達(dá)輸出層之前,它將經(jīng)過另一個(gè)緩沖層,該緩沖層是學(xué)習(xí)的特征和輸出之間的完全連接層,以便在預(yù)測之前進(jìn)行最終積分.在本模型中,并行選擇64個(gè)特征圖,內(nèi)核(Kernel Size)大小為3.特征圖是輸入被處理或集成的次數(shù),內(nèi)核大小是輸入被讀取或處理到特征圖上所需要的時(shí)間單位.擬合模型后,將模型在測試數(shù)據(jù)集上進(jìn)行評估,并將返回測試數(shù)據(jù)集來檢測模型擬合的準(zhǔn)確性.
為了獲得更高的準(zhǔn)確性,通常進(jìn)行多次實(shí)驗(yàn),因此重復(fù)此過程數(shù)次以獲得更好的結(jié)果.首先將采用未經(jīng)過處理的原始數(shù)據(jù)集進(jìn)行訓(xùn)練,隨后在同樣的網(wǎng)絡(luò)模型結(jié)構(gòu)下用處理后的數(shù)據(jù)集進(jìn)行訓(xùn)練,訓(xùn)練后模型的準(zhǔn)確率結(jié)果如表1所示.
表1 訓(xùn)練結(jié)果對比
從表1數(shù)據(jù)對比可以看出,對數(shù)據(jù)集數(shù)據(jù)進(jìn)行處理,可以使訓(xùn)練后的網(wǎng)絡(luò)性能得到提升,與此同時(shí),精簡數(shù)據(jù)集后,減少了很多不必要的計(jì)算,提升了訓(xùn)練速度.一維神經(jīng)網(wǎng)絡(luò)模型在人體活動識別問題中可以取得不錯(cuò)的準(zhǔn)確率(90+%).
通過對數(shù)據(jù)進(jìn)行可視化處理,找到數(shù)據(jù)集中噪聲以及無效數(shù)據(jù),并去除掉這些干擾.隨后構(gòu)建一維卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行數(shù)據(jù)集的訓(xùn)練以及網(wǎng)絡(luò)的機(jī)器學(xué)習(xí).整個(gè)網(wǎng)絡(luò)在python語言環(huán)境下搭建,并得出相應(yīng)精準(zhǔn)度結(jié)果.將原始數(shù)據(jù)集和經(jīng)過處理后的數(shù)據(jù)集作用于同樣結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,通過對結(jié)果的對比分析,經(jīng)過處理后的數(shù)據(jù)集使網(wǎng)絡(luò)模型在訓(xùn)練后準(zhǔn)確率得到提升,并通過精簡數(shù)據(jù)集使訓(xùn)練速度和網(wǎng)絡(luò)效率都有所提升.神經(jīng)網(wǎng)絡(luò)已經(jīng)可以在人類識別方面得到不錯(cuò)的結(jié)果,后續(xù)可通過研究多維卷機(jī)神經(jīng)網(wǎng)絡(luò)以及其他神經(jīng)網(wǎng)絡(luò)從而得到更精準(zhǔn)的結(jié)果,并延展到其他相關(guān)領(lǐng)域.