基于輕量化網(wǎng)絡和嵌入式平臺的電力負荷預測算法研究
實現(xiàn)階段
step 1:數(shù)據(jù)處理與分析 pearson.py
數(shù)據(jù)
Area1_Load:
日期20090101~20150110 每天每隔15min的歷史負荷數(shù)據(jù),
日期20150111~20150117未知,需要預測
共2209-1行
Area1_Weather:
日期20120101~20150117 每天的
最高溫度、最低溫度、平均溫度、平均濕度、降雨量,每日的五個因素的值
計算pearson系數(shù)需要:20120101~20150110的五個因素+日平均負荷
- 準備好(1106,5)維和(1106,1)維的數(shù)據(jù)
- 拼接成(1106,6)維數(shù)組
- DataFrame.corr()求系數(shù)
結(jié)果:
日平均復負荷最高溫度 最低溫度 平均溫度 平均濕度 降雨量
0 1.000000 0.594663 0.638024 0.638560 0.117022 0.072762

疑問:如果根據(jù)3法則刪除異常值,是要把對應的其他幾個因素的值都刪掉嗎,數(shù)據(jù)不連續(xù)會對預測造成影響嗎?
step 2.1:GRU
由于歷史負荷帶有時序信息,將其經(jīng)過1層GRU神經(jīng)元,輸出記為x1
預測的是什么?輸入是什么?
目前問題:
step 2.2:全連接層
x1與step 1中得到的其他因素(氣象因素數(shù)據(jù)和日期類型數(shù)據(jù)(節(jié)假日信息))的數(shù)據(jù)一起,輸入3個全連接層
step 3:剪枝
step 4 :預測
一些其他方法

準備階段
關(guān)鍵詞:輕量化/低資源、需求響應分析、嵌入式開發(fā)/應用于終端
應用場景:企業(yè)
滿足需求、不降低用戶體驗的情況下
① 應用背景,輸入是什么,要得到哪些輸出
② 調(diào)研已有算法,哪些有改進空間
③ 代碼實現(xiàn),先用python把論文解決,再討論嵌入式
大致思路:負荷預測算法的輕量化改進,比如LSTM/GRU的剪枝
重點參考文獻:
基于剪枝優(yōu)化CNN_LSTM混合模型在邊坡位移預測中的應用_鄭海青
在CNN剪枝,再進入LSTM
基于聯(lián)合動態(tài)剪枝的深度神經(jīng)網(wǎng)絡壓縮算
介紹了幾種剪枝方法,靜態(tài)剪枝、動態(tài)剪枝
模型壓縮的最終目的是降低模型的復雜度,減少模型的 存儲空間,并加速模型的訓練和推理。因而,其涉及到多方面 的不同問題,包括優(yōu)化算法、計算機架構(gòu)、數(shù)據(jù)壓縮、硬件設計 等。模型壓縮的主要方法有低秩近似、網(wǎng)絡量化、知識蒸餾、 緊湊網(wǎng)絡設計,以及網(wǎng)絡剪枝
較早的剪枝工作側(cè)重于權(quán)值,通過移除不重要的神經(jīng)元,并對網(wǎng)絡進行再訓練,微調(diào)至收斂。Han 等[6]設計了深度壓縮、結(jié)合剪枝、量化和哈夫曼編碼三種方法,在 AlexNet上獲得了 35 倍的壓縮比。國內(nèi)針對權(quán)值剪枝也有廣泛的研究,鞏凱強等[7]提出了基于統(tǒng)計量的網(wǎng)絡剪枝結(jié)合張量分解的神經(jīng)網(wǎng)絡壓縮方法,選擇均值和方差作為評判權(quán)值貢獻度的依據(jù),有利于模型在資源受限的嵌入式設備中的部署。王忠鋒等[8]則以梯度作為評判權(quán)值重要性的依據(jù),移除模型中小于閾值的梯度對應權(quán)值,并且通過再訓練恢復模型容量的損失。
這些方法是靜態(tài)剪枝,還有一些動態(tài)剪枝的方法。
基于梯度的深度網(wǎng)絡剪枝算法
GDP剪枝方法
基于GRU-NN模型的短期負荷預測方法

把帶有時序特征的歷史符合數(shù)據(jù)送進GRU,其他沒有時序特征的數(shù)據(jù)直接送入層3組合層,層4~層6的全連接層
想法
1. 數(shù)據(jù)降維:
數(shù)據(jù)量比較大,為了減少計算量,需要減少數(shù)據(jù)量,將數(shù)據(jù)集降維。因為不是每一個特征都對實驗結(jié)果有很大的影響,所以我們需要一個辦法來確定相關(guān)程度,然后刪除掉相關(guān)度不大的特征,實現(xiàn)數(shù)據(jù)降維??梢赃x擇皮爾森系數(shù):一種線性相關(guān)系數(shù),是用來反映兩個變量線性相關(guān)程度的統(tǒng)計量。系數(shù)越大,說明相關(guān)性越強。原文鏈接
2. 剪枝
方法待定
相關(guān)文獻:
基于嵌入式 GPU 的 AI 加速推理技術(shù)研究
在計算機算法中,某些判斷條件下當前分支產(chǎn)生的結(jié)果不可能是最終的正確結(jié)果,對這些不需要的分支進行剪枝,減少不必要的計算量,使得在線提交的代碼可以在規(guī)定時間內(nèi)計算完成。同樣,深度學習中的剪枝也是為了減掉對最終結(jié)果貢獻不大的網(wǎng)絡層,以提升推理速度
方法:先按照一定的范式(某統(tǒng)計量)對卷積核濾波器進行重要性排序,再剪掉排序靠后的濾波器。對于某一層卷積層,其包括多個卷積核,當其中某些卷積核被剪掉后,那么輸出特征圖的通道數(shù)會對應減少,當前卷積層的輸出作為下一層的輸入,因此下一卷積層的輸入特征圖的通道數(shù)會對應減少,與此同時,由于下一層卷積中每個卷積核通道數(shù)應該與輸入特征圖的通道數(shù)相等,因此下一層卷積核的通道數(shù)也應該對應減少。
那么不是卷積核的情況呢?
基于電力大數(shù)據(jù)的用戶用電行為分析與用電優(yōu)化策略研究
3.2節(jié)
基于剪枝優(yōu)化CNN_LSTM混合模型在邊坡位移預測中的應用_鄭海青
通道剪枝,也是針對卷積層進行剪枝

Q1:這個問題如何求解?
Q2:有沒有數(shù)學推導更為清晰的文獻?
基于聯(lián)合動態(tài)剪枝的深度神經(jīng)網(wǎng)絡壓縮算法
動態(tài)剪枝,其特點為不永久性地移除
任何參數(shù),轉(zhuǎn)而根據(jù)輸入圖像的特征,動態(tài)地選擇網(wǎng)絡的一部
分參與運算,以降低模型的復雜度
基于梯度的深度網(wǎng)絡剪枝算法
GDP:
壓縮卷積層能獲得更大加速效果,壓縮全連接層更能減少計算模型對存儲空間的占用
Dynamic Network Surgery for Efficient DNNs 貌似略復雜
待解決問題
CNN在預測中的作用
GPU是圖像處理單元,為啥是圖像?
7.30. pytorch自帶剪枝工具prune,這種方法貌似是把要剪枝的權(quán)重置零,模型大小沒變,計算復雜度可能差別不大。那么剪枝方法哪里有新意呢?有沒有其他剪枝方法呢?
目前任務:找一種剪枝方法,理解數(shù)學推導
數(shù)學知識
以下討論針對全連接層(該論文中的層3~層5)
- 神經(jīng)網(wǎng)絡結(jié)構(gòu)入門:參考網(wǎng)址
第層的輸入為第
層的輸出
:
,其中
為權(quán)值矩陣,
為閾值
- loss函數(shù):
由loss term和regularization term(如L1、L2范式)組成
loss term常用均方誤差、交叉熵,參考網(wǎng)址 - loss對權(quán)值矩陣求導:
會得到同尺寸的矩陣 - 權(quán)值矩陣的維數(shù):
輸入維數(shù)輸出位數(shù)
問題1:把需要剪枝的權(quán)值置為零,再進行權(quán)值的重新訓練,這樣并沒有降低運算規(guī)模,好處在哪里?
模型的參數(shù)量減小了(模型壓縮),減少計算模型對存儲空間的占用
問題2:“重新訓練”是如何進行的,是僅針對當前這一層嗎?多層神經(jīng)網(wǎng)絡的訓練過程:權(quán)重的調(diào)整訓練還是通過梯度下降法來進行,但梯度的求取使用反向傳播法。參考網(wǎng)址
結(jié)合論文,應該是先全連接訓練一遍,然后剪枝,然后從頭重新訓練一遍。
論文實驗結(jié)果顯示,剪枝不僅壓縮模型,減少參數(shù)量,而且由于更好防止過擬合,能夠提升性能。
算法總體思路總結(jié):
- 計算天氣、溫度等數(shù)據(jù)對負荷的皮爾孫系數(shù),選用相關(guān)度較大的因素作為模型的輸入,降低數(shù)據(jù)規(guī)模和訓練難度
- 由于歷史負荷帶有時序信息,將其經(jīng)過1層GRU神經(jīng)元,輸出記為
- 將
與步驟1中得到的其他因素的數(shù)據(jù)一起,輸入3個全連接層
- 采用GDP剪枝方法,降低參數(shù)量,減少模型對存儲空間的占用
- 得到訓練完成的模型,再由輸入求出輸出,記為負荷預測值