鄧 心,那 俊,張瀚鐸,王昱林,張 斌
1.東北大學 計算機科學與工程學院,沈陽 110819
2.東北大學 軟件學院,沈陽 110819
隨著萬物互聯和智能計算的趨勢不斷加深,各類智能信息物理系統(cyber-physical systems,CPS)和物聯網(Internet of things,IoT)[1]應用不僅已經實現了物理世界和信息世界的無縫連接,更讓物理設備具有了計算、通信、精確控制等能力,催生了機器人、無人機和自動駕駛汽車等自主設備。通過無處不在的環境感知、設備本身的計算能力以及網絡通信和遠程控制,這些自主設備將實現與周圍環境和人類更自然地交互,被Gartner列為2019年十大戰略技術趨勢之一,已經成為研究界和產業界普遍關注的焦點。
智能家居是家庭信息化的一種重要實現方式。隨著物聯網技術的發展和成熟,智能家居已經成為了社會信息化發展的重要組成部分。智能照明是智能家居的重要組成部分,良好的室內光照可以提高人的視覺舒適程度和健康狀況[2]。隨著物聯網的蓬勃發展,新一代的LED照明系統應運而生,即基于LED的智能照明系統。通過集成傳感器和執行器,各類LED智能燈能夠與其他智能設備一起使用,以改善人們的生活方式,提高便利性和可定制性,同時達到節能的目的[3]。例如,Philips Hue是一種無線照明產品,可以與一系列智能設備(例如Amazon Echo,Apple HomeKit,Google Home等)配合使用,以為居住者提供方便舒適的方式來控制和體驗照明。
照明控制策略是智能照明系統的核心,它描述了如何在給定目標下修改照明。例如,開關、調光器和場景設置器是通過手動控制滿足個人偏好并實現節省能源的基本策略[4]。為了提高用戶體驗的質量,燈光控制策略需要更加靈活,以便能夠調節燈光以自動提供舒適的照明,同時自動將能源成本降至最低。特別是考慮到日光的自然變化和用戶需求的多樣性,自主學習用戶偏好并適應環境亮度變化已經成為了智能照明系統的關鍵功能[5-6]。通過提供接近個人各自偏好的亮度在情緒、亮度滿意度和環境滿意度上具有重要提升作用。如果可以最大限度地利用自然光,智能地調節每個人所在位置的光照設備,讓綜合光照強度一直保持在一個讓人舒適的范圍內,可以節約能源、降低光污染、增加辦公效率等[6]。
考慮到每個人對光照的舒適程度和自身習慣不同,要在滿足舒適度的同時,還要精確地控制光照設備,很難使用一個確定的策略來滿足所有人需求。文獻[5]提出一個基于ANN的方法滿足每個辦公室人員桌子上的亮度偏好,通過最小化具有分布式照明的照明系統總體能量消耗,構建表示每個桌子上的照明強度和實際亮度之間相互影響的模型。然而,作者并沒有考慮自然光的影響,且假設所有桌子期望亮度相同,并未考慮用戶的個性化亮度偏好。文獻[7-8]以使用者為中心,強調自適應亮度控制模型的重要性,主要關注開/關操作,而不是亮度調節。文獻[9]提出了辦公區域內的個性化照明,提出了優化照明的控制算法,并使用具有生成調光信號的亮度生成器模型。文獻[10]引入了一種改進的強化學習控制器,可獲得最佳的百葉窗和燈光控制策略來提供燈光控制的個性化服務。文獻[11]基于居民的行為模式采用人工神經網絡進行在線學習和自適應,使用基于相似度閾值的數據替換算法對歷史數據進行替換,取得了很好的效果,但自然光的影響并沒有考慮。
針對現有方法存在的上述問題,本文提出一種基于深度強化學習的智能燈亮度個性化調節方法。一方面,通過考慮自然光強和用戶位置動態調整燈光亮度起到節能的作用,另一方面則通過采集用戶對燈光亮度的手動調節情況形成強化學習的正負反饋,逐漸學習并擬合用戶的使用偏好。由于強化學習是一種典型的在線學習算法,相較于傳統用戶行為模式挖掘、人工神經網絡等方法具有更好的動態適應能力。
強化學習是機器學習的一個重要分支,它避免了對復雜的環境和用戶行為進行建模,在很多需要實現個性化的問題中發揮了積極作用[11]。強化學習的本質是通過學習模型與環境不斷地進行交互,通過獲取的反饋信息優化其自身的決策行為,不斷地進行學習和決策,最終獲得最優的決策方案。
強化學習可以使用馬爾可夫決策過程(Markov decision process,MDP)進行建模。馬爾科夫決策過程被定義為一個五元組S,A,P,R,γ,其中,S為狀態集,A為動作集,P為轉移的概率,R為回報函數,γ為折扣因子。
強化學習的目標是給定一個馬爾科夫決策過程,尋找最優策略[12]。其中,策略是指狀態到動作的映射,如式(1)所示:

其中,π為策略,代表給定一個狀態s,在動作集上的一個分布。式(1)表示策略π在狀態s給出一個動作概率,如果給出的策略是確定的,那么策略π就會在狀態s上指定一個確定的動作。當策略π確定后,就可以計算累計回報,如式(2)所示:

Q-learning[13]是強化學習的基礎算法,屬于強化學習算法中基于價值(value-based)的算法。狀態-行為值函數Q(s,a)就是在某一時刻的狀態s(s∈S)下,采取動作a(a∈A)能夠獲得收益的期望。環境會根據算法的動作反饋相應的回報R。通過回報R可求得狀態行為值函數Q(s,a)的值,如式(3)所示:

其中,k為迭代步數s0為當前狀態,a0為在s0狀態下執行的動作,π未執行策略,Eπ(·)為求策略π的期望。
通過Q(s,a)可以看出,每個狀態的選擇策略都與它下一步獲取的回報有關,即隨著迭代次數的增加算法會在每一個狀態選擇能獲取到最大回報的策略,最終得到最優方案。根據所獲得的狀態-行為值函數Q(s,a),采用貪婪策略π*進行選擇每一步的動作,如式(4)所示:

其中,π*為策略,s為當前狀態a為要執行的動作。在訓練過程前期,通常在策略π上增加一定的隨機策略來對狀態進行探索,常見的使用策略為ε-greedy。
通過貪婪策略π進行狀態轉移后得到獎勵r和新的狀態s′,可以采用時間差分法的方法對Q-learning進行更新,如式(5)所示:

其中,α為學習率,s′為下一個狀態,a′為下一個狀態要選擇的動作,r為Q(s,a)轉義過程中的獎勵值,γ為獎勵折扣率。
使用強化學習算法只需根據每次與環境交互而獲得的s,a,r,s′進行訓練,讓算法在每個初始狀態s0下能夠在短時間內獲取最高的獎勵值,無需對復雜的場景進行建模,因此在解決智能燈的個性化適應問題上,能夠有很好的表現。
Q-learning所解決的問題的狀態空間和動作空間必須是離散的,并且問題的狀態空間和動作空間不能太大。當面對高維度的狀態空間、行為空間,以及連續的行為空間時,Q-learning的狀態-行為值函數往往無法進行表示。
谷歌DeepMind提出了將深度神經網絡和Q-learning相結合,即deepQ-learning(DQN),來處理高維度狀態空間和行為空間的問題[14]。與Q-learning相比,DQN[15]使用了卷積神經網絡來逼近狀態-行為值函數,允許更高維度、更多數量的狀態作為強化學習算法的輸入;DQN還提供一個經驗回放(experience replay)[16]功能用來彌補訓練時數據不足的問題。
Double DQN(DDQN)[17]和DQN的不同之處在于策略選擇,使用貪婪策略雖然可以讓Q(s,a)值快速地向可能優化的目標靠攏,但很容易出現過估計(over estimation)現象,最終得到的算法模型會有很大偏差。DDQN使用兩個神經網絡,通過對目標Q(s,a)值動作的選擇和目標Q(s,a)值的計算來消除DQN的過估計問題。在一個網絡中選擇出最大Q(s,a)值的對應動作,如式(6)所示:

其中w為網絡參數。
在另一個網絡中利用選擇出的動作來計算目標Q(s,a)值,如式(7)所示:

其中w′為網絡參數。
Actor-Critic算法是策略(policy based)和價值(value based)相結合的方法,算法使用Actor網絡負責生成動作策略π與環境進行交互;使用Critic神經網絡負責對Actor的表現進行評估并指導下一步Actor的動作,相當于Q-learning中的狀態-行為值函數,Actor和Critic網絡都有相同結構的目標網絡負責使兩個神經網絡收斂。由于Actor-Critic算法缺少經驗回放部分,這會在訓練的過程中消耗更多時間。asynchronous advantage actor-Critic(A3C)[18]算法采用異步訓練框架,利用多個線程和環境進行交互,避免了對經驗庫的過度依賴的同時,還做到了異步并發學習能夠幫助模型更好更快的收斂。
論文提出的基于深度強化學習的智能燈亮度個性化調節方法主要由三部分構成,即(1)數據采集;(2)數據存儲和強化學習算法的決策推理;(3)智能燈的控制。方法流程如圖1所示。

圖1 方法流程Fig.1 Process design
系統開啟后將實時采集環境信息,本文使用用戶位置、自然光強、照明光強和用戶位置處的實際光強。將采集到的上述環境信息作為環境狀態輸入深度強化學習模型,形成對智能燈亮度的調節動作,并基于智能燈接口對其實施亮度調節。
使用算法動態調節亮度后,系統將重新獲得當前的環境狀態,并采集是否發生用戶手動調節。如果在給定時間閾值范圍內,發生人工手動調節,則視為算法輸出未滿足用戶偏好,形成負反饋;否則,則認為算法輸出滿足用戶偏好,形成正反饋。在每次收到反饋后,通過不斷更新模型逐步擬合在各種環境狀態下的用戶偏好亮度,提升智能燈亮度控制的精準度。
使用強化學習解決問題首先要按照馬爾可夫決策過程建立強化學習模型[19]。將基于深度強化學習的智能燈個性化調節模型定義為一個五元組,M=S,A,P,R,γ,其中,S代表環境狀態空間,A代表動作空間,P代表狀態轉移概率,R代表獎勵值,γ代表獎勵折扣。構建基于深度強化學習的智能燈個性化調節模型,則需要按照上述定義對系統進行抽象建模。
(1)環境狀態S的選擇
對于環境狀態的選擇,需要選取能夠對決策起決定性作用的因素,本文中的環境狀態來自于照明系統周圍的信息,包括智能燈與采集點的距離distance、采集點的自然光強sunbright、系統光強lightbright和綜合光強combright,所構建的狀態如式(8)所示:

(2)動作空間A的選擇及轉移概率P
動作空間定義為對智能燈的調節動作。對智能燈進行調整主要分為兩種方法,第一種模型的輸出為連續動作,即模型直接輸出智能燈的光強,智能燈根據模型的輸出進行直接調整亮度;第二種模型的輸出為離散動作,即模型的輸出是基于當前的設備光強,對當前光強進行調高、調低或者不變。考慮到實驗數據的離散性特征和強化學習算法本身的缺陷,本文采用第二種調整方法。動作空間A分為up,hold,down即up、hold、down代表對當前光強進行調高、不變或調低。
(3)環境反饋獎勵R及獎勵折扣γ
強化學習需要構造相應的獎勵函數來進行模型訓練。智能燈的優化目標是讓當前用戶不再對其進行調整。設置的獎勵值如下,如果用戶在給定時間范圍內未對智能燈進行調整,則可以認為用戶所在位置的綜合光強符合用戶偏好,環境應該返回一個正反饋1,同時若用戶一直都沒有對智能燈進行調整,則環境每次都要在當前的獎勵值上乘以一個衰減率γ來獲取新的獎勵值,直到用戶對智能燈進行調節才將獎勵值重新設為1。如果用戶調節系統,則可以認為用戶所在位置的綜合光強和用戶偏好不符,則返回一個負反饋-1。達到算法和環境進行交互的效果,進而對模型進行訓練。

其中,Icontrol為用戶調整智能燈的次數,α為每次迭代中人未調整智能燈的單次交互次數,γ為獎勵衰減率,i為每次迭代中人未調整智能燈的連續次數(γ=0.9,Rpositive=1,Rnegative=-1)。
本文采用DIALux軟件模擬照明環境。DIALux是一個燈光照明設計軟件,可根據實際需要向場景內部添加日光,能滿足目前所有照明設計及計算要求。
考慮到不同照明環境或復雜的光源映射到算法中均為環境光強,本文使用亮度傳感器對環境光進行采集則不需要考慮照明環境的光照復雜程度。
如圖2所示,將模擬環境設置為一個5.4 m×3.6 m的房間,房間內設置一個窗戶。在房間中央的桌子上放置一個功率可變的智能燈設備。通過調整智能燈的功率,可控制智能燈的光照強度。智能燈距窗1.8 m,距地面0.85 m,取距離地面0.85 m高為人們日常工作平面,可獲取不同功率下工作平面上每個點在當前環境光影響下的光照強度。收集該房間內的光強數據縮略圖如圖3所示,圖中紅點為智能燈的位置,光強單位lx。

圖2 環境場景布置Fig.2 Environment scene design
從圖3可以看出智能燈附近的光照強度為300 lx左右,此刻窗邊的光照強度為1 367 lx左右,通過調節智能燈的功率和環境光可以獲得不同情況下房間內的光照強度。本文取智能燈和窗戶之間的數據作為實驗數據,分別在具有環境光和沒有環境光兩種情況下,調整智能燈功率取這段距離內的所有光照強度數據和此刻的日光數據。部分數據如表1所示。

圖3 房間內光強信息Fig.3 Illumination information in room

表1 模擬環境光強數據Table 1 Simulation illumination data
智能燈功率設置范圍為250 W到450 W,步長為10 W,分析不同功率下獲得的光照數據與距離的關系可得不同功率下光強與距離的關系呈同分布且距離智能燈越遠,設備光強越弱,綜合光強也越來越弱,但與智能燈距離超過0.42 m后由于自然光逐漸變強,綜合光強也隨之變強,考慮設備光強和自然光強的平衡性,實驗取(0,0.42)m內的數據作為實驗數據集。其中智能燈功率設置為250 W時,光強與距離的關系如圖4所示。圖4中,藍色數據代表有環境光影響下的綜合光照強度;紅色數據為去除環境光時,設備光照強度。

圖4 光照強度與距離的關系圖Fig.4 Relationship between illumination and distance
使用上述所設置的智能燈功率和步長,以智能燈為原點對每個功率每隔0.056 m取一組綜合光強、智能燈光強和環境光強數據,每個功率下共取7組。使用所采集數據根據2.2節規定的環境狀態S對算法的輸入序列進行構建。
根據《建筑照明設計標準》規定,學習時光照強度標準值為300 lx,考慮智能燈的使用場景,模型需要調整智能燈功率將當前距離下的綜合光照強度保持在300 lx到320 lx之間,根據2.2節構建算法反饋獎勵。在不同距離下對模型進行訓練,實現用戶無論與智能燈距離多遠都能讓光照強度保持在舒適范圍內。
實驗中涉及到的三種算法輸入狀態、動作空間都相同,算法參數設置如表2所示。

表2 算法參數設置Table 2 Algorithm parameter setting
本文使用表2中的參數采用Python語言中的Tensor-Flow框架進行實現,計算機硬件參數為Corei7-7700HQ,2.80 GHz。
在模型訓練過程中因為每次迭代與環境交互600次,所以每次迭代獲得的獎勵值最多不超過600。在模型訓練過程中,每經過3個訓練周期進行統計所獲獎勵的平均值,得出算法的獎勵曲線,如圖5~7所示。
從算法獎勵曲線可以看出,DDQN算法(圖6)在本實驗中訓練速度最快,同時泛化能力也很強,能夠在很短的迭代次數內對沒有遇到過的環境狀態做出正確的決策,進而獲得很高的獎勵值。相比之下DQN算法(圖5)泛化能力較弱,在沒有遇到的環境狀態下需要做出一定次數的學習才能很好地適應當前狀態,但隨著迭代次數的增加模型的泛化能力逐漸增強,獎勵的總趨勢也逐漸上升。

圖5 DQN算法獎勵曲線Fig.5 DQN algorithm reward

圖6 DDQN算法獎勵曲線Fig.6 DDQN algorithm reward
A3C(圖7)模型訓練速度相對DQN和DDQN更慢,因為A3C需要訓練Actor網絡和Critic網絡,兩個網絡都收斂后才能獲得穩定的模型決策,從A3C的獎勵曲線可以看出該算法泛化能力很強,能夠很快適應陌生的環境狀態,決策準確率要高于DQN和DDQN,而且獎勵曲線還在穩步上升。從模擬實驗結果圖中也可以看出DQN和DDQN在未經過預訓練的情況下能夠在很短的迭代周期內獲取較高的獎勵值,能夠滿足用戶需求,而A3C算法則需要進行多次交互才能適應用戶習慣,根據實際場景的應用情況,可以在應用前先對模型進行預訓練,讓模型達到一個普適的范圍,然后在實際場景中對模型進行反饋調整,能夠在應用中獲取更好的用戶體驗。

圖7 A3C算法獎勵曲線Fig.7 A3C algorithm reward
由于強化學習算法自身的性質,所有強化學習算法在與環境交互的過程中需要在執行的動作中加入噪聲進行隨機探索,因此獎勵曲線存在一定的震蕩現象是合理的。基于以上分析,DDQN模型和A3C模型隨著迭代次數的增加平均獎勵波動越來越小,從泛化能力上來看這兩種算法都很適合應用在智能燈個性化亮度調節上。考慮到智能燈不是專用的計算設備,還需要從內存占用、訓練時間等方面對算法進行對比分析,找出合適搭載到智能燈設備上的算法。表3統計了三種算法訓練所需資源。

表3 算法訓練過程中所需資源Table 3 Resources required in algorithm training
從訓練時占用內存來看,三種算法訓練所需內存差距不大,但從迭代次數和訓練時間上來看DQN算法達到收斂所需的平均迭代次數和訓練時間都很高,A3C算法需要的迭代次數較多是因為多個線程同時與環境進行交互,本實驗設置4個Critic網絡進行探索環境,每個線程在訓練時間內與環境交互約30次,無論是訓練時間還是收斂時所需迭代次數A3C算法和DDQN算法相差不大,但A3C算法需要使用多個線程與環境進行交互,當線程增多時訓練時占用內存會高于DDQN算法。
綜合以上分析,本文所提出的基于深度強化學習的智能燈亮度個性化調節方法完成了以下目標。
(1)在面對環境因素復雜的辦公場所,不必對其進行建模,用戶只需與智能燈進行交互便能讓系統適應用戶偏好。
(2)使用三種強化學習算法進行了模擬實驗,對實驗結果進行分析,對比算法間的差異,選出適用于智能燈設備的算法。
為驗證方案有效性,本文在實際環境中使用亮度傳感器、距離傳感器、nodemcu芯片、樹莓派和小米Yeelight對本實驗方案進行了驗證。
本文將亮度傳感器和距離傳感器通過GPIO引腳搭載到nodemcu芯片上,如圖8、圖9所示。

圖8 亮度傳感器連接nodemcuFig.8 Brightness sensor connect nodemcu

圖9 距離傳感器連接nodemcuFig.9 Distance sensor connect nodemcu
將芯片部署到智能燈周圍。芯片啟動后會和決策推理模塊所在的樹莓派建立socket連接,通過socket連接與樹莓派進行通信,同時芯片向傳感器所在的引腳發送信號,每隔一定的時間從傳感器讀取數據,將數據發送給樹莓派。智能燈也通過Wifi模塊與樹莓派相連,將用戶對智能燈的調節信息實時傳輸給樹莓派,作為智能燈實現個性化的依據。
樹莓派啟動后會對算法模型進行初始化,初始化方法與模擬實驗中的方法相同,初始化完成后利用數據庫中來自數據采集模塊所收集到綜合光強、環境光強、智能燈光強和用戶控制信息對所部署模型進行個性化訓練。
樹莓派根據算法模型推理結果,通過Wifi和智能燈建立socket通信,對智能燈進行亮度調節。再根據調節的結果獲取用戶反饋,對算法不斷修正,直到當前模型符合用戶偏好。實驗結果與模擬實驗大致相同,驗證了本文提出方法的有效性。
論文針對智能燈亮度個性化調節問題所面臨的挑戰,提出基于強化學習的智能燈亮度個性化調節方法。通過使用傳感器采集智能燈周圍自然光強、綜合光強等信息對當前環境和用戶行為使用數據進行描述,利用強化學習算法的特性,無需對復雜的環境進行建模,就能對用戶所在環境和用戶偏好進行自適應,讓用戶無論在什么時間,距離智能燈多遠的情況下都能獲得最舒適的光強,并有效減少不必要的照明消耗。下一步將引入對多用戶環境中不同用戶亮度偏好沖突的解決策略,并考慮多個可變光源共同存在的復雜場景,以便更好地應用到實際工作生活中。