李駿翔,李兆豐,楊賽賽,陶洪峰,姚 輝,吳 超
1(浙江省郵電工程建設有限公司 大數據研究院,杭州 310052)
2(浙江大學 公共管理學院,杭州 310058)
隨著通訊和數字化產業的發展,機房電量消耗越來越大.統計發現,機房中空調的耗電量占機房總耗電量50%左右[1],怎樣節省空調設備的耗電量成為亟待解決的問題.另一方面,電信機房很多是無人值守的,空調的設置參數通常是固定不變或者維護人員定期去調整,但機房的熱負荷是在動態變化的(機房設備工作負載發熱,室外溫濕度情況,機房門禁開關等都是影響熱負荷的因素),傳統的空調設定參數不變或很長時間人為去調整一次的方式,由于沒有自動化調節,通常會把空調制冷量輸出設定的較大以應對可能的機房高負荷情況(突然的高溫天氣或機房設備負載升高),但多數情況下機房實際熱負荷并沒有那么大,這種過度設置造成會不必要的電能浪費,所以設計一種自適應調節的空調節能控制系統成為解決問題的關鍵.
郭曉巖提出了一種變風量空調系統的模糊神經網絡預測控制系統[2],動態調節出風量達到節能目的,雖然取得一定的效果,但針對非線性,時序性,狀態空間較大的機房空調控制系統,這種控制方式很難取得更好的效果,而且空調的可控參數不止有出風量,還有設定溫度,開關機等.Congradac 和 Kulic采用遺傳算法優化空調控制系統達到節能的目的[3],這種控制優化方法需要專家設計建模,人為調整優化參數,實際應用中比較復雜,需要大量分析調整才能找到合適參數設定.
強化學習是一種用于控制決策的人工智能算法,它能夠從與環境交互中學習控制策略,是目前比較熱門的一種機器學習算法,廣泛應用在機器人控制,自動駕駛,能源調度等領域.在空調節能控制方面,文獻[4,5]提出了基于表格存儲參數的Q-learning強化學習空調節能控制算法,這種方法對狀態空間較小的情況具有好的效果,但對于輸入變量較多且輸入變量是連續的應用場景,由于狀態空間較大,構建的參數表格巨大,無法存儲或檢索,導致維數災難問題.文獻[6-8]提出了使用深度神經網絡作為記憶體的深度強化學習,解決空調控制中狀態空間較大的問題,取得不錯的節能控制效果,但以上文獻提出的方案是在模擬環境中構建模型和實驗分析,真實的機房環境場景對室內溫度和濕度有嚴格的要求,不允許出現溫度超出規定范圍的情況,所以很難實際推廣應用.
基于以上分析,本論文提出了一種規則約束和深度強化學習相結合的控制算法,該算法以保證機房室內溫度在要求的范圍之內和節省空調耗電量為優化目標.在保證不產生高溫告警,同時符合機房溫度要求的條件下,利用強化學習算法學習在不同環境場景下的最節能的控制策略.同時設計了模型自動更新機制,具備持續學習能力,能夠隨著數據的積累,不斷改善空調節能控制策略,越用越好.該算法已成功應用到實際機房環境,在保證機房室內溫度符合要求條件下取得很好的節能效果.
強化學習是一種需要不斷與環境交互,根據獎勵反饋調整模型,最終得最佳策略模型的機器學習方法.強化學習是一種探索試錯過程.其在機房空調節能控制的工作原理如圖1所示,強化學習模型從機房及空調系統環境中觀測到一個狀態數據St,根據模型參數推理計算得到執行動作At,把動作At作用到機房及空調系統環境中,環境會發生變化,達到新的狀態St+1,同時得到環境的反饋獎勵Rt+1,強化學習模型根據反饋獎勵優化自身參數:某個動作導致機房內溫濕度超出規定或導致空調耗電量增加,就通過調整參數,減弱輸出該動作的趨勢,反之則會加強輸出該動作的趨勢.通過強化學習模型和機房及空調系統環境的不斷交互,最終得節能收益最大化的策略,即最優策略.

圖1 強化學習在機房空調節能控制中的原理
在機房空調節能控制場景中,強化學習中的狀態,動作,獎勵函數的設定如下:
狀態(state,S):狀態是從機房及空調系統環境中觀測到的信息,需要從機房中安裝的傳感器和設備工作狀態數據中,選取能夠反映機房環境變化的特征作為狀態.例如:室外溫度,室內溫度,機房負載等都可以加入狀態空間中.
動作(action,A):動作是強化學習模型輸出可控制空調設置的集合.輸出動作需要根據空調可控參數和空調數量來制定.通常選取空調開關機,設定溫度作為控制動作.
獎勵函數(reward,R):獎勵函數是反饋動作作用到機房環境后造成的影響好壞的評價指標,需要根據優化目標確定.例如控制目標是節省空調耗電量,則獎勵函數可以根據空調耗電量值來設計.
Q-learning是由Watkins提出的最簡單的值迭代(value iteration)強化學習算法[9,10].與策略迭代(policy iteration)算法[11]不同,值迭代算法會計算每個“狀態-動作”的價值(value)或是效用(utility),把這個值叫Q值,其計算如式(1)所示.

其中,st為在t時刻的環境狀態;Rt+1為在當前狀態st執行動作a之后的即時獎勵;γ為折扣因子,表示對長期獎勵回報的權重;St+1為執行動作a到達的新的狀態.
Q-learning算法將環境狀態(state)和執行動作(action)構建成一張Q-table表格來存儲Q值參數,表的行代表環境狀態(state),列代表執行動作(action)形式如表1所示.對每個狀態和動作對應的Q值的準確估計,是值迭代算法的核心.

表1 Q-table表格形式
Q-learning算法的執行流程如圖2所示.

圖2 Q-learning 算法執行流程
首先初始化Q-table表,一般把Q值全部初始化為0或隨機初始化,然后算法模型與環境交互,計算新的Q值,計算方法如式(1)所示.利用新計算的Q值更新原表格中的Q值,為了使Q-table表的迭代更新更加平緩,一般更保守的更新Q-table表,即引入松弛因子變量α,保留一定比例的原Q值,取一定比例新計算的Q值,按式(2)所示更新.

在強化學習更新迭代過程中,使用epsilon-greedy算法[12]選擇輸出動作,如圖3所示,以一部分概率隨機選擇動作執行,以一部分概率按照貪婪策略,取最大Q值對應動作執行.在開始階段由于采用隨機初始化或全部初始化為0的方式,所以Q值估計不準,而且為了更好的探索環境,隨機選取動作的概率較大,隨著學習迭代次數的增加,隨機選取動作的概率逐漸減少,直到降低為0.最終收斂到最優策略,在執行時選擇某狀態下最大的Q值對應的動作執行.

圖3 Epsilon-greedy 算法選擇動作
在電信機房環境中,傳感器和設備比較多,狀態維數空間非常大,無法利用 Q-learning 算法建立有效的Q-table表格,針對這個問題,Mnih等人在Q-learning算法基礎上提出利用神經網絡取代Q-table表,利用神經網絡對值函數進行估計,神經網絡的輸入是狀態,輸出是各個動作的Q值,即DQN(Deep Q Network)算法[13,14].全連接神經網絡具有擬合泛化能力強,結構簡單,容易訓練等優點,所以采用全連接網絡作為算法存儲單元.假如輸入狀態有p個,輸出動作空間為n,網絡結構如圖4所示.

圖4 全連接DQN網絡結構
在機房熱負荷較小時(機房設備工作負載較低,并且機房外界溫度較低),無論空調采用什么設定動作,機房空調低負荷運行,耗電量基本相同.或者在機房熱負荷較大(機房內設備工作負載高,外界溫度高)時,無論空調采用什么設定動作,空調總是滿負荷運行,耗電量基本相同.針對以上兩種情況,傳統的DQN算法只能學習在同一狀態下哪種動作設置是有價值的,無法判定狀態的價值[15],所以無法對以上兩種情況的Q值進行準確的估計.
Dueling-DQN算法[15]在不改變DQN輸入輸出的情況下,在輸出層之前將網絡結構拆分為兩個分支:價值估計分支和優勢估計分支,分別對狀態的價值和在該狀態下不同動作的價值進行估計,然后再把兩個網絡分支線性合并為輸出層,如式(3)所示.

其中,V為價值函數估計,參數為α.A為優勢函數估計,參數為β,公共隱含層的參數為θ,網絡結構如圖5所示.

圖5 Dueling-DQN網絡結構
Dueling-DQN算法采用把網絡拆分成價值函數和優勢函數單獨估計,適用于實際的機房空調控制場景,能夠在熱負荷較低或較高時也能準確的對Q值進行估計,并且具有很好的泛化能力[15],所以本論文的控制決策部分采用Dueling-DQN算法.
針對機房空調節能控制場景,對比幾種常用的強化學習算法(DQN,Double-DQN,Dueling-DQN)在機房空調節能數據集上損失函數的表現如圖6所示.

圖6 不同深度強化學習算法的損失函數變化
可以看到與DQN,Double-DQN相比,Dueling-DQN算法損失函數有更快的收斂速度,同時損失函數的波動較小,表明在機房空調節能控制場景中,采用Dueling-DQN算法具有更好的算法穩定性和訓練性能表現.
Dueling-DQN算法由于需要不斷的試錯才能學習到最優的控制策略,但實際的機房環境不允許調控過程使機房室內溫度超出規定的范圍,否則可能會導致機房設備工作不穩定.另外,強化學習算法實際應用時需要考慮機房環境發生變化時,算法模型也要相應更新.所以需要結合實際應用場景設計整個控制系統,具體架構如圖7所示,首先控制系統會定時采集機房中所有傳感器數據并存儲,然后基于采集的傳感器數據通過規則約束分析和Dueling-DQN推理相結合得到最終的輸出動作,并下發到實際機房中執行.執行后可以得到空調耗電量的獎勵反饋及執行動作前后的傳感器狀態,把這些數據存儲到存儲庫(memory)中用于Dueling-DQN模型的訓練更新.控制系統每天固定時間從存儲庫中提取數據進行模型重新訓練并替換舊的模型.

圖7 系統總體框架圖
節能控制決策部分使用Dueling-DQN算法和基于專家經驗的規則約束相結合的方法輸出最終的執行動作.在探索學習階段,Dueling-DQN神經網絡模型對Q值的估計還不夠準確,有可能輸出的控制動作會導致機房室內溫度超出規定的范圍,存在安全隱患,真實的機房環境不允許出現超出溫度范圍要求(一般24-27℃,具體根據機房管理要求確定)的情況.所以在Dueling-DQN 算法基礎上增加安全規則約束,讓Dueling-DQN算法在安全范圍內運行,同時通過獎勵函數的設定,不斷優化Dueling-DQN神經網絡參數,使算法決策輸出朝安全節能的方向進化.
機房空調不同的設定動作,輸出的制冷量不同,耗電量也不同.傳統的空調控制系統根據室內溫度和室外溫度通過規則約束直接得到了確定的空調設置動作輸出,雖然也能滿足機房制冷需求,但不同機房的具體環境場景,規則得到的動作不一定是最節能的.約束規則如表2所示,其中,a1,a2,a3為在不同室內外溫度范圍下空調可以執行的控制動作.

表2 傳統規則約束動作輸出
本決策系統具體執行流程如圖8所示,首先根據室內溫度和室外溫度確定多個可以設置的安全動作范圍,而不是具體一個設置動作,這些動作具體執行時能滿足機房制冷需求,但是具體哪個動作執行后最節能還需要后續判斷.具體約束規則如表3所示.

表3 根據約束得到安全動作范圍

圖8 規則約束 Dueling-DQN算法執行流程
然后決策系統推理計算Dueling-DQN算法的設定溫度動作輸出,再判定Dueling-DQN算法設定溫度輸出是否在上述安全的設定溫度范圍內,如果在安全動作范圍之內,則按Dueling-DQN算法輸出動作執行,如果不在安全范圍之內則按傳統規則約束輸出動作執行,同時給予該步動作執行一個懲罰獎勵.
控制算法在運行時從機房中獲取各種傳感器數據作為當前狀態s,經過控制決策部分輸出執行動作a作用到真實的機房環境中執行,獲取即時獎勵r,機房環境發生變化達到新的狀態st+1,在這個過程中積累一個訓練樣本數據(s,a,r,s').系統設計了用于存儲訓練樣本的存儲庫,并引入經驗回放機制[12]便于模型的離線訓練.存儲庫具有固定容量大小,當存儲庫存儲滿了之后,再存入新的數據時,最先存入到存儲庫中的數據會被丟棄,這種機制保證了訓練樣本的時效性,保證模型能夠自適應機房環境的變化.
Dueling-DQN算法模型每天固定時間訓練更新:首先加載當前模型參數,然后從存儲庫中每次隨機提取batch size的數據樣本進行訓練,訓練一定輪數收斂到更好的模型參數時,用新模型替換舊模型.這種模型更新機制既能使模型繼承原來的部分策略又能根據機房環境的變化更新策略,能夠自適應處理隨季節變化,機房設備性能衰減導致的控制策略變化.
選擇電信某機房作為實驗環境,該機房有一臺定頻空調設備,送風方式為上通風,機房建筑面積33.86 m2,機房設備工作總負載為6.6 kW左右,熱量來源包括3個方面:太陽輻射,室內外溫度差,設備工作散熱.該機房維護管理要求室內溫度保持在20-25℃之間,機房示意圖如圖9所示.

圖9 機房熱平衡示意圖
實驗前在空調和其他工作設備上安裝電表,統計空調耗電量和機房設備總工作負載; 并在機房外面安裝一個溫濕度傳感器; 室內安裝兩個溫濕度傳感器; 通過監控系統可以獲取室內外溫濕度數據,設備耗電量和功率數據,空調運行狀態數據.
在實際應用中,需要根據機房實際情況確定控制系統中的各個參數,才能使算法正常運行,主要包括以下參數設定:Dueling-DQN模型輸入參數選擇,控制輸出動作范圍設定,算法獎勵函數設定,模型訓練和更新參數設定.
(1)Dueling-DQN模型輸入參數選擇
根據機房熱量來源和與節能控制相關性分析,選擇室外溫濕度,室內平均溫度,室內平均濕度,天氣狀況,門禁狀態,空調工作狀態,機房設備總負載功率作為輸入特征,這里設定數據采樣頻率為1次/min(當然也可以提高采集頻率,要綜合考慮數據采集設備的承受能力),選取最近60 min以上特征的歷史數據作為模型輸入.具體特征介紹如下:
機房室外溫濕度:通過機房外墻溫濕度傳感器采集得到,包括濕度和溫度數據.
室內平均溫濕度:室內兩個溫濕度點位的平均值,包括溫度和濕度數據.
天氣狀況:通過氣象接口獲取,包括晴,陰,多云,雨等不同狀態.
門禁狀態:通過監控系統中門禁設備采集到的工作狀態,判定機房門是打開還是關閉.
空調工作狀態:空調運行狀態數據,包括送風溫度,回風溫度,設定溫度,壓縮機工作狀態.
機房設備總負載功率:通過機房中所有工作設備的電表采集到的功率值相加得到.
(2)控制輸出動作范圍設定
控制動作是作用在機房空調上的,不同品牌的空調,可以進行控制的控制操作不同,這里我們空調品牌是愛默生,可進行的控制動作包括:空調開關機和設定溫度調節(調節范圍為20-26℃),通過監控系統可以把控制動作下發到空調執行.
(3)Dueling-DQN算法獎勵函數設定
為了確保算法能朝著減少空調耗電量方向優化,并且在規定的安全約束內運行,設計的獎勵函數分為兩部分,公式為R=-P+S,-P是空調在一個交互周期中的耗電量,優化目標是減少空調耗電量所以取負值.S是安全約束獎勵,在安全約束范圍之內取0,在安全約束之外取-|T上限-t下限|,其中,T上限和t下限分別是安全約束要求的上限和下限溫度.
(4)算法模型訓練和更新參數設定
Dueling-DQN算法模型神經網絡部分使用的是全連接神經網絡,包括兩個公共隱含層,神經元節點數都為20.價值函數分支包括一個隱含層,節點數為10,優勢函數包括一個隱含層,節點數為20,具體結構如圖5所示.實驗驗證過程中,Dueling-DQN算法其他超參數設定如表4所示.
本文所述空調節能控制系統的一個創新點就是能夠在原有模型基礎上繼續訓練優化策略得到新的模型,新的模型即保留了舊模型部分策略,又根據機房環境的變化添加或替換部分策略,更適應當前機房環境,實現模型的自適應更新,同時也能減少重新訓練所消耗的計算資源.為了驗證模型根據新數據更新策略的同時保留舊的策略,進行以下實驗,通過觀測模型損失函數的變化驗證以上特性.
首先進行第1個實驗,選取100個樣本數據,訓練200輪,得到損失函數隨著訓練輪數的變化趨勢,如圖10所示,可以看到模型損失函數隨著訓練輪數的增加逐漸收斂到一個固定的值,說明模型得到了一個穩定的控制策略.然后進行第2個實驗,先選取100個樣本數據,訓練200輪; 然后再加載訓練好的模型,選取100個新的樣本數據,再訓練200輪; 然后再加載訓練好的模型,再選取100個新的樣本數據,再訓練200輪;總共訓練600輪,損失函數隨訓練輪數的變化趨勢如圖11 所示,可以看到,在200輪,400輪加入新的數據繼續訓練時,模型損失函數雖然略有上升,但整體峰值逐漸下降,模型能夠根據新數據學習到新的策略,同時保留歷史訓練數據的得到的策略.

圖10 初始訓練200輪損失函數變化

圖11 加載模型繼續訓練損失函數變化
假設每增加100個樣本需要訓練200輪,每一輪訓練占用的計算資源和消耗時間相同,隨著新數據的不斷增加,如果每次都采用全部數據重新訓練,那么模型訓練時間會成倍增加,當模型訓練時間大于控制間隔時間,新的控制策略無法及時部署,會對下一次的控制策略產生影響,所以模型根據新的數據繼續訓練更新很有必要.
為了證明本文所述Dueling-DQN控制算法具有節能效果,我們對比采用Dueling-DQN控制算法和不采用該控制算法機房空調耗電量,這里把采用Dueling-DQN算法的運行方式稱為節能控制模式,把不采用Dueling-DQN算法的運行方式稱為傳統運行模式,也即是機房原來的默認設置(空調設定溫度為固定值,例如空調開機設定20℃).機房按照以下方式運行:奇數天按Dueling-DQN算法調控運行,偶數天按傳統默認設置運行,運行一個月時間,統計耗電量數據如表5所示,經過一個月數據實驗對比,傳統運行模式平均每天耗電量37.61 kWh,節能控制模式平均每天耗電量30.72 kWh,平均節能百分比為18.3%.受季節因素影響,在冬天室外環境較冷的情況下,節能效果會更好,夏天節能效果會稍差.

表5 耗電量數據對比
從表3中取室外溫度接近,機房負載接近的兩種運行模式的數據進行對比,如圖12所示,在室外溫度基本相同,節能控制模式總負載功率與傳統運行模式接近(部分時間段負載更高)的情況下,空調耗電量反而更低,并且能夠保證室內溫度在安全約束范圍之內(20-25℃),說明節能控制算法能夠學習到較好的節能控制策略.

圖12 不同模式運行對比圖
把兩種運行模式的數據分開來看,圖13為采用Dueling-DQN算法的節能控制模式,可以看到空調設定溫度動作是在動態變化,算法模型會根據外部數據的變化動態調整空調設定溫度(例如機房室外溫度升高,機房負載功率升高時,設定溫度降低,提供更多的制冷量).而傳統運行模式,如圖14所示,并沒有結合其他傳感器數據的動態調節,空調設定溫度一般是人為設定的一個固定值,并且為了應對可能的高溫天氣和設備負載突然升高,一般會設定到一個較低的值,提供有冗余的制冷量輸出.本實驗驗證作為對比的傳統運行模式的空調設定溫度為20℃,當然也可以把對比的傳統運行模式空調設定溫度調整到21℃或更高,對應的節能百分比也會降低,但風險也會增大,而且這種改變是在我們經過數據分析這個先決條件之后得到的,所以本論文采用空調設定溫度為20℃作為傳統運行模式.

圖13 節能控制模式運行數據圖

圖14 傳統運行模式運行數據圖
本論文提出了基于規則約束的強化學習節能控制算法,設計基于規則約束的強化學習探索和執行方法,保證模型運行過程中輸出動作的安全可靠.結合電信機房應用場景,采用Dueling-DQN算法,提高在機房負荷較低或較高的情況下模型的訓練的速度和表達能力.設計模型自動更新機制,根據新數據持續優化網絡模型,使節能效果越來越好.本論文提出的機房空調控制方法解決了強化學習在實際應用中的問題:學習過程中安全性問題,模型自動更新問題.控制算法具有很好的推廣應用能力,通過對控制參數的簡單修改可以推廣到鐵塔機房,基站機房,大型IDC機房等場景.