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