?

基于遞進式模型結構和時間信息嵌入的非侵入式負荷分解

2024-02-27 02:46孫睿晨趙劍鋒毛妍純
智慧電力 2024年2期
關鍵詞:電器注意力損失

孫睿晨,董 坤,趙劍鋒,2,毛妍純

(1.東南大學電氣工程學院,江蘇南京 210096;2.南京林業大學信息科學技術學院,江蘇南京 210037;3.國網江蘇南京供電公司,江蘇南京 210019)

0 引言

為實現電網與用戶的互動性以及用電管理的信息化,智能配電網對電力負荷監測的顆粒度提出了新的要求[1-3]。對于居民用電,電器級細粒度的負荷運行信息可用于計算需求側響應資源、引導居民合理用電以及輔助負荷建模等[4]。非侵入式負荷監測(Non-intrusive Load Monitoring,NILM)是獲取負荷電器級運行信息的關鍵技術,整個過程僅依賴于單點測量,以總電表記錄的功率、電壓、電流為特征,識別單個設備的運行狀態,估計其功率消耗[5-6]。

基于傳統機器學習的NILM 主要由隱馬爾科夫模型(Hidden Markov Model,HMM)[7-9]實現,這類算法通常依賴于較為嚴格的假設條件,對負荷狀態變化的描述并不符合所有電器的實際運行特性。2015年Kelly 首次將深度學習算法引入負荷分解領域[10],顯著提高了分解準確度和模型泛化能力。循環神經網絡(Recurrent Neural Network,RNN)[11]是一類適合處理序列數據的深度學習體系結構。為解決RNN 的長期依賴問題,NILM 問題多采用基于長短期記憶(Long Short-term Memory,LSTM)網絡[12-13]和門控循環單元(Gated Recurrent Unit,GRU)[14-15]的方法。卷積神經網絡(Convolutional Neural Networks,CNN)也在序列問題上表現突出[16],文獻[17]利用基于多層CNN 的網絡結構對比了Seq2Point 和Seq2Seq 2 種功率映射方式。谷歌于2017 年提出了Transformer 架構[18],其序列建模能力和信息感知能力顯著超越了RNN 和CNN。隨后,一系列工作將Transformer 模型的網絡結構和數據嵌入方式應用于NILM[19-21],分解效果得到有效提升。

基于RNN 的NILM 利用模型本身的循環結構捕獲時間序列模式,基于Transformer 的方法通常采用位置編碼捕捉位置信息。這類模型可以一定程度上挖掘某負荷事件與前后事件之間的關系,但是由于沒有描述長期時序信息的全局時間標簽,所關注的范圍僅限于序列內部,對用戶行為偏好的捕捉十分有限。部分研究工作對電器的日用電模式進行了提取,但是忽略了更長時間尺度的行為規律[22-23]。

另外,NILM 的問題模型涉及2 個方面:(1)確定電器是否處于運行狀態,對應分類問題;(2)還原電器的具體運行功率,對應回歸問題?,F存的NILM 算法通常將這2 個復雜任務直接交由1 個網絡完成,因此模型預測的準確度受到了一定限制。

本文提出了一種基于遞進式模型結構和時間信息嵌入的負荷分解方法。模型由2 個基于Transformer架構的模塊構成,遞進地解決判斷電器開關狀態與預測功率值2 個子問題,通過設置不同的損失函數,2 個模塊能夠側重于不同的功能。另外,本文在模型輸入部分引入多尺度的時間信息,提高了模型對用電行為特征的捕捉能力。在參考能量分解數據集(Reference Energy Disaggregation Dataset,REDD)和英國家用電器電力(UK Domestic Appliance-level Electricity,UKDALE)數據集上進行跨家庭測試,本文模型在4 項評價指標的表現均優于所對比的6 種NILM 方法,尤其顯著降低了平均絕對誤差。

1 算法設計

1.1 遞進式模型結構

本文方法的神經網絡部分基于特征抽取能力極強的Transformer 模型設計。Transformer 使用多層編碼器和解碼器疊加提取特征,但基于文獻[19]所述NILM 架構,本文通過實驗發現,在負荷分解問題中編碼器堆疊到2 層以上時網絡表現就會趨于飽和,甚至出現網絡退化。

因此,為了有效利用深層網絡,本文借鑒殘差網絡和級聯策略的思想提出一種遞進式模型結構。殘差網絡以跳連接的方式實現不同神經網絡層之間的信息傳遞,顯著提高了可有效訓練的網絡深度。級聯網絡是處理復雜任務的有效方法,其主要思想是“由粗到細”(Coarse-to-fine),通過逐級精細化迭代推理得到最終結果[24-27]。文獻[26]使用從粗檢測到微調特征點的級聯結構實現了人臉檢測。文獻[27]通過粗粒度網絡和細粒度網絡的順序連接實現了疾病嚴重程度的精確分類。

受此啟發,結合負荷分解任務分類與回歸問題共存且后者依賴于前者的本質,本文設計了一種兩級的遞進式模型結構,使模型逐漸細化對功率消耗情況的推理。通過如圖1 所示的信息傳遞機制提高模型對任務的整體理解能力:預分解模塊的輸入為總功率信號和時間信息,功率預測模塊的輸入為總功率信號、時間信息和預分解模塊初步預測的目標電器狀態。預分解模塊主要負責判斷目標電器的開關狀態,功率預測模塊基于前者的分解結果精確還原目標電器的功率曲線。

圖1 遞進式模型結構圖Fig.1 Architecture of progressive model

圖2 為單個模塊結構圖。圖2 中預分解模塊和功率預測模塊均由3 部分網絡組成:信息嵌入層、核心分解層和輸出層。兩模塊的核心分解層與輸出層結構完全一樣,信息嵌入層因輸入信息的不同而有所差異。圖2 中L和H分別表示輸入及輸出序列長度和嵌入數據維數,l和h分別表示核心分解層中的編碼器層數和自注意力頭數。

圖2 單個模塊結構圖Fig.2 Structure of single module

1.2 網絡結構

1.2.1 信息嵌入層

本文所提方法的輸入信息分為時間信息、總功率和預分解模塊輸出狀態3 類。為捕捉這些數據中與目標電器功率相關的信息,采用卷積核大小為k的一維卷積層對序列進行特征提取,同時增加維度,然后通過池化層將序列長度縮短至一半,最后以求和計算融合多種嵌入信息。具體網絡結構如圖3 所示。

圖3 信息嵌入層網絡結構圖Fig.3 Network structure of information embedding layer

1)總功率數據嵌入。負荷分解的實現主要依賴于神經網絡學習到全屋總功率與目標電器功率曲線的映射關系,因此總功率數據作為最重要的判斷依據,被同時輸入預分解模塊和功率預測模塊。

2)時間信息嵌入。傳統的負荷分解方法僅通過聚合功率特征判斷單個電器的狀態,一定程度上忽略了家庭用戶的用電規律性。例如洗碗機通常在午餐和晚餐之后使用,微波爐和洗碗機在工作日中午使用概率較低,冰箱在天氣炎熱的季節啟動更加頻繁。不同時段電器的活躍度差異可以成為判斷電器使用情況的有力依據。然而由于一次送入模型的數據長度有限,模型難以自動捕捉長時間尺度的規律特征。因此本文將多尺度時間信息直接提取并顯式地輸入模型,以提高模型對用電規律的敏感性。

本文借鑒文獻[28]提出的全局時間標簽編碼方法,設計了適用于NILM 問題的多尺度時間信息的表示及嵌入結構。時間信息的描述方法見圖4。為確保模型精準捕捉與家庭用電規律關聯最緊密的時間特征,避免冗余信息的干擾,本文對每個時間標簽提取3 個關鍵特征:1 d 中的小時數、1 周中的星期數、1 a 中的月份數,并將這3 個特征分別線性編碼為[-0.5,0.5]區間內的值。例如:對于2011-04-18 13:22:12 這一時間標簽,其小時數、星期數和月份數分別為13、1 和4,故得[0.065 2,-0.500 0,-0.326 1]作為表示。

圖4 時間戳處理示意圖Fig.4 Schematic diagram of timestamp processing

3)狀態數據嵌入。利用設備開啟閾值(即表1中電器運行合理功率范圍的下限值)計算預分解模塊輸出功率對應的開關狀態序列,用0/1 狀態量編碼。由于電器開啟的稀疏性,狀態序列的均值接近于0,因此無需對狀態數據進行標準化操作。

表1 電器基本參數設定Table 1 Basic parameter settings of electric appliances

1.2.2 核心分解層

核心分解層參考基于Transformer 的雙向編碼表示(Bidirectional Encoder Representation from Transformers,BERT)模型設計,由l層編碼器堆疊形成,每個編碼器由h頭的自注意力網絡和前饋神經網絡構成。

1)多頭自注意力機制。注意力機制模擬了人腦的信息處理能力,與僅根據位置決定權重的全連接層相比,注意力機制根據向量內容來學習權重,因此能夠將有限的注意力集中到最重要的局部特征。注意力機制的實現依賴于3 個向量:Q(Query),K(Key),V(Value)。V為表示輸入特征的向量,Q,K為用于計算注意力權重的向量,都由對嵌入數據進行線性運算得到。對Q和K之間的相似度進行計算,然后通過softmax 獲取向量的權重值,并與V進行加權計算,最后將帶權重的V向量求和,得到該位置的自注意力輸出YAttn(Q,K,V):

式中:dK為向量K的維度。

多頭自注意力機制為注意力機制的變體,從結構上使多個注意力并行地關注到數據的不同特征部分,幫助網絡捕捉到更豐富的信息。多頭自注意力本質上是多個獨立的注意力計算,對于第i個頭的自注意力機制,用獨立學習得到的第i個線性投影WQ,WK和WV來變換Q,K和V,其中i=1,2,…,h為總頭數。然后將h組變換結果并行地池化并進行拼接,最后通過一個學習得到的線性變換WO獲得最終的注意力輸出。多頭自注意力計算結果YMultiHead(Q,K,V)可描述為:

其中第i個注意力頭的輸出hi按式(3)計算:

2)前饋神經網絡。注意力輸出被送入前饋神經網絡,將注意力值轉換為下一層更易處理的形式。前饋神經網絡使用兩層全連接和GELU 激活處理輸入元素,之后利用殘差連接防止網絡退化和梯度消失,然后進行層歸一化穩定前向輸入分布。

1.2.3 輸出層

輸出層部分將核心分解層所提取的功率特征映射為與總功率序列長度相同的單個電器功率序列。使用卷積核為的反卷積操作擴展數據長度,2個全連接層將特征矩陣轉換為長度為L的一維數據,然后根據表1 所示電器運行的合理功率范圍對輸出值進行調整,獲得最終的預測功率。

1.3 損失函數

本文采用多種損失函數聯合引導模型的優化方向[19],所提方法涉及以下4 種損失函數:

1)均方誤差(Mean Square Error,MSE)。該函數曲線連續光滑,收斂效率高,但是對離群點較為敏感。MSE 損失函數LMSE(yt,)表達式為:

2)推土距離(Earth Mover’s Distances,EMD)誤差。將離散分布想象為2 個土堆,則推土距離可以直觀地理解為將1 個土堆轉換為另1 個土堆所需的最小工作量。與以KL(Kullback-Leibler)散度作損失函數相比,推土距離能夠為模型的參數更新提供更平滑的結果[29]。EMD 損失函數LEMD(yt,)表達式為:

3)骰子損失(Dice Loss)。該損失函數用于提高模型對設備開關狀態的判斷效果。骰子損失在圖像分割領域有著廣泛的應用,能夠大大緩解樣本不平衡問題[30],但是正樣本為小目標時可能會引起震蕩。骰子損失函數LDice(st,)表達式為:

4)平均絕對誤差(Mean Absolute Error,MAE)。這一項的目的是拉近電器開啟期間預測功率與真實值的距離,因此計算范圍并非整個序列,而僅為目標電器實際狀態為開啟和狀態預測錯誤的時序點。MAE 損失函數LMAE(yt,t)表達式為:

式中:O為電器實際開啟或狀態預測錯誤的時序點。

不同損失函數對誤差衡量的側重點不同,為實現全面模型優化,根據每個模塊的優化目標將其損失函數設置為多項組合。預分解模塊對最終輸出的貢獻在于向功率預測模塊提供較為準確的分類信息,因此其損失函數由MSE、推土距離和骰子損失3 項組成,骰子損失發揮主導作用,引導網絡對目標電器的開關狀態做出正確的判斷。在獲得狀態信息的基礎上,功率預測模塊需擬合出電器運行的功率曲線,因此其損失函數由MSE、推土距離和MAE3 項組成,MAE 損失項對電器開啟時的功率值進行校正。復合損失函數可描述為:

式中:L1和L2分別為預分解模塊和功率預測模塊的損失函數。

本文對其他損失項同樣添加權重進行實驗,發現其他權重值對模型結果的影響可忽略不計,因此僅對MAE 項設置權重。

另外,使用組合損失函數的優勢還體現在模型可解釋性的提高。通過觀察每個損失函數的變化,可以更深入地理解模型對不同方面的關注和響應,有助于模型調試。

2 數據集及數據處理

2.1 數據集選取

本文使用REDD 和UKDALE 數據集中的低頻數據進行模型的訓練與測試。REDD 是非侵入式負荷分解領域的第1 個也是使用最廣泛的公開數據集,包括了6 個美國家庭住宅的總電表和負荷分表的數據,記錄時長約為4 個月。UKDALE 是2014年帝國理工學院發布的公開數據集,其數據量極大,包含5 個英國家庭的電器級消耗數據,其中,1 號房屋的功率采集時間長達3 年,其他房屋為數月。

2.2 數據預處理

1)合并分相電表數據。由于北美家庭常使用兩相供電方式,因此對于REDD 數據集,需將兩電表功率數據求和得實際總功率。

2)對功率數據以6 s 為間隔進行重新采樣。

3)對少于3 min 的數據缺失通過前向填充來補值,對超過3 min 的數據缺失用0 填充。

4)刪除總功率低于5 W 的數據,認為沒有設備開啟,無分解必要。

5)給數據集添加狀態標記。根據表1 所示的電器基本參數設定,電器功率在運行合理功率范圍內且運行時長大于最小持續時間,則認為設備開啟,狀態值標記為1,否則標記為0。

6)對功率數據按式(9)進行標準化處理,其中y為原始功率數據,y*為標準化后的功率數據,μ為樣本均值,σ為樣本方差。經處理的數據符合標準正態分布,即均值為0,標準差為1,該過程能夠提高模型精度和訓練收斂速度。

2.3 訓練及測試數據劃分

對某個房屋進行負荷分解時,該房屋電器的耗電歷史數據通常是未知的,因此要求模型對新鮮樣本具有一定泛化能力,使用已知房屋數據訓練的模型在未知的房屋上也能夠準確地分解。

本文在REDD 數據集中選取微波爐、洗衣機、洗碗機、冰箱作為研究對象,在UKDALE 數據集中選取微波爐、洗衣機、水壺、冰箱作為研究對象,進行跨家庭的訓練與測試,如表2 劃分訓練集與測試集。

表2 訓練集及測試集選取Table 2 Selection of training set and testing set

3 算例分析

3.1 實驗環境及配置

在Python 編程平臺中使用Pytorch 深度學習框架進行模型的訓練和測試。采用Adam 優化器加速梯度下降,其中一階和二階矩估計的指數衰減率分別為0.9 和0.999。神經網絡參數設置如表3 所示。

表3 神經網絡參數設置Table 3 Parameter settings of neural network

3.2 評價指標

為衡量算法對負荷開關狀態的判斷能力和對負荷功率消耗的還原能力,需要選取合適的性能評價指標。NILM 任務既是二分類問題,也是回歸問題,因此算法的性能可以用兩類指標來評價。

1)分類性能評價指標。式(10)中的分類指標可用于評價算法對電器開關狀態的識別能力,其中,NTP,NTN,NFP,NFN分別表示電器實際開啟且分解結果也為開啟、電器實際開啟且分解結果也為開啟、電器實際關閉而分解結果為開啟、電器關閉且分解結果也為關閉的序列點的數量。NP和NN分別表示電器實際開啟和關閉的數量。準確率(A)為最直觀的分類指標,但不適用于不平衡數據集,對于電器開啟較為稀疏的情況,該指標并不是1 個很好的度量。F分數(F)綜合考慮精確率(P)和召回率(R)的值,可根據負荷分解的具體應用場景,通過改變權衡參數β的值賦予精確率和召回率不同的權重,以在各種具體問題中評價負荷分解算法的好壞。一般認為精確率和召回率同樣重要,因此令β=1,此時的F分數為兩者的調和平均,稱為F1分數(F1),1.3 節所述骰子損失對該項指標有直接的優化作用。

2)回歸性能評價指標。為了評估模型對負荷功率消耗的還原效果,使用常用于回歸問題的平均絕對誤差(Mean Absolute Error,MAE)和平均相對誤差(Mean Relative Error,MRE)來衡量算法的分解性能。MAE 和MRE 的值分別用EMA和EMR表示,計算公式為:

3.3 實驗結果

將所提方法與6 種NILM 算法進行對比,其中包括因子隱馬爾科夫模型(Factorial Hidden Markov Model,FHMM)[8]、基于RNN 架構的雙向GRU 和雙向LSTM 模型[14]、基于CNN 架構的Seq2Seq 模型[17]、基于Transformer 架構的BERT4NILM 模型[19]和ELECTRIcity 模型[20]。為了確保對比實驗的客觀性,對每種算法采用相同的數據處理方式,且固定輸入序列長度,模型均訓練至收斂。由于F1分數綜合了召回率和精確率的結果,本文對比準確率和F1分數兩項分類指標及MAE 和MRE 兩項回歸指標。7 種分解方法在REDD 和UKDALE 數據集上的性能指標分別如表4 和表5 所示,其中加粗項為最優指標,符號↑和↓分別表示該項指標越大越優和越小越優。

表4 REDD數據集模型表現Table 4 Model performance on REDD dataset

表5 UKDALE數據集模型表現Table 5 Model performance on UKDALE dataset

從表4 和表5 數據可以看出,在兩數據集上,5種基于深度學習模型的NILM 方法均整體優于基于FHMM 的方法,且本文方法4 項指標的平均值均優于基準模型,對于大部分電器,負荷分解的綜合性能也具有優勢。尤其在MAE 指標上,本文所提方法在所測試的每個電器上均顯著優于其他算法。MAE 的平均值在REDD 和UKDALE 上比所對比的最優方法(BERT4NILM)分別降低了24.7% 和27.0%,UKDALE 數據集中3 個電器的MAE 比該方法降低超過50%。這是由于遞進式模型結構使單個模塊能夠專注于單個任務,因此對于開啟功率還原這一任務的完成效果具有明顯提升。另外,對于F1分數,本文方法在REDD 和UKDALE 上分別比BERT4NILM 算法提高了7.9%和32.0%。

圖5 為REDD 數據集4 種電器的分解結果局部圖,大部分圖中藍色實線與橙色虛線都能夠基本吻合,說明本文所提方法對大功率電器和小功率電器的消耗曲線都具有很好的擬合效果。然而對于洗碗機,盡管4 項評價指標都高于基準方法,但是從結果曲線圖上看,分解效果仍不夠理想。模型將電器運行功率較小的時段判斷為電器處于關閉狀態,未能完整還原出洗碗機使用期間的功率消耗情況。這是因為洗碗機的運行特性較為復雜,開啟期間具有多個模式(如預沖洗、蒸汽洗、烘干等),因此對模型的特征捕獲能力要求更高。且從圖5(c)中可以看出,預測的電器功率曲線一定程度上跟蹤了總功率曲線的形態,受到總功率中噪聲信號的影響,分解結果不夠平滑。

圖5 REDD數據集各電器分解曲線局部圖Fig.5 Local decomposition curve for each electric appliance on REDD dataset

4 結論與展望

本文針對傳統非侵入式負荷分解方法精度欠缺的問題,基于深度學習框架,提出了1 種基于遞進式模型結構和時間信息嵌入的非侵入式負荷分解方法,主要結論如下:

1)提出遞進式的模型結構,將NILM 問題拆解出的2 個子任務遞進地通過2 個模塊完成,增強了模型對復雜任務的消化和處理能力。

2)提出一種適用于負荷分解問題的時間標簽編碼方法及嵌入結構,利用時間信息輔助模型做出功率預測。

3)提出復合損失函數,根據特定的網絡任務聯合不同的損失函數,目標明確地引導模型優化。

本文所提模型在REDD 和UKDALE 數據集上進行測試,準確率、F1分數、MAE 和MRE 4 項指標均優于所對比的6 種基于深度學習的NILM 方法,尤其在電器功率曲線還原任務上表現顯著提升,確保算法在電器故障檢測等對功率曲線擬合要求較高的應用場景中能夠提供可靠的負荷分解結果。且本文算法在跨家庭測試中展現出良好的效果,說明算法在家庭電器設備配置存在較大差異的多樣化居民用電場景中的具有較強的泛化能力。

基于本文的研究成果,未來將考慮進一步提高模型對運行狀態復雜的多模式設備的識別能力。

猜你喜歡
電器注意力損失
家中電器要“煥”新 這波惠民操作別錯過
讓注意力“飛”回來
胖胖損失了多少元
奧田電器
玉米抽穗前倒伏怎么辦?怎么減少損失?
電器創新設計兩則
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
一般自由碰撞的最大動能損失
損失
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合