賴志偉 鄧述為
摘要:文章詳細(xì)闡述了一個(gè)基于機(jī)器學(xué)習(xí)的人類活動(dòng)識別方法。該方法對人類活動(dòng)數(shù)據(jù)進(jìn)行探索和預(yù)處理,提出了一個(gè)對人類活動(dòng)進(jìn)行識別的LSTM模型。本文中的問題是一個(gè)典型的分類問題,目標(biāo)變量是6種不同種類的人類活動(dòng),選擇準(zhǔn)確率作為模型的評測指標(biāo)。具體方法是,通過讀取訓(xùn)練階段保存到本地的模型,以相同的數(shù)據(jù)構(gòu)造方式對測試集進(jìn)行預(yù)測評估,不斷地調(diào)整學(xué)習(xí)率參數(shù)。研究表明,本文提出的LSTM模型在迭代10次、隱層數(shù)為50、學(xué)習(xí)率為0.01時(shí)達(dá)到了比較好的準(zhǔn)確率,在測試集上有比較好的表現(xiàn)。
關(guān)鍵詞:機(jī)器學(xué)習(xí);人類活動(dòng)識別;統(tǒng)計(jì)分析;異常預(yù)警
中圖分類號:TN37? 文獻(xiàn)標(biāo)志碼:A
0 引言
人類活動(dòng)識別在近幾年發(fā)展迅速,很大部分原因源于智能手機(jī)的發(fā)展。當(dāng)前,越來越多的傳感器被直接植入智能手機(jī)內(nèi)部。例如:利用氣壓計(jì)可以測量當(dāng)前環(huán)境下的大氣壓強(qiáng)值,從而推算出當(dāng)前用戶所在的海拔高度,這對GPS有著輔助作用,使得測試可獲得更精確的垂直高度的變化[1]。目前,智能手機(jī)傳感器數(shù)據(jù)的分析尚處于萌芽階段,由于傳感器數(shù)據(jù)種類繁多、數(shù)據(jù)龐大,對其大規(guī)模的實(shí)時(shí)計(jì)算和處理要求非常高。深度學(xué)習(xí)技術(shù)的發(fā)展對識別準(zhǔn)確度也有非常大的提升。一直以來,計(jì)算機(jī)模擬真實(shí)生產(chǎn)生活的場景被稱為虛擬現(xiàn)實(shí),也就是人們在使用某種工具的過程中感受到的一種真實(shí)環(huán)境,而要實(shí)現(xiàn)虛擬現(xiàn)實(shí)技術(shù)首要的基礎(chǔ)就是對現(xiàn)實(shí)環(huán)境的分析和識別,而這些分析識別中最重要的就是人體動(dòng)作的識別和分析[2]。人體動(dòng)作識別最終的目標(biāo)是基于人體動(dòng)作跟蹤和人體特征提取的基礎(chǔ)上,對人體的動(dòng)作特征進(jìn)行分析進(jìn)而自動(dòng)識別人體動(dòng)作的類型。本文就是應(yīng)用機(jī)器學(xué)習(xí)算法探索人類活動(dòng)識別的應(yīng)用[3]。
綜上可知,人體動(dòng)作的識別涉及人們?nèi)粘I畹姆椒矫婷?,對改善和提高人們的生活質(zhì)量有重要的作用和實(shí)際應(yīng)用意義。因而,目前很多高科技企業(yè)都把目光放到了以此為基礎(chǔ)的科技提升和改造上。該項(xiàng)技術(shù)涉及圖像處理、模式識別、機(jī)器視覺等多方面內(nèi)容。相信隨著科技的不斷發(fā)展,人體動(dòng)作識別的推廣和應(yīng)用會在人們的生產(chǎn)生活中發(fā)揮巨大的作用。
1 人類活動(dòng)識別
1.1 數(shù)據(jù)探索
人類活動(dòng)識別仍有許多問題正促使新技術(shù)的發(fā)展,以提高在現(xiàn)實(shí)的條件下的準(zhǔn)確性。其中,一些挑戰(zhàn)是:要度量的屬性選擇;便攜的、不顯眼的、廉價(jià)的數(shù)據(jù)采集系統(tǒng)的構(gòu)造;特征提取及推理方法的設(shè)計(jì);在現(xiàn)實(shí)的條件下收集數(shù)據(jù);支持新用戶而無需對系統(tǒng)進(jìn)行再訓(xùn)練的靈活性;在滿足能量和處理需求的移動(dòng)設(shè)備上的實(shí)現(xiàn)[4]。
本文考慮的是能夠從可穿戴慣性傳感器中估計(jì)人類活動(dòng)的識別方法。在過去幾十年中,該類識別取得了長足的發(fā)展,不僅用最先進(jìn)的方法脫離了功能工程,而且完全采用了端到端的深度學(xué)習(xí)方法。通過建立實(shí)驗(yàn)、準(zhǔn)備數(shù)據(jù)集和驗(yàn)證活動(dòng)識別方法的最佳實(shí)踐也發(fā)生了類似的變化。人類活動(dòng)識別過程如圖1所示。
本文使用UCI數(shù)據(jù)庫中智能手機(jī)收集的人類活動(dòng)識別數(shù)據(jù)。該數(shù)據(jù)是從一組年齡在19~48歲之間的30名志愿者中收集的。其中,每個(gè)人都在腰部佩戴了一部智能手機(jī),通過行走、上樓、下樓、靜坐、站立、平躺等活動(dòng),利用智能手機(jī)中的嵌入式加速度計(jì)和陀螺儀獲取每個(gè)活動(dòng)的數(shù)據(jù),以50 Hz的恒定頻率捕獲3軸線性加速度和3軸角速度的行為數(shù)據(jù),并通過觀察活動(dòng)視頻人工標(biāo)記行為類型。本文將獲得的數(shù)據(jù)分為兩組,其中70%的數(shù)據(jù)用于訓(xùn)練,30%的數(shù)據(jù)用于測試。
下載的數(shù)據(jù)已經(jīng)應(yīng)用噪聲濾波器對加速度計(jì)和陀螺儀的傳感器信號進(jìn)行預(yù)處理,現(xiàn)在以2.56s和50%重疊的固定寬度滑動(dòng)窗口進(jìn)行采樣。傳感器加速度信號具有重力和身體運(yùn)動(dòng)的分量。因此,本文使用濾波器將其分離成身體加速度和重力。假設(shè)重力僅具有低頻分量,使用具有0.3 Hz截止頻率的濾波器。對于每個(gè)窗口通過計(jì)算時(shí)域和頻域的變量來獲得特征向量。此外,數(shù)據(jù)被規(guī)范化為 [-1,1]的數(shù)據(jù)區(qū)間,每一行數(shù)據(jù)都是一個(gè)特征向量。
本文沒有使用數(shù)據(jù)集中直接提供的訓(xùn)練集數(shù)據(jù),因?yàn)樵摂?shù)據(jù)包含了很多冗余的數(shù)據(jù),例如均值、最大最小值等統(tǒng)計(jì)信息,而是使用了原始的加速傳感器和陀螺儀提供預(yù)處理后的數(shù)據(jù),它們被保存在數(shù)據(jù)集的文件夾下。
數(shù)據(jù)的基本情況如表1所示。其中,移動(dòng)窗口數(shù)量可以視為由128個(gè)連續(xù)的活動(dòng)值組成,因此可以作為后續(xù)建模中的序列。數(shù)據(jù)來源包括總的加速度、分解后的身體加速度和陀螺儀在x、y、z3個(gè)維度上的值。
通過對標(biāo)簽數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,行走、平躺、站立、靜坐、上樓和下樓6種行為的分布較為平衡。其中,上下樓的數(shù)據(jù)略微少一些,站立和平躺的數(shù)據(jù)稍多,但是最多與最少的數(shù)據(jù)在訓(xùn)練集中也僅差7%,總的標(biāo)簽數(shù)據(jù)分布情況較為均衡。
1.2 數(shù)據(jù)預(yù)處理
本文使用百度Paddle平臺,需要從原始數(shù)據(jù)中獲取數(shù)據(jù)構(gòu)建成numpy數(shù)組。原始特征數(shù)據(jù)分布在幾個(gè)文件中,需要逐個(gè)讀出然后組合在一起,從而確定數(shù)組維度。通常的機(jī)器學(xué)習(xí)框架需要的特征數(shù)據(jù)是batch size在前,特征維度在后,因此需要將數(shù)據(jù)進(jìn)行轉(zhuǎn)換。而在標(biāo)簽數(shù)據(jù)讀取中,數(shù)據(jù)標(biāo)簽是從0開始編號。
根據(jù)上面的輔助函數(shù),平臺分別讀取訓(xùn)練集和測試集。下載的數(shù)據(jù)集直接提供組裝好的訓(xùn)練集數(shù)據(jù)??紤]到該訓(xùn)練集中有過多的冗余數(shù)據(jù),本文沒有直接使用該訓(xùn)練集,而是自行組裝訓(xùn)練集。測試集的情況類似。由于數(shù)據(jù)量較大,因此一般不會直接將所有數(shù)據(jù)進(jìn)行訓(xùn)練,而是分為幾個(gè)批次分別處理。
1.3 模型構(gòu)建
在數(shù)據(jù)探索階段,可以發(fā)現(xiàn)數(shù)據(jù)有著非常明顯的時(shí)間特征,因此考慮選擇RNN模型。采用深度學(xué)習(xí)算法,無論是常用的卷積神經(jīng)網(wǎng)絡(luò),還是RNN模型都可以幫助用戶提取數(shù)據(jù)中心的特征,而不需要利用傳統(tǒng)機(jī)器學(xué)習(xí)算法中人工提取特征的方法。原始的RNN模型在每一個(gè)時(shí)間步的計(jì)算都與前面N次的時(shí)間步的結(jié)果相關(guān),一旦時(shí)間步延展到很長,計(jì)算量會呈指數(shù)級增長,導(dǎo)致訓(xùn)練時(shí)間大幅增加,并且容易導(dǎo)致梯度消失的問題,因此本文將LSTM作為RNN的替代。
LSTM在RNN的基礎(chǔ)上,添加了門控和細(xì)胞狀態(tài)。有3類不同的門控,分別是遺忘門、輸入門和輸出門。3種門控的打開和關(guān)閉以及開關(guān)的程度決定了有多少信息會在當(dāng)前LSTM單元中流動(dòng)。細(xì)胞狀態(tài)代表了當(dāng)前單元對信息的記憶。每一個(gè)時(shí)間步下的LSTM單元將從遺忘門接收上一個(gè)時(shí)間步LSTM單元的細(xì)胞狀態(tài),并通過Sigmoid函數(shù)決定有多少信息會被遺忘,而剩余的信息將流入當(dāng)前的細(xì)胞狀態(tài)中。輸入門將接收當(dāng)前時(shí)間步的輸入,而輸出門將決定最終當(dāng)前時(shí)間步的輸出結(jié)構(gòu)。LSTM的長短期記憶功能就是通過這樣的門控實(shí)現(xiàn)。如果需要記憶長期的結(jié)果,那么遺忘門將長期打開;如果希望忽略前面的結(jié)果,那當(dāng)前的遺忘門將會關(guān)閉。
本文使用Paddle1.1版本,還未實(shí)現(xiàn)靜態(tài)的LSTM API,而動(dòng)態(tài)LSTM僅支持LodTensor數(shù)據(jù)定義形式。因此本文將自行實(shí)現(xiàn)LSTM模型。Paddle的框架如圖2所示。該函數(shù)的輸入包括了初始的輸入、初始的隱層、初始的細(xì)胞狀態(tài)以及定義的LSTM的層數(shù)。對于每一層構(gòu)建出對應(yīng)的權(quán)重和偏置以及每一層的初始輸入和初始細(xì)胞狀態(tài),初始化的權(quán)重和偏置將在訓(xùn)練過程中得到梯度優(yōu)化。代碼中實(shí)現(xiàn)3種門控。每個(gè)時(shí)間步的計(jì)算完成后,需要更新流動(dòng)的細(xì)胞狀態(tài),并得到當(dāng)前時(shí)間步的輸出。對于LSTM的每一層,不同時(shí)間步共享同一個(gè)權(quán)重和偏置,返回每一個(gè)時(shí)間步最終的輸出、最終的細(xì)胞狀態(tài)和最終的隱層。在編寫LSTM模型的代碼后,需要考慮如何將數(shù)據(jù)輸入模型。在數(shù)據(jù)預(yù)處理階段,得到了特征數(shù)據(jù)和標(biāo)簽數(shù)據(jù),其中包含時(shí)間步數(shù)、特征個(gè)數(shù)和標(biāo)簽類數(shù)。因此使用Paddle的API定義輸入x、y、LSTM需要的初始細(xì)胞狀態(tài)和隱層。在輸入與LSTM層之間還需要有一次嵌入的過程。本文選擇使用一個(gè)全連接層將輸入變量映射到隱層。該全連接層的激活函數(shù)選擇ReLU,因?yàn)镽eLU激活函數(shù)相比Sigmoid等函數(shù)計(jì)算量更小,同時(shí)會使得一部分神經(jīng)元輸出為0,從而讓網(wǎng)絡(luò)變得稀疏且減少參數(shù)的相互依存關(guān)系和過擬合的發(fā)生概率。
2 模型評估
通過對學(xué)習(xí)率不斷調(diào)參,在測試集上對各個(gè)模型進(jìn)行測試,評價(jià)其準(zhǔn)確率的高低。在訓(xùn)練階段有幾類超參數(shù)需要調(diào)優(yōu),初始和評估階段調(diào)整的超參數(shù)初始值與調(diào)整值如表2所示。
由于數(shù)據(jù)總量不大,因此不需要選擇部分?jǐn)?shù)據(jù)作為訓(xùn)練集進(jìn)行訓(xùn)練,只需要設(shè)定批次大小對數(shù)據(jù)進(jìn)行訓(xùn)練。對學(xué)習(xí)率進(jìn)行調(diào)參,學(xué)習(xí)率對模型非常重要,過大容易導(dǎo)致?lián)p失值偏大或損失值震蕩,過小會導(dǎo)致模型過擬合,跳不出局部最優(yōu)或收斂速度太慢。本文先選定1.0作為初始學(xué)習(xí)率,保持其他超參數(shù)不變進(jìn)行實(shí)驗(yàn)??梢姄p失函數(shù)值(cost)開始下降很快,但在40批次(batch num)后在1.5左右變動(dòng),并且準(zhǔn)確率波動(dòng)較大,但均在0.5以下。進(jìn)一步增大學(xué)習(xí)率不會導(dǎo)致分類準(zhǔn)確率提升,反而會使得損失下降,并且震蕩非常明顯。因此,需進(jìn)一步降低學(xué)習(xí)率。根據(jù)上述學(xué)習(xí)率的調(diào)參,最終選定0.01作為較好的學(xué)習(xí)率。
采用同樣的數(shù)據(jù)構(gòu)建支持向量機(jī)、決策樹、隨機(jī)森林、AdaBoost和高斯樸素貝葉斯等分類模型。發(fā)現(xiàn)LSTM在準(zhǔn)確率上比其他機(jī)器學(xué)習(xí)模型都高,即使在只選代10次時(shí),也有比較高的準(zhǔn)確率,這可能很大程度源于LSTM捕獲了時(shí)序的信息,而其他機(jī)器學(xué)習(xí)方法忽略了這一信息,僅僅將所有數(shù)據(jù)等同處理。本文實(shí)現(xiàn)的LSTM模型在選代10次、隱層數(shù)為50、學(xué)習(xí)率? 為0.01時(shí)達(dá)到了比較好的準(zhǔn)確率,在測試集上有比較好的表現(xiàn)。
3 結(jié)語
本文詳細(xì)闡述了基于機(jī)器學(xué)習(xí)的人類活動(dòng)數(shù)據(jù)的存儲和預(yù)處理以及完整LSTM模型的構(gòu)建過程,選擇Adagrad作為優(yōu)化方法,以最小化模型的損失,在訓(xùn)練完成后將模型保存到本地文件中,以供后續(xù)評測使用。模型評估證明本文提出的LSTM模型具有較好的準(zhǔn)確率。
參考文獻(xiàn)
[1]張琳,易卿武,黃璐,等.基于Wavelet-CNN網(wǎng)絡(luò)的人類活動(dòng)識別技術(shù)[J].無線電工程,2022(4):590-597.
[2]王楊,趙紅東.基于改進(jìn)粒子群優(yōu)化的支持向量機(jī)與情景感知的人體活動(dòng)識別[J].計(jì)算機(jī)應(yīng)用,2020(3):665-671.
[3]王麗曉.基于大間隔最近鄰算法的人類活動(dòng)識別研究[J].數(shù)字技術(shù)與應(yīng)用,2020(2):91-92,94.
[4]李洪俊.基于RBF神經(jīng)網(wǎng)絡(luò)的人類活動(dòng)識別[J].電子設(shè)計(jì)工程,2014(5):41-43,46.
(編輯 王永超)
Research on human activity identification based on Paddle
Lai? Zhiwei, Deng? Shuwei
(College of Information Engineering, Hunan University of Science and Engineering, Yongzhou 425199, China)
Abstract: This paper describes a machine learning based human activity recognition method in detail. This method explores and preprocesses human activity data, and proposes a LSTM model for human activity recognition. The problem in this paper is a typical classification problem. The target variables are six different kinds of human activities, and the accuracy rate is selected as the evaluation index of the model. Specific approach is to save to a local model by reading the training phase, and then by the same data structure was carried out on the test set predictive evaluation, then vector by constantly adjusting parameters. The research indicates that the proposed LSTM model is in the iteration vector 10 times, the number of hidden layer of 50 and achieves a better accuracy of 0.01, having a good performance on the test set.
Key words: machine learning; human activity recognition; statistical analysis; abnormal warning