国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于深度學(xué)習(xí)和Spark計(jì)算的移動(dòng)大數(shù)據(jù)分析算法

2020-11-17 12:27丁曉梅趙麗紅
長沙大學(xué)學(xué)報(bào) 2020年5期
關(guān)鍵詞:樣本節(jié)點(diǎn)深度

丁曉梅,汪 靜,趙麗紅

(安徽文達(dá)信息工程學(xué)院計(jì)算工程學(xué)院,安徽 合肥 231201)

移動(dòng)設(shè)備已經(jīng)成為廉價(jià)且可靠的平臺,無處不在地收集數(shù)據(jù)并做數(shù)據(jù)處理.根據(jù)思科系統(tǒng)公司最新的流量預(yù)測報(bào)告,2015年全球每月平均售出10億臺移動(dòng)設(shè)備,其中移動(dòng)設(shè)備的流量較上一年增長了74%.移動(dòng)大數(shù)據(jù)(Mobile Big Data,MBD)是一個(gè)描述大量移動(dòng)數(shù)據(jù)且無法使用單臺機(jī)器處理的專有名詞.MBD包含許多實(shí)際問題,例如欺詐檢測、營銷檢測、上下文感知計(jì)算[1]以及醫(yī)療保健等.因此,MBD分析是當(dāng)前互聯(lián)網(wǎng)領(lǐng)域高度關(guān)注的問題,旨在從原始移動(dòng)數(shù)據(jù)中提取有意義的信息和模式.

深度學(xué)習(xí)即深度神經(jīng)網(wǎng)絡(luò)是MBD問題分析中的常用方法.具體來說,深度學(xué)習(xí)在MBD問題中可以利用先驗(yàn)知識建立高精度的模型,避免了昂貴的手工特征設(shè)計(jì),并且可以適用于某些無監(jiān)督的問題.但是,由于MBD中數(shù)據(jù)的維度過高,深度學(xué)習(xí)模型在此類問題中學(xué)習(xí)速率很慢,并且常規(guī)的深度學(xué)習(xí)計(jì)算量過大,往往需要花費(fèi)幾小時(shí)甚至幾天的時(shí)間完成一次模擬.然而,大部分的問題和系統(tǒng)不能容忍精度處理不夠或者延遲問題,因此在移動(dòng)數(shù)據(jù)分析問題中,如何將深度學(xué)習(xí)模型在保證精度的同時(shí)提高訓(xùn)練速度,一直是研究人員的關(guān)注熱點(diǎn).

為了滿足可伸縮和自適應(yīng)系統(tǒng)對數(shù)據(jù)分析的需求,本文提供了一種基于Spark框架的深度學(xué)習(xí)方法,使用具有先驗(yàn)知識訓(xùn)練的深度模型來實(shí)現(xiàn)省時(shí)的MBD分析.本文框架基于Apache Spark構(gòu)建[2],它提供了一個(gè)開源集群計(jì)算平臺,這樣就可以使用集群中的許多計(jì)算核心進(jìn)行分布式學(xué)習(xí)。在該集群中,將連續(xù)訪問的數(shù)據(jù)緩存到運(yùn)行的內(nèi)存中,從而將深度模型的學(xué)習(xí)速度提高了幾倍.為了證明所提出框架的可行性,本文在最后實(shí)驗(yàn)了一個(gè)上下文感知活動(dòng)識別系統(tǒng),在計(jì)算集群上運(yùn)行,并使用移動(dòng)人群感知數(shù)據(jù)樣本訓(xùn)練深度學(xué)習(xí)模型.在此測試案例中,客戶請求包括加速度計(jì)信號,并且對服務(wù)器進(jìn)行了編程,以使用深度活動(dòng)識別模型來提取潛在的人類活動(dòng).與傳統(tǒng)的機(jī)器學(xué)習(xí)方法相比,深度學(xué)習(xí)的準(zhǔn)確性得到保障,與隨機(jī)森林相比,深度學(xué)習(xí)的精度提高了9%,與多層感知相比,深度學(xué)習(xí)的精度提高了17.8%.此外,與單機(jī)計(jì)算相比,基于并行Spark的實(shí)現(xiàn)減少了深度模型的學(xué)習(xí)時(shí)間.因此,本文的算法可以有效解決當(dāng)前深度學(xué)習(xí)在MBD問題上因數(shù)據(jù)維度過高、計(jì)算量過大而導(dǎo)致的學(xué)習(xí)速率過慢的問題.

1 MBD中的深度學(xué)習(xí)方法

1.1 MBD

MBD的幾種結(jié)構(gòu)如圖1.

圖1(a)部分顯示了用于連接各種類型的便攜式設(shè)備(如智能手機(jī)、可穿戴計(jì)算機(jī)和IoT小工具)的大型移動(dòng)系統(tǒng)的典型體系結(jié)構(gòu).在現(xiàn)代移動(dòng)設(shè)備中廣泛安裝了各種類型的傳感器,例如加速度計(jì)、陀螺儀、指南針和GPS傳感器,從而允許了許多新應(yīng)用.本質(zhì)上,每個(gè)移動(dòng)設(shè)備都以無狀態(tài)數(shù)據(jù)交換結(jié)構(gòu)(例如Java中的對象符號〈JSON〉格式)封裝其服務(wù)請求和自己的感知數(shù)據(jù).由于移動(dòng)設(shè)備在不同的移動(dòng)操作系統(tǒng)上運(yùn)行,因此無狀態(tài)格式非常重要.基于收集的MBD,服務(wù)器利用MBD來分析發(fā)現(xiàn)隱藏的模式和信息. MBD分析的重要性源于其可以在小型數(shù)據(jù)集上組裝、配置以及構(gòu)建復(fù)雜的移動(dòng)系統(tǒng)來分析數(shù)據(jù).例如,一個(gè)可以靈活地識別各種數(shù)據(jù)類型的應(yīng)用程序[3],以及使用移動(dòng)設(shè)備的嵌入式加速度計(jì)來收集有關(guān)日常人類活動(dòng)的適當(dāng)加速度數(shù)據(jù)[4]等.在接收到請求之后,服務(wù)器將加速度計(jì)數(shù)據(jù)映射到最可能的人類活動(dòng),比如可以支持許多交互式服務(wù),包括醫(yī)療保健、智能建筑和普通游戲等.MBD分析比傳統(tǒng)的大數(shù)據(jù)更具有通用性,因?yàn)閿?shù)據(jù)源是便攜式的,并且數(shù)據(jù)流量是打包使用的,MBD會同時(shí)處理由數(shù)百萬個(gè)移動(dòng)設(shè)備收集的大量數(shù)據(jù).

圖1(b)(c)(d)展示了MBD時(shí)代的最新主要技術(shù):大規(guī)模和高速移動(dòng)網(wǎng)絡(luò)、便攜性眾包以及復(fù)雜通信機(jī)制[5-6].每種技術(shù)都會以不同方式促進(jìn)形成MBD特性,以及在當(dāng)前情況下會產(chǎn)生不同難題.第一,大規(guī)模和高速移動(dòng)網(wǎng)絡(luò):移動(dòng)設(shè)備和高速移動(dòng)網(wǎng)絡(luò)(例如Wi-Fi和蜂窩網(wǎng)絡(luò))的增長帶來了大規(guī)模且有爭議的移動(dòng)數(shù)據(jù)流量.2015年,每月產(chǎn)生3.7億字節(jié)的移動(dòng)數(shù)據(jù),預(yù)計(jì)未來幾年還會增加.同時(shí),大規(guī)模數(shù)據(jù)的增加會帶來 MBD的流率變慢,由此影響為移動(dòng)用戶提供服務(wù)時(shí)延遲的響應(yīng)速度.請求的長時(shí)間排隊(duì)會導(dǎo)致用戶滿意度降低,并增加后期決策的成本.第二,便攜性:每個(gè)移動(dòng)設(shè)備都可以在多個(gè)位置自由移動(dòng).因此,MBD是不穩(wěn)定的(波動(dòng)性).第三,MBD分析經(jīng)常應(yīng)對新收集的數(shù)據(jù)樣本,而由于可移植性,收集的樣本質(zhì)量對于決策是否有效起重要作用.

1.2 MBD中的深度學(xué)習(xí)

深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)新分支,可以解決MBD分析中的一系列復(fù)雜問題,例如分類和回歸[6-8].深度學(xué)習(xí)模型由模擬的神經(jīng)元和突觸組成,可以從現(xiàn)有MBD樣本中對其進(jìn)行訓(xùn)練以學(xué)習(xí)數(shù)據(jù)特征.生成的深度模型可以泛化和處理看不見的流MBD樣本.如圖2所示.

生成式深度網(wǎng)絡(luò)可以縮放為包含許多隱藏層和數(shù)百萬個(gè)難以一次訓(xùn)練的參數(shù).其中,文獻(xiàn)[5]、[6]給出了基于堆疊式的去噪自動(dòng)編碼思路的貪婪逐層學(xué)習(xí)算法.具體如下:

(1)生成式模型預(yù)訓(xùn)練:此階段僅需要未標(biāo)記的數(shù)據(jù),這些數(shù)據(jù)通常使用眾包,因此很容易在移動(dòng)數(shù)據(jù)流中收集.圖2中展示了深度模型的逐層調(diào)整的方法.首先,使用未標(biāo)記的數(shù)據(jù)樣本訓(xùn)練第一層神經(jīng)元,學(xué)習(xí)輸入數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),其中每個(gè)層都包括編碼和解碼功能:編碼功能使用輸入數(shù)據(jù)和各層參數(shù)來生成一組新功能.然后,解碼功能使用特征向量和隱藏層參數(shù)來生成輸入數(shù)據(jù)的重構(gòu).最后,在第一層的輸出處產(chǎn)生第一組特征.之后,在第一層的頂部添加第二層神經(jīng)元,在此將第一層的輸出作為第二層的輸入.通過添加更多層來重復(fù)此過程,直到形成合適的深度模型為止.因此,基于在其下層生成的特征,在每一層學(xué)習(xí)更復(fù)雜的特征.

(2)判別式模型微調(diào)方法:第一步中初始化的模型參數(shù)會使用一組可用的標(biāo)記數(shù)據(jù)進(jìn)行微調(diào),來進(jìn)一步調(diào)整參數(shù),優(yōu)化模型.

2 基于Spark的深度學(xué)習(xí)方法

2.1 大數(shù)據(jù)分析中的Spark深度學(xué)習(xí)方法

在MBD分析中深度學(xué)習(xí)模型的學(xué)習(xí)速度很慢,而且對計(jì)算的精度要求也很高.通常這是深層模型參數(shù)和MBD樣本數(shù)量太大所導(dǎo)致.一方面,深度學(xué)習(xí)可以從未標(biāo)記的移動(dòng)數(shù)據(jù)中學(xué)習(xí),從而減少數(shù)據(jù)標(biāo)記工作量.因?yàn)樵诖蠖鄶?shù)移動(dòng)系統(tǒng)[9-11]中,標(biāo)記數(shù)據(jù)是有限的,而手動(dòng)數(shù)據(jù)注釋需要人工干預(yù),既昂貴又耗時(shí);另一方面,未標(biāo)記的數(shù)據(jù)樣本數(shù)量龐大但容易獲得.因此,深度學(xué)習(xí)模型在訓(xùn)練前階段將未標(biāo)記的數(shù)據(jù)樣本用于生成數(shù)據(jù)的探索,這樣可以盡可能地減少M(fèi)BD分析期間對標(biāo)記數(shù)據(jù)的需求.

Apache Spark是用于集群上可伸縮Map Reduce計(jì)算的開源平臺.該框架的主要目標(biāo)是通過將深度模型的學(xué)習(xí)與高性能計(jì)算集群并行化來加快MBD決策.簡而言之,深度模型的并行化是通過將MBD切片為多個(gè)分區(qū)來執(zhí)行的.每個(gè)分區(qū)都包含在彈性分布式數(shù)據(jù)集(RDD)中,該數(shù)據(jù)集為Spark引擎提供了數(shù)據(jù)分發(fā)的抽象.除了數(shù)據(jù)緩存之外,Spark項(xiàng)目中RDD本身還支持容錯(cuò)執(zhí)行并恢復(fù)工作節(jié)點(diǎn)上的程序操作.

因此,本文基于Spark的框架包含兩個(gè)主要組件:(1)一個(gè)Spark主控件;(2)多個(gè)Spark相關(guān)控件.主計(jì)算機(jī)初始化Spark驅(qū)動(dòng)程序用于實(shí)例,該實(shí)例管理一組Spark Worker上其他部分模型的執(zhí)行.在深度學(xué)習(xí)算法的每次迭代中(圖2), 每個(gè)工作節(jié)點(diǎn)在MBD的小分區(qū)上優(yōu)化部分深度模型,并發(fā)送計(jì)算出的優(yōu)化參數(shù),最后返回主節(jié)點(diǎn).之后,主節(jié)點(diǎn)通過均值化所有執(zhí)行者節(jié)點(diǎn)的模型來重建主深度模型.

2.2 并行計(jì)算模塊

學(xué)習(xí)深度模型主要通過兩個(gè)主要步驟執(zhí)行:大量的梯度計(jì)算和參數(shù)更新步驟(請參見文獻(xiàn)[8]、[9]等).而在本文框架中,使用以下幾個(gè)步驟來進(jìn)行梯度計(jì)算和更新:第一步,學(xué)習(xí)算法獨(dú)立地遍歷所有數(shù)據(jù)批次,以計(jì)算模型參數(shù)的梯度更新(即變化率).第二步,通過對所有數(shù)據(jù)批次上計(jì)算的梯度更新取平均值來更新模型的參數(shù).這兩個(gè)步驟適合學(xué)習(xí)Map Reduce編程模型中的深層模型[12].特別地,并行梯度計(jì)算可以用來實(shí)現(xiàn)映射過程[13],這樣簡化了參數(shù)的更新迭代過程.在Apache Spark上進(jìn)行深度學(xué)習(xí)的迭代Map Reduce計(jì)算是按照如下步驟執(zhí)行的:

(1)MBD分區(qū):首先使用Spark的parallelize的API將整個(gè)MBD分為多個(gè)分區(qū).生成的MBD分區(qū)存儲到RDD中并分發(fā)到工作程序節(jié)點(diǎn).這些RDD對于加快深度模型的學(xué)習(xí)至關(guān)重要,影響著內(nèi)存數(shù)據(jù)訪問磁盤數(shù)據(jù)的操作.

(2)深度學(xué)習(xí)并行性[13-15]:深度學(xué)習(xí)問題的解決方案取決于具有較小數(shù)據(jù)集的同一學(xué)習(xí)問題的解決方案.尤其是,深度學(xué)習(xí)工作分為多個(gè)學(xué)習(xí)階段,每個(gè)學(xué)習(xí)階段都包含一組獨(dú)立的Map Reduce迭代,其中一個(gè)迭代的解決方案是下一個(gè)迭代的輸入.在每次Map Reduce迭代期間,將在可用MBD的單獨(dú)分區(qū)上訓(xùn)練部分模型,步驟如下:

a)學(xué)習(xí)局部模型:每個(gè)工作節(jié)點(diǎn)計(jì)算其MBD分區(qū)的梯度更新(也稱為Map過程).在此步驟中,所有Spark工作者都在MBD的不同分區(qū)上并行執(zhí)行相同的Map任務(wù).以此方式,深度模型學(xué)習(xí)的昂貴的梯度計(jì)算任務(wù)被分成許多并行的子任務(wù).

b)參數(shù)平均:將部分模型的參數(shù)發(fā)送到主計(jì)算機(jī),以通過平均所有Spark工作者的參數(shù)計(jì)算來構(gòu)建主深度模型(也稱為Reduce過程).

c)參數(shù)分發(fā):將Reduce過程后生成的主模型分發(fā)給所有工作節(jié)點(diǎn),然后根據(jù)更新的參數(shù)開始新的Map Reduce迭代.繼續(xù)該過程,直到滿足學(xué)習(xí)收斂標(biāo)準(zhǔn)為止.

最后生成一個(gè)參數(shù)合適的深度學(xué)習(xí)模型,該模型可用于從用戶請求中推斷信息的問題.

3 實(shí)驗(yàn)驗(yàn)證

3.1 實(shí)驗(yàn)數(shù)據(jù)及過程

在本實(shí)驗(yàn)中,使用可以公開采集到的Actitracker數(shù)據(jù)集,來驗(yàn)證以上算法的可行性.

數(shù)據(jù)集包括來自563個(gè)用戶的6項(xiàng)常規(guī)活動(dòng)(步行、慢跑、爬樓梯、坐著、站立和躺下)的加速度計(jì)樣本.圖3繪制了6種不同活動(dòng)的加速度計(jì)信號.由于不同的活動(dòng)包含不同的頻率內(nèi)容,因此這些內(nèi)容大體上反映了人體的動(dòng)態(tài).具體包括:第一,收集身體較為劇烈的活動(dòng)(例如步行、慢跑和爬樓梯)的高頻信號.第二,在半靜態(tài)下進(jìn)行慢性身體運(yùn)動(dòng)的采樣,例如在站立、坐下以及躺下的活動(dòng)收集低頻信號.該數(shù)據(jù)是使用具有20Hz采樣率的移動(dòng)電話收集的,并且將這些數(shù)據(jù)分為兩部分,一部分作為訓(xùn)練數(shù)據(jù)使用,另一部分作為測試數(shù)據(jù)使用.

由于實(shí)驗(yàn)使用了生活實(shí)例型數(shù)據(jù),與未標(biāo)記數(shù)據(jù)相比,標(biāo)記數(shù)據(jù)數(shù)量很有限,因此,數(shù)據(jù)標(biāo)記需要人工干預(yù).使用10s開窗功能對數(shù)據(jù)進(jìn)行構(gòu)圖,該功能會生成200個(gè)時(shí)間序列樣本.在實(shí)驗(yàn)中,首先只對未標(biāo)記的數(shù)據(jù)樣本進(jìn)行深度模型預(yù)訓(xùn)練,然后使用標(biāo)記的數(shù)據(jù)集對模型進(jìn)行微調(diào).為了增強(qiáng)活動(dòng)識別性能,本文還使用了加速度計(jì)信號的頻譜圖作為深度模型的輸入來優(yōu)化參數(shù).

數(shù)據(jù)進(jìn)行合理的標(biāo)記之后,運(yùn)行負(fù)載分配工具(LSF)管理平臺和Red Hat Linux系統(tǒng).每個(gè)節(jié)點(diǎn)都具有8個(gè)核心(時(shí)鐘速度為2.93GHz的Intel Xeon 5570 CPU)以及24GB RAM.實(shí)驗(yàn)中,將核心計(jì)算設(shè)備設(shè)置為8的倍數(shù),以分配整個(gè)節(jié)點(diǎn)的資源.每個(gè)計(jì)算核心初始化一個(gè)局部模型學(xué)習(xí)任務(wù).每個(gè)任務(wù)使用包含100個(gè)樣本的數(shù)據(jù),分批進(jìn)行100次迭代學(xué)習(xí).顯然,增加核心數(shù)量可以更快地訓(xùn)練深度模型.最后,需要注意的是,分布式深度學(xué)習(xí)是一種強(qiáng)類型的正則化學(xué)習(xí)方法.因此,不建議使用正則化術(shù)語(例如稀疏性和輟學(xué)約束)來避免擬合不足的問題.

3.2 實(shí)驗(yàn)結(jié)果及分析

基于本文深度學(xué)習(xí)模型,與其他模型識別率對比,如表1所示.

表1 深度學(xué)習(xí)模型與其他模型識別誤差的對比

根據(jù)實(shí)驗(yàn)結(jié)果可以得出如下結(jié)論:

(1)本文深度模型在識別率方面優(yōu)于現(xiàn)有的上下文學(xué)習(xí)模型:通過表1可知,本文算法在實(shí)驗(yàn)中表現(xiàn)出最好的識別錯(cuò)誤率,為14%,比未使用Spark計(jì)算引擎多層感知機(jī)準(zhǔn)確率提高了18%,同時(shí)也優(yōu)于隨機(jī)森林、基于實(shí)例等傳統(tǒng)方法.證明了基于Spark計(jì)算引擎的深度學(xué)習(xí)模型可以提高深度學(xué)習(xí)在MBD問題上的準(zhǔn)確率.

(2)深度模型的學(xué)習(xí)層次特征消除了常規(guī)方法中對手工統(tǒng)計(jì)特征的需求.當(dāng)層數(shù)一定時(shí),本文的算法識別的準(zhǔn)確率一直是四種方法中最高的,且本文算法的錯(cuò)誤率曲線一直呈下降趨勢,并沒有出現(xiàn)波動(dòng).也就是說,本文算法在實(shí)驗(yàn)過程中,并未出現(xiàn)傳統(tǒng)深度學(xué)習(xí)網(wǎng)絡(luò)的過擬合問題.由此可以得出結(jié)論:通過使用后期標(biāo)記數(shù)據(jù)微調(diào)的方法來優(yōu)化模型,解決了優(yōu)化參數(shù)的問題并避免了過度擬合.

4 結(jié)論及展望

本文介紹了基于Spark的框架以及深度學(xué)習(xí)模型用于移動(dòng)大數(shù)據(jù)分析問題的算法.該模型可以對具有許多隱藏層和數(shù)以百萬計(jì)參數(shù)的深度模型進(jìn)行調(diào)整和優(yōu)化,同時(shí)具有較好的擴(kuò)展性.通常,深度學(xué)習(xí)雖然為移動(dòng)大數(shù)據(jù)問題提供了識別率較高的方法,但是難以克服運(yùn)算復(fù)雜度、時(shí)間復(fù)雜度過高的問題.而通過使用Spark框架,以及其易于并行計(jì)算的特性,能幫助傳統(tǒng)的深度學(xué)習(xí)模型更高效地解決移動(dòng)大數(shù)據(jù)分析問題.最后,通過一個(gè)互聯(lián)網(wǎng)上下文情感分析的實(shí)例,證明了該模型的可行性,并且通過與其他傳統(tǒng)方法的對比,更直觀地展示了本文算法的有效性.

猜你喜歡
樣本節(jié)點(diǎn)深度
四增四減 深度推進(jìn)
深度思考之不等式
基于圖連通支配集的子圖匹配優(yōu)化算法
用樣本估計(jì)總體復(fù)習(xí)點(diǎn)撥
結(jié)合概率路由的機(jī)會網(wǎng)絡(luò)自私節(jié)點(diǎn)檢測算法
面向復(fù)雜網(wǎng)絡(luò)的節(jié)點(diǎn)相似性度量*
采用貪婪啟發(fā)式的異構(gòu)WSNs 部分覆蓋算法*
簡約教學(xué) 深度學(xué)習(xí)
規(guī)劃·樣本
隨機(jī)微分方程的樣本Lyapunov二次型估計(jì)
永春县| 通化市| 禄劝| 玉屏| 海丰县| 凌源市| 遂宁市| 马公市| 枣强县| 中方县| 江口县| 丘北县| 大足县| 吴堡县| 阿瓦提县| 来安县| 苍山县| 邻水| 洪江市| 广宁县| 池州市| 临猗县| 青海省| 北海市| 调兵山市| 密山市| 大邑县| 灵寿县| 郑州市| 顺义区| 色达县| 抚顺县| 德格县| 灵寿县| 万荣县| 延寿县| 兖州市| 长治市| 伽师县| 巴楚县| 会泽县|