安世博,何 勇,孟亞茹
(貴州大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,貴州 貴陽 550000)
智能家居是以人的居住環(huán)境作為系統(tǒng)搭建的平臺,在居住環(huán)境中搭建系統(tǒng)并進(jìn)行統(tǒng)一有效的管理,智能家居系統(tǒng)整體實施過程即為智能家居的集成。隨著科學(xué)技術(shù)飛速的發(fā)展,大力發(fā)展智能家居已經(jīng)成為時代發(fā)展的必然趨勢,以此可以預(yù)見智能家居技術(shù)將成為社會經(jīng)濟(jì)發(fā)展的強(qiáng)大推動力[1]。
在目前的智能家居系統(tǒng)應(yīng)用管理平臺上,采用的平臺設(shè)備管理方式仍舊是依靠用戶提前輸入指定設(shè)備規(guī)則命令進(jìn)行控制,例如在室溫超過30℃的情況下則開啟空調(diào)制冷模式[2]。采用上述管理設(shè)備方式在設(shè)備數(shù)目較少或家居環(huán)境較為簡單的情況下能夠滿足用戶基本需求,然而在較為復(fù)雜的家居環(huán)境情況下,對智能家居系統(tǒng)性能要求較高,很難滿足用戶的需求和體驗,尤其在多用戶產(chǎn)生沖突需求或發(fā)生突發(fā)事件的情況下,依靠用戶預(yù)先輸入的制定規(guī)則難以完成用戶和系統(tǒng)的基本需求。根據(jù)上述情況,在智能家居系統(tǒng)管理平臺上搭建一個具備自動管理、完善調(diào)度智能管理的算法將成為必備手段以及核心競爭力[3]。
在深度學(xué)習(xí)算法中,多層次結(jié)構(gòu)和特征再學(xué)習(xí)的訓(xùn)練能夠很好地解決智能家居系統(tǒng)中設(shè)備運(yùn)行狀態(tài)預(yù)測方面的問題。下面將分析在預(yù)測問題中使用深度學(xué)習(xí)的可能性。
一方面,由于在智能家居環(huán)境中影響用戶使用設(shè)備的因素較多,例如室內(nèi)溫度、亮度、濕度、天氣、時間等。在傳統(tǒng)的淺層網(wǎng)絡(luò)模型建立時,需要人工對特征提取進(jìn)行干預(yù)和分析,以此選出影響較大的特征并除去影響較小的特征。一旦數(shù)據(jù)中出現(xiàn)人工無法提取的特征,對于特征屬性的原始特性則無法完整地保留下來,因此提取特征的好壞受相關(guān)人員對于數(shù)據(jù)屬性理解深度的影響[4]。深度學(xué)習(xí)算法中一般具有3、4層或更多的隱層節(jié)點(diǎn),由于著重強(qiáng)調(diào)了模型特征結(jié)構(gòu)的深度,使得模型中能夠包含更多的數(shù)據(jù)信息,在較多因素數(shù)據(jù)輸入的情況下,特征提取不需要過多考慮人工經(jīng)驗,因此可以著重考慮影響力較大的因素,以此實現(xiàn)更加精確的智能家居系統(tǒng)中設(shè)備運(yùn)行的狀態(tài)預(yù)測。
另一方面,采用傳統(tǒng)人工提取特征的淺層結(jié)構(gòu)的學(xué)習(xí)泛化性局限性較大,在不同的家庭中對于相同設(shè)備狀態(tài)的影響因子可能完全不同,因此采用統(tǒng)一的模型進(jìn)行預(yù)測難以實現(xiàn)較好的預(yù)期效果[5]。在深度學(xué)習(xí)算法中,著重突出了模型特征學(xué)習(xí)的重要性,通過對樣本中抽象特征的自動學(xué)習(xí)和特征的逐層變換,將數(shù)據(jù)樣本中原有的特征表示到另一個特征空間。在不同的數(shù)據(jù)樣本中能夠?qū)W習(xí)到差異化的隱含特征,具備更強(qiáng)的針對性,提升了在不同的家庭中智能家居系統(tǒng)設(shè)備運(yùn)行狀態(tài)預(yù)測的泛化性。
受限玻爾茲曼機(jī)(restricted Boltzmann machine,RBM)是一種“基于能量”的神經(jīng)網(wǎng)絡(luò)模型,對顯層神經(jīng)單元v和隱層神經(jīng)單元h之間的概率生成模型[6]。在顯層神經(jīng)元和隱層神經(jīng)元之間,通過兩個偏置向量b、c和一個權(quán)值矩陣w將狀態(tài)(v,h)進(jìn)行連接。在實值數(shù)據(jù)集給定一組狀態(tài)(v,h),即可定義其能量函數(shù)E(v,h),該模型的能量函數(shù)為:
(1)
其中,ni為顯層神經(jīng)元個數(shù);nj為隱層神經(jīng)元個數(shù);wij為顯層第i個節(jié)點(diǎn)與隱層第j個節(jié)點(diǎn)之間的連接權(quán)重;bi為顯層第i個節(jié)點(diǎn)偏置;cj為隱層第j個節(jié)點(diǎn)偏置。為方便后續(xù)計算,令顯層與隱層的節(jié)點(diǎn)參數(shù)θ=(wij,bi,cj)。
根據(jù)能量公式可得狀態(tài)(v,h)的聯(lián)合概率公式為:
(2)
其中,Z為歸一化因子,Z的值為:
Z=∑e-E(v,h)
(3)
根據(jù)式2可得v的概率分布函數(shù)為:
(4)
為了使得RBM系統(tǒng)達(dá)到穩(wěn)定的狀態(tài),應(yīng)該使得能量系統(tǒng)的能量值為最小值,即要使概率p(v)的值最大。根據(jù)RBM中顯層和隱層激活狀態(tài)之間是相互獨(dú)立的結(jié)構(gòu)性質(zhì)可知,第i個顯層和第j個隱層的激活概率分布為:
(5)
(6)
BP神經(jīng)網(wǎng)絡(luò)是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中的一種訓(xùn)練學(xué)習(xí)模型。BP模型的特點(diǎn)為反向傳播,BP神經(jīng)網(wǎng)絡(luò)大多應(yīng)用在前向拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)模型中[7]。在正向傳播中,輸入空間的向量從網(wǎng)絡(luò)模型的輸入層經(jīng)過隱含層一層一層進(jìn)行處理,在經(jīng)過隱含層后對權(quán)值進(jìn)行計算,最終達(dá)到輸出層。在進(jìn)行逐層處理的過程中,當(dāng)前層的輸入層為上一層的輸出層,當(dāng)前層的輸出層作為下一層的輸入層。將輸出層的輸出和期望值進(jìn)行對比,相等則結(jié)束訓(xùn)練,不等則進(jìn)行反向傳播,對權(quán)值進(jìn)一步優(yōu)化。在反向傳播的過程中,根據(jù)實際輸出與期望值進(jìn)行對比,計算誤差進(jìn)行逐層返回,根據(jù)誤差值對權(quán)值進(jìn)行優(yōu)化。
深度置信網(wǎng)絡(luò)(deep belief network,DBN)是一種針對多隱層的概率生成模型,根據(jù)訓(xùn)練結(jié)果對神經(jīng)元之間的權(quán)重進(jìn)行調(diào)整,使得網(wǎng)絡(luò)結(jié)構(gòu)能以一個最大的概率對輸入的數(shù)據(jù)進(jìn)行還原[8]。由兩種不同的網(wǎng)絡(luò)組合而成的DBN結(jié)構(gòu)首先采用受限玻爾茲曼機(jī)的深度置信網(wǎng)絡(luò)模型,針對智能家居中的單個設(shè)備使用多個無監(jiān)督RBM的DBN對數(shù)據(jù)樣本進(jìn)行無監(jiān)督學(xué)習(xí)特征提取,在每個隱藏層完成預(yù)訓(xùn)練后,使用有監(jiān)督的BP神經(jīng)網(wǎng)絡(luò)對整個網(wǎng)絡(luò)進(jìn)行微調(diào),結(jié)構(gòu)如圖1所示。采用預(yù)訓(xùn)練加微調(diào)的方法能夠?qū)⒕植枯^優(yōu)的結(jié)果聯(lián)合起來進(jìn)行全局尋優(yōu),以此實現(xiàn)節(jié)省訓(xùn)練開銷的目的。
圖1 DBN結(jié)構(gòu)
預(yù)訓(xùn)練+微調(diào)的方法可以看成大量參數(shù)的分組,針對每一組首先找到局部較優(yōu)的設(shè)置,然后在局部較優(yōu)結(jié)果的基礎(chǔ)上進(jìn)行聯(lián)合,以此進(jìn)行全局尋優(yōu)。該方法不僅能夠利用大量參數(shù)提供自由度,同時可以有效地節(jié)省訓(xùn)練開銷。
數(shù)據(jù)集來源為開放性的REDD(reference energy disaggregation data set)數(shù)據(jù)庫內(nèi)的部分?jǐn)?shù)據(jù)[9],文中使用的數(shù)據(jù)是其中3個家庭在4月到5月內(nèi)每天單個家居電器的運(yùn)行功率數(shù)據(jù)和運(yùn)行時間,其中每個設(shè)備每隔3 s采集運(yùn)行功率和運(yùn)行時間。
在智能家居系統(tǒng)中對于設(shè)備的智能化自動管理,主要通過對設(shè)備的運(yùn)行狀態(tài)和運(yùn)行功率進(jìn)行控制。對于每個需要進(jìn)行預(yù)測使用狀態(tài)的單個設(shè)備,統(tǒng)計單設(shè)備在1分鐘內(nèi)20次運(yùn)行狀態(tài),若超過10次為某一個運(yùn)行的功率值p(大于0),則標(biāo)記該單設(shè)備運(yùn)行狀態(tài)為運(yùn)行且運(yùn)行功率為該功率值p。光照、溫度和濕度的具體值為1分鐘內(nèi)20個值的平均值,用戶位置為第一個功率值p時用戶所在位置的x坐標(biāo)和y坐標(biāo),樣本集包含兩類數(shù)據(jù)集:
單設(shè)備輸入空間:輸入空間I包括前5分鐘內(nèi)設(shè)備的運(yùn)行狀態(tài)、運(yùn)行功率、光照、溫度和濕度的數(shù)據(jù),以及時間和用戶位置的用戶信息。
預(yù)測結(jié)果數(shù)據(jù)集:該部分?jǐn)?shù)據(jù)集為預(yù)測模型進(jìn)行預(yù)測得到的設(shè)備的運(yùn)行狀態(tài)和運(yùn)行功率,數(shù)據(jù)集形式為D={s1,p1,…,sn,pn}。
在模型結(jié)構(gòu)中,網(wǎng)絡(luò)結(jié)構(gòu)根據(jù)設(shè)備數(shù)量n分割為n個獨(dú)立域。輸入層由n組單設(shè)備的輸入空間組成,由5組設(shè)備狀態(tài)信息輸入神經(jīng)元以及用戶信息輸入神經(jīng)元組成。其中第一組包含前第1分鐘的光照、濕度、溫度、運(yùn)行狀態(tài)以及運(yùn)行功率設(shè)備信息,以及具體時間和用戶所在房間的具體位置坐標(biāo),第2組由前第2分鐘的數(shù)據(jù)組成,以此類推。上述設(shè)備狀態(tài)信息和用戶信息使用40維向量表示,從REDD開放性數(shù)據(jù)庫中截取,數(shù)據(jù)結(jié)構(gòu)如圖2所示。
圖2 單設(shè)備輸入空間數(shù)據(jù)結(jié)構(gòu)
預(yù)測模型訓(xùn)練流程如下:
(1)對數(shù)據(jù)源的數(shù)據(jù)進(jìn)行處理,構(gòu)造網(wǎng)絡(luò)輸入空間I和預(yù)測樣本;
(2)需要預(yù)測的多個單設(shè)備的數(shù)據(jù)集作為第一層多個受限玻爾茲曼機(jī)的輸入。充分訓(xùn)練第一層RBM后,固定當(dāng)前權(quán)值和偏移量,并作為第二次RBM的輸入;
(3)對每層RBM訓(xùn)練后,通過特征學(xué)習(xí)得到特征向量H;
(4)使用特征向量H作為BP神經(jīng)網(wǎng)絡(luò)的輸入空間,并進(jìn)行有監(jiān)督學(xué)習(xí)訓(xùn)練;
(5)將輸出空間與期望值進(jìn)行比較,判斷是否自底向上進(jìn)行反向傳播和微調(diào);
(6)訓(xùn)練結(jié)束。
訓(xùn)練流程如圖3所示。
圖3 訓(xùn)練流程
3.3.1 RBM訓(xùn)練
在模型訓(xùn)練過程中,分別單獨(dú)地訓(xùn)練每一層的RBM網(wǎng)絡(luò),使輸入數(shù)據(jù)映射到不同的特征空間,并且盡可能多地保留其特征信息。具體過程為:根據(jù)RBM的原理,樣本在訓(xùn)練之后在玻爾茲曼的分布中概率最大,因此需要構(gòu)造最大似然函數(shù),通過求解最大似然函數(shù)的最值尋找網(wǎng)絡(luò)參數(shù)θ[10]。構(gòu)造的對數(shù)似然函數(shù)為:
(7)
其中,n為訓(xùn)練樣本數(shù);vi為第i個樣本。
采用梯度下降法進(jìn)行計算:
(8)
得到對數(shù)似然函數(shù)的梯度:
(9)
對比散度(contrastive divergence,CD)算法是RBM訓(xùn)練的標(biāo)準(zhǔn)算法之一[11]。K步CD算法的采樣算法流程如下:
(1)對v進(jìn)行初始化,然后進(jìn)行采樣,其中第t(1,2,…,k)步為利用P(h|v(t-1))和P(v|h(t-1))分別計算出h(t-1)和v(t-1)。
(2)對第k步采樣得到的v(k)進(jìn)行近似估計,分別為:
(10)
(11)
(12)
(3)根據(jù)上述的近似公式,有:
(13)
然后沿著似然函數(shù)梯度下降方向?qū)?shù)θ進(jìn)行迭代更新,最終使得似然函數(shù)到達(dá)最大值,這時的參數(shù)θ就是需要的網(wǎng)絡(luò)參數(shù)。參數(shù)更新公式為:
(14)
其中,θt+1為t+1次迭代時的參數(shù)值;η為學(xué)習(xí)速率。
3.3.2 BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練
在DBN網(wǎng)絡(luò)最后兩層建立的BP網(wǎng)絡(luò)的訓(xùn)練學(xué)習(xí)過程,由誤差信號正向和誤差信號反向傳播組成[12]。誤差信號正向傳播時,每一層神經(jīng)元的結(jié)果僅影響下一層神經(jīng)網(wǎng)絡(luò),訓(xùn)練樣本輸入矩陣從輸入層經(jīng)過隱含層向前傳播到輸出層,并得出輸出結(jié)果。在網(wǎng)絡(luò)轉(zhuǎn)入反向傳播過程中會將誤差信號沿原本的連接通路撤回,并通過修改各層神經(jīng)元的權(quán)值和閾值,逐次地向輸入層傳播進(jìn)行計算。通過兩個過程的反復(fù)運(yùn)行,直至達(dá)到預(yù)期精度值,最終完成整個網(wǎng)絡(luò)的訓(xùn)練[13]。
根據(jù)上述理論基礎(chǔ)和訓(xùn)練過程,文中提出了一種基于深度信念的網(wǎng)絡(luò)結(jié)構(gòu),即針對多個單設(shè)備智能家居設(shè)備運(yùn)行狀態(tài)預(yù)測的模型。該模型整體架構(gòu)包含輸入層L以及輸出層L,L1、L2和L3為設(shè)備級隱層,L4和L5為全連接隱層[14]。
其中L與L1連接的權(quán)重W1矩陣為:
(15)
(16)
則L1層中的第i個神經(jīng)元節(jié)點(diǎn)的輸出數(shù)據(jù)為:
(17)
同理,定義L1層與L2層之間連接的權(quán)值矩陣W2和L2層神經(jīng)元的偏移向量A2,激活函數(shù)選用tanh函數(shù):
(18)
(19)
則L2層神經(jīng)元輸出數(shù)據(jù)為:
L2=tanh(W2·L1+A2)
(20)
同理,L3層神經(jīng)元輸出數(shù)據(jù)為:
L3=tanh(W3·L2+A3)
(21)
(22)
(23)
L4=tanh(W4·L3+A4)
(24)
在BP神經(jīng)網(wǎng)絡(luò)中選用ReLu激活函數(shù),L5層神經(jīng)元輸出數(shù)據(jù)為:
L5=ReLu(W5·L4+A5)
(25)
在得到預(yù)測值后,通過求解平均精度E進(jìn)行評價。
(26)
為研究上述網(wǎng)絡(luò)模型的整體性能,設(shè)計并進(jìn)行了四組性能相關(guān)參數(shù)的實驗,分別為模型參數(shù)優(yōu)選、預(yù)測模型準(zhǔn)確性測試和對比、預(yù)測模型收斂速度以及設(shè)備數(shù)量對模型預(yù)測能力的影響。
為使RBM模型的結(jié)構(gòu)最優(yōu),最終預(yù)測結(jié)果的誤差值最小,對RBM層數(shù)選擇等相關(guān)參數(shù)尤為重要,針對RBM結(jié)構(gòu)采用對比方案對結(jié)構(gòu)的層數(shù)進(jìn)行優(yōu)選。在測試層數(shù)對預(yù)測結(jié)果的影響時,將其他參數(shù)固定(如節(jié)點(diǎn)數(shù)、權(quán)值等),對模型訓(xùn)練學(xué)習(xí)的平均精度和時間復(fù)雜性進(jìn)行對比。當(dāng)層數(shù)為1至5時,平均精度分別為0.919 8、0.928 2、0.939 8、0.931 7和0.923 5,訓(xùn)練時間(s)分別為847、1 462、1 981、3 095和4 372。根據(jù)上述數(shù)據(jù)可知,當(dāng)層數(shù)為3時,預(yù)測平均精度E達(dá)到最優(yōu)值0.939 8;層數(shù)從1到3進(jìn)行增加時,模型的預(yù)測平均精度提升;當(dāng)層數(shù)超過3層時,由于模型的復(fù)雜造成了過度擬合效應(yīng),因此平均精度下降且時間復(fù)雜度增加,對于RBM模型結(jié)構(gòu)使用3層較為合理。
針對模型中每一個單設(shè)備的輸入空間,模型都將給出單設(shè)備的運(yùn)行狀態(tài)(開關(guān))和運(yùn)行參數(shù)(如空調(diào)功率)的預(yù)測值。將模型給出的輸出與設(shè)定的閾值進(jìn)行比較,若大于閾值則判斷設(shè)備狀態(tài)為開啟狀態(tài),否則為關(guān)閉狀態(tài)。之后將測試集中的結(jié)果標(biāo)簽與模型的輸出結(jié)果進(jìn)行對比,若對比結(jié)果一致則判斷狀態(tài)正確。若判斷正確則求預(yù)測的運(yùn)行參數(shù)和標(biāo)簽中運(yùn)行參數(shù)的平方差,若平方差小于0.1則認(rèn)為本次預(yù)測結(jié)果正確。
模型準(zhǔn)確性測試實驗選用的對比實驗組為未使用RBM的雙隱層前饋神經(jīng)網(wǎng)絡(luò)模型,訓(xùn)練方法使用隨機(jī)梯度下降算法。其中雙隱層神經(jīng)網(wǎng)絡(luò)使用全連接結(jié)構(gòu),每層均有n個神經(jīng)元節(jié)點(diǎn),激活函數(shù)使用tanh函數(shù)。圖4為兩個模型在準(zhǔn)確率方面的實驗結(jié)果對比。該模型在10次迭代后預(yù)測準(zhǔn)確率趨于平穩(wěn)并達(dá)到97%以上,準(zhǔn)確率相較于淺層前饋全連接神經(jīng)網(wǎng)絡(luò)模型提高了5%。
圖4 準(zhǔn)確性對比
文中提出的網(wǎng)絡(luò)模型作為一種機(jī)器學(xué)習(xí)技術(shù),整體的有效性很大程度上受到訓(xùn)練數(shù)據(jù)量的影響,模型收斂速度將成為基礎(chǔ)性能的一種重要指標(biāo)。模型收斂速度實驗為數(shù)據(jù)樣本對于誤差函數(shù)值的變化趨勢測試,根據(jù)變化趨勢分析模型的收斂速度,結(jié)果如圖5所示。根據(jù)實驗結(jié)果可知,在訓(xùn)練模型過程中,隨著樣本數(shù)據(jù)的不斷訓(xùn)練,誤差函數(shù)值呈現(xiàn)不斷收斂的趨勢。
在智能家居環(huán)境中當(dāng)設(shè)備的數(shù)量達(dá)到一定數(shù)目后,無論是描述當(dāng)前所有設(shè)備運(yùn)行狀態(tài)的數(shù)據(jù),還是每個設(shè)備的相關(guān)數(shù)據(jù)(如溫度、濕度和光照)在數(shù)量級別上均會顯著增加。因此在相同條件下,隨著節(jié)點(diǎn)個數(shù)的增多,預(yù)測多個設(shè)備狀態(tài)和功率的難度要遠(yuǎn)遠(yuǎn)大于單個設(shè)備。針對設(shè)備數(shù)量對模型預(yù)測能力的影響進(jìn)行研究,分別使用提出的深度信念網(wǎng)絡(luò)模型與雙隱層神經(jīng)網(wǎng)絡(luò)模型進(jìn)行對比實驗,結(jié)果如圖6所示。在實際生活中使用智能家居設(shè)備的數(shù)量一般不會超過50個,模型的設(shè)備數(shù)量輸入在達(dá)到50時,預(yù)測準(zhǔn)確率能夠達(dá)到94%,能夠滿足智能家居系統(tǒng)設(shè)備預(yù)測的需求。
圖5 誤差值趨勢
圖6 設(shè)備數(shù)量對準(zhǔn)確率的影響
在智能家居系統(tǒng)中,提出一種深度信念網(wǎng)絡(luò)模型設(shè)備運(yùn)行狀態(tài)預(yù)測方案。針對智能家居場景進(jìn)行整體模型的搭建,與基于淺層神經(jīng)網(wǎng)絡(luò)的模型設(shè)置對照實驗組,一方面,在訓(xùn)練過程中對設(shè)備數(shù)據(jù)特征進(jìn)行處理以增強(qiáng)通用性,提升數(shù)據(jù)方面的泛化能力;另一方面,根據(jù)智能家居場景內(nèi)多設(shè)備協(xié)同情況進(jìn)行充分?jǐn)M合,并使準(zhǔn)確率達(dá)到較為理想的范圍。因此,文中提出的深度信念網(wǎng)絡(luò)模型可以作為一種有效的家居自動化管理控制方案,實驗結(jié)果證明能夠在智能家居系統(tǒng)中以及相關(guān)領(lǐng)域方面進(jìn)行應(yīng)用,具有相應(yīng)的優(yōu)勢及應(yīng)用前景。