湯 燁,陸衛(wèi)忠,陳成,黃宏梅
(1.蘇州科技大學 電子與信息工程學院,江蘇 蘇州 215009;2.江蘇省建筑智慧重點實驗室,江蘇 蘇州 215009;3.蘇州市虛擬現實智能交互及應用技術重點實驗室,江蘇 蘇州 215009)
在常規(guī)的照明計算中,設計人員需根據照明場所的室形指數、有效頂棚反射比、地板反射比和墻面反射比,在燈具生產商提供的利用系數表中查找對應的利用系數和利用系數修正系數,因表中只提供了部分離散的取值,所以計算誤差較大,雖然使用直線內插法可以獲得比較精確的取值,但計算過程復雜[1]。
針對利用系數計算的常規(guī)方法繁瑣的問題,文獻[2,3]提出了用神經網絡擬合計算過程,以降低計算復雜度。在此基礎上,本文考慮影響利用系數的因素,建立了由可變網絡和固定網絡并聯組成的網絡模型,加入Adam優(yōu)化算法,提高了計算精確度和工程實用性。在實際應用中,設計人員只需針對每種燈具,訓練一個固定網絡和每種燈具的可變網絡,將它們組合后得到用于計算燈具利用系數的模型,以代替繁瑣且誤差較大的查表過程,進行照度計算。
BP神經網絡(back propagation neural network)也稱為反向傳播神經網絡,是一種具有2層以上結構的無反饋的、層內無互連的網絡。BP神經神經網絡除輸入層和輸出層外,還包括一個或多個隱含層,各個層神經元之間實現全連接,而同層內各神經元之間無連接[4]。BP神經網絡通過有指導的學習方式進行學習和訓練,能用于擬合非線性映射,并進行預測。
Shanbhag等[2]以室形指數、頂棚反射比和墻面反射比作為輸入,利用系數作為輸出,用神經網絡擬合了利用系數查表過程,降低了照明計算的復雜度,但忽略了地板反射比對利用系數的影響,使得當地板反射比與常規(guī)值偏差較大時,網絡輸出值與實際值相差較大。江莉等[3]使用的神經網絡以室空間高度、工作面積、設計照度、燈具的光通量、效率、維護系數以及頂棚、地板、墻面的反射比為輸入,燈具數量和實際照度為輸出,雖然提高了計算精確度,但網絡輸入參數過多,使得網絡對訓練數據要求較高,且未考慮燈具種類的影響,不同型號的燈具,即使光通量相同,利用系數也會不同,照度計算的結果自然也不同[5]。
圖1 網絡模型圖Fig.1 Network model
考慮到燈具的利用系數表是按地板反射比為0.2編制的,若地板反射比的實際值不為0.2,則應查表獲得適當的修正系數進行修正[5],而不同燈具有不同的利用系數表,但利用系數修正系數表相同,因此我們設計了由可變網絡N1和固定網絡N2并聯組成的單隱層BP神經網絡模型,其模型結構如圖1所示。
可變網絡N1用于計算地板反射比為0.2時的利用系數,對于不同型號的燈具,訓練數據不同,因此要分別訓練,網絡的輸入為室形指數、墻面反射比和頂棚反射比,輸出為地板反射比為0.2時的利用系數。
固定網絡N2用于計算地板反射比不為0.2時的利用系數修正系數,適用于所有燈具,因此不需重復訓練,網絡的輸入參數為室形指數、墻面反射比、頂棚反射比和地板反射比,輸出為利用系數修正系數。
最后將N1和N2的輸出結果相乘,可得利用系數。在實際應用中,針對不同型號的燈具,只需訓練不同的N1網絡,不需要重復訓練N2網絡。訓練完成后,將不同的N1網絡和固定的N2網絡組合,便可以得到可用于計算不同型號燈具的利用系數的網絡模型。
Adam(adaptive moment estimation,自適應矩估計)是一種基于低階自適應矩估計的隨機目標函數一階梯度優(yōu)化算法[6]。與基礎的隨機梯度下降算法相比,Adam不容易陷入局部最優(yōu)點且更新速度快。Adam算法更新參數方法如下:
Whileθtnot converge do
t=t+1
gt=θft(θt-1)
mt=β1mt-1+(1-β1)gt
End while
其中θt-1為待更新參數;α為學習率;gt為隨機目標函數的梯度;mt為偏一階矩估計,m0=0;vt為偏二階矩估計,v0=0;β1和β2為矩估計的指數衰減率;ε為小正數。在機器學習問題中這些參數的默認值為α=0.01,β1=0.9,β2=0.999,ε=10-8[6]。
神經網絡對樣本噪聲“敏感”,若學習樣本本身帶有誤差和干擾,系統(tǒng)輸出會出現較大誤差,在考慮樣本的多樣性與均勻性的同時,應確保樣本的準確性[3]。本實驗將數據集分為訓練集、驗證集和測試集,通過訓練集訓練出來的模型在驗證集上的表現來確定模型參數,并用測試集測試最終模型的效果。
表1所示為YG1-1型熒光燈的利用系數表,用于N1網絡的訓練,它提供了地板反射比ρfc=0.2,頂棚反射比ρcc、墻面反射比ρw、室形指數RCR取一些離散值時TG1-1型熒光燈的利用系數U0,共170組數據,從中隨機選出10組數據作為驗證數據,選出10組作為測試數據,剩余150組數據為訓練數據。
表1 YG1-1型熒光燈的利用系數表Table 1 YG1-1 type fluorescent lamp utilization coefficient
N2網絡的數據集為利用系數修正表,共390組數據,從中隨機選取20組數據作為驗證數據,選取20組數據作為測試數據。利用系數表中的修正系數k的值分布在0.873~1.077之間,變化范圍較小,為了獲得較好的訓練效果,對修正系數按式(1)進行歸一化處理,將其映射到[0,1]的區(qū)間內,在輸出時再按式(2)進行反歸一化處理。歸一化后訓練集中部分數據如表2所示。
表2 N2網絡部分訓練數據Table 2 Part of the network N2 training data
(1)
k=k′×(1.077-0.873)+0.873
(2)
1)目標函數。N1和N2網絡均使用均方誤差mse作為目標函數,同時計算出網絡輸出值與實際值的相對誤差率e,計算公式如下:
(3)
(4)
其中n為樣本個數;yi′為第i個樣本的網絡輸出值;yi為第i個樣本的實際值,在N1、N2網絡中分別為利用系數U和修正系數k。
2)參數初始化。從正態(tài)分布中隨機生成網絡權值和偏置的初始值,使用Adam優(yōu)化算法學習網絡中的權值和偏置,學習率為0.01,迭代次數為15 000 次。每訓練100 次顯示一次當前的均方誤差和誤差率。
3)隱層神經元個數和激活函數。BP神經網絡的隱層神經元個數通常用試湊法確定,可以先設置較少的隱含層節(jié)點來訓練網絡,然后逐漸增加隱含層節(jié)點數,使用同一樣本集進行訓練,最終選取網絡誤差最小時對應的隱含層節(jié)點數[7]。本實驗使用試湊法確定N1和N2網絡的隱層神經元個數和激活函數,以Python語言作為編程語言,在TensorFlow框架下進行神經網絡的搭建、訓練和測試。首先根據文獻[8]經驗公式估算隱層神經元個數的范圍,再對隱層神經元個數和激活函數的每一種組合選擇,訓練20次得到20個網絡權值不同的模型,并計算出這20個模型在驗證數據上相對誤差率的平均值。
表3和表4分別為N1和N2網絡在選擇不同隱層神經元個數和激活函數時在驗證集上的平均誤差率。分別選取平均誤差率最小的2.14%和0.107%時的模型參數作為N1和N2網絡模型的參數,因此最終確定N1網絡的隱層神經元個數為13,N2網絡的隱層神經元個數為14,隱層激活函數均為sigmoid函數。
表3 N1網絡平均相對誤差率Table 3 Average relative error rate of N1 network
表4 N2網絡平均相對誤差率Table 4 Average relative error rate of N2 network
圖2所示為選擇Adam算法和隨機梯度下降算法訓練網絡參數時,網絡模型在訓練集上的相對誤差率的變化曲線。從圖2中可以看出,與隨機梯度下降算法相比,Adam算法更新速度更快,且收斂結果更好,訓練過程耗時7.33 s。
圖2 更新過程Fig.2 Iteration process
將測試數據輸入訓練好的N1和N2網絡,N1網絡輸出結果如表5所示,地板反射比為0.2時利用系數的最大相對誤差率為2.06%,N2網絡輸出的修正系數最大相對誤差率為1.15%,最終利用系數的最大相對誤差率為2.06%×(1+1.15%)=2.084%,遠小于照明設計標準的要求。
表5 測試結果Table 5 Test result
我們使用基于Adam算法的神經網絡擬合了照度計算中的利用系數查表過程,網絡由可變網絡N1和固定網絡N2并聯組成,分別用于計算地板反射比為0.2時利用系數和利用系數修正系數。與常規(guī)的查表照度計算方法相比,使用神經網絡擬合計算能大幅縮短計算時間,降低計算復雜度,本文設計的由固定網絡和可變網絡并聯組成的神經網絡,可根據燈具種類型號的不同,靈活地更換可變網絡N1,降低了由地板反射比和燈具種類型號帶來的計算誤差,提高了工程實用性?;贏dam算法優(yōu)化的神經網絡不僅加快了網絡訓練速度,還不容易陷入局部最小值,提高了網絡輸出的精確度。測試結果表明,網絡的最大相對誤差率為2.084%,滿足照明設計標準的要求。