雷 劍
(南華大學 電氣工程學院,湖南 衡陽 421000)
電梯群控系統(tǒng),通常是指在高層建筑內(nèi)集中收集呼梯信號并管理調(diào)度3 臺以上電梯的運行控制系統(tǒng)。目前電梯群控系統(tǒng)中,大多采用并聯(lián)或者全集選的調(diào)度方法。這些方法依托于候梯時間等單目標優(yōu)化方法,不能很好的同時解決候梯時間和運行效率的問題。20 世紀90 年代,基于BP 神經(jīng)網(wǎng)絡(luò)的電梯群控技術(shù)已經(jīng)成熟運用到實際應用中,取得了很好的成績[1]。但傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)還存在一些缺陷,如收斂速度不理想[2],難以脫離局部極值。由于BP 神經(jīng)網(wǎng)絡(luò)本身的結(jié)構(gòu)和特性,網(wǎng)絡(luò)模型效果最優(yōu)的隱含層神經(jīng)元個數(shù)無法確定[3],學習率以及激活函數(shù)的選擇都會對神經(jīng)網(wǎng)絡(luò)的學習精度產(chǎn)生較大的影響。
電梯群控系統(tǒng)是一個存在多目的性、不確定性、非線性以及擾動性的復雜系統(tǒng),同時包含著若干部電梯以及不同樓層之間的呼梯信號的龐大數(shù)據(jù),這些都是傳統(tǒng)電梯群控算法難以高效率、低能耗解決的問題。Adam(adaptive moment estimation,自適應矩估計)算法不僅適合解決含大規(guī)模數(shù)據(jù)和參數(shù)的優(yōu)化問題,而且收斂速度更快、效果更好,能夠更好的實現(xiàn)電梯調(diào)度分配,提高系統(tǒng)的整體性能。
函數(shù)表達式選用了一種綜合評價函數(shù),作為某一樓層對某一臺電梯呼梯的依據(jù)。通過滿意度評價函數(shù)來彌補原本單目標優(yōu)化電梯群控的不足。評價函數(shù)滿意度的大小表示了電梯的呼梯次序。詳細計算方法參看文獻[4]。
公式(1)為第i部電梯與第j層呼梯信號之間的滿意度評價函數(shù)[5]。
式中,ω1、ω2、ω3為評價函數(shù)中不同交通模式下的權(quán)重,權(quán)重之和為1。評價函數(shù)fw(i,j)為乘客平均候梯時間表達式;fr(i,j)為長時間候梯率表達式;fe(i,j)為能源消耗表達式。
1.2.1 BP 神經(jīng)網(wǎng)絡(luò)的模型搭建
模型中神經(jīng)網(wǎng)絡(luò)分為3 層結(jié)構(gòu),其中當前電梯內(nèi)乘客數(shù)量、電梯到呼梯樓層的相對距離和電梯響應呼梯信號前需要??康臉菍訑?shù),作為輸入層的3個輸入;隱含層是網(wǎng)絡(luò)連接的核心,應根據(jù)具體情況建立相應模型;輸出層只有一個神經(jīng)元,作為某臺電梯對當前呼梯信號滿意度的輸出。
網(wǎng)絡(luò)訓練中權(quán)值和閾值的修正過程如下:
(1)初始化網(wǎng)絡(luò)的權(quán)值和閾值。
(2)向網(wǎng)絡(luò)提供可學習的樣本數(shù)據(jù)。
公式(2)表示,對于神經(jīng)網(wǎng)絡(luò)中第k 層的第i 個神經(jīng)元的輸出。S為真實數(shù)據(jù),f(x)、g(x)分別為各個神經(jīng)元以及輸出層的激活函數(shù)。
(3)計算上一層神經(jīng)元的輸出,作為下一層的輸入:(4)計算各層的學習誤差,對于輸出層有k=m:
得到誤差后,在網(wǎng)絡(luò)中進行反向傳播。根據(jù)目標函數(shù)值的大小,以此對BP 網(wǎng)絡(luò)進行訓練。
(5)修正權(quán)值和閾值:
為了使模型盡可能得到好的收斂效果,在網(wǎng)絡(luò)訓練修正參數(shù)的過程中,增加學習率η,從而調(diào)節(jié)網(wǎng)絡(luò)模型訓練速率:
每組樣本數(shù)據(jù)的學習得到最新修正的權(quán)系數(shù)后,判斷預測值與實際值之間的相對誤差是否滿足預設(shè)目標。如滿足則訓練結(jié)束,否則返回步驟(3)。
1.2.2 Dropout
訓練學習中,如果參數(shù)多,而訓練樣本少時,模型很容易發(fā)生過擬合的現(xiàn)象。Dropout[6]可有效緩解過擬合的發(fā)生,在一定程度上達到正則化的效果。
Dropout 是指在前向傳播過程中,為了增強模型的泛化性,讓某個神經(jīng)元以特定的概率停止工作,進而緩解過擬合的發(fā)生。工作流程如圖1 所示。
圖1 引入Dropout 的神經(jīng)網(wǎng)絡(luò)模型Fig.1 Introducing the neural network model of Dropout
具體學習過程如下:
(1)訓練前隱含層的所有神經(jīng)元,以一定概率停止工作(暫時),不參與前向傳播。輸入輸出神經(jīng)元保持不變。
(2)樣本數(shù)據(jù)在改變后的網(wǎng)絡(luò)中前向傳播,得到的誤差再通過修改的網(wǎng)絡(luò)進行反向傳播。每次迭代后,在原來的神經(jīng)網(wǎng)絡(luò)上按Adam 算法更新權(quán)值和閾值。
(3)重復執(zhí)行以上兩個步驟,直至完成迭代訓練。
Dropout 在隨機選擇神經(jīng)元停止工作時,網(wǎng)絡(luò)結(jié)構(gòu)也會發(fā)生變化,而不同的神經(jīng)網(wǎng)絡(luò)模型也會產(chǎn)生不同的過擬合。其中互為“反向”擬合相互抵消,從而在整體上減少過擬合的現(xiàn)象,以此提升預測準確性。對三層BP 神經(jīng)網(wǎng)絡(luò)模型來說,Dropout 的超參數(shù)概率p設(shè)為0.2-0.4 比較合適,不會因此讓損失函數(shù)的值過大,可有效減少測試集的誤差。
1.2.3 電梯群控算法
Adam 算法是一種基于低階自適應的隨機目標函數(shù)一階梯度優(yōu)化算法[7]。由于該算法中包含了AdaGrad 算法和動量法的優(yōu)點,以此訓練得到模型的實際應用效果,在大多數(shù)場景下都要更優(yōu)。其迭代過程如下:
上述推導公式中,t為迭代數(shù);α為學習率;默認設(shè)定為0.001;gt為計算梯度;公式(11)、(12)中,mt、vt分別為偏一階矩向量和二階矩向量。參數(shù)向量初始化:m0=0、v0=0;β1、β2分別為對應矩估計的指數(shù)衰減率,通常β1=0.9、β2=0.999;ε為一個非常小的正數(shù),通常取ε=10-8,防止運算過程中出現(xiàn)分母為0 的現(xiàn)象。公式(14)中,θ即為待求的網(wǎng)絡(luò)參數(shù)。
在確定了參數(shù)和目標函數(shù)之后,網(wǎng)絡(luò)訓練中循環(huán)迭代地更新各個參數(shù),直到目標函數(shù)滿足設(shè)定精度或達到預先設(shè)定次數(shù)為止。Adam 算法不僅易實現(xiàn),并具有很高的計算效率,適合解決帶有大規(guī)模數(shù)據(jù)和多個目標優(yōu)化的問題。因此,本文選用Adam算法,作為基于神經(jīng)網(wǎng)絡(luò)的電梯群控系統(tǒng)的優(yōu)化算法。
BP 神經(jīng)網(wǎng)絡(luò)容易過早陷入局部極值且收斂速度較慢。因此本課題采用Adam 替代傳統(tǒng)優(yōu)化算法,并在網(wǎng)絡(luò)的前向傳播過程中加入Dropout,緩解過擬合的發(fā)生,有效增強了神經(jīng)網(wǎng)絡(luò)的泛化能力和收斂性。訓練流程如圖2 所示。流程步驟如下:
圖2 基于Adam 算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)訓練流程Fig.2 Optimization of BP neural network training process based on Adam algorithm
(1)根據(jù)樣本數(shù)據(jù)計算多目標評價函數(shù)表達式,得到滿意度函數(shù)值,再按照電梯群控系統(tǒng)要求建立神經(jīng)網(wǎng)絡(luò)模型。
(2)對網(wǎng)絡(luò)的權(quán)值和閾值進行均勻分布初始化。
(3)在數(shù)據(jù)開始訓練前,Dropout 以概率p隨機停止網(wǎng)絡(luò)模型中神經(jīng)元的工作。
(4)以樣本數(shù)據(jù)訓練網(wǎng)絡(luò),求解網(wǎng)絡(luò)預測值和實際值的誤差E,將誤差在網(wǎng)絡(luò)中反向傳播。
(5)根據(jù)誤差求出目標函數(shù)的梯度,用Adam 算法修正網(wǎng)絡(luò)的權(quán)值和閾值,直到目標函數(shù)小于期望值或者達到設(shè)定迭代次數(shù),則退出訓練;否則返回步驟(3)繼續(xù)執(zhí)行。
模型中,需對以下4 個參數(shù)進行調(diào)優(yōu)。其主要目的是讓目標函數(shù)在滿足設(shè)定精度的基礎(chǔ)上,不斷提高預測準確率。
(1)目標函數(shù)。目標函數(shù)是網(wǎng)絡(luò)預測值與實際值的平均相對誤差率,設(shè)定精度e <5%。
(2)學習率。網(wǎng)絡(luò)中用SGD 以及Adam 兩種算法進行比較。SGD 算法學習率設(shè)為0.01,Adam 算法學習率設(shè)為0.001。
(3)神經(jīng)元個數(shù)與激活函數(shù)的選擇。隱含層神經(jīng)元個數(shù)一般采用實驗法確定,為了神經(jīng)網(wǎng)絡(luò)能夠得到最好的輸入輸出的映射關(guān)系,同時損失函數(shù)和輸出誤差滿足期望要求,需要通過實驗測定一個最佳的隱含層節(jié)點數(shù)。依據(jù)文獻[8]的經(jīng)驗公式,可估算神經(jīng)元個數(shù)的范圍在3-12 之間。先設(shè)置數(shù)量較少的神經(jīng)元個數(shù)進行訓練,然后逐漸增加,使用同一樣本集訓練,最終選取網(wǎng)絡(luò)誤差最小時對應的隱含層節(jié)點數(shù)[9],見表1。
表1 神經(jīng)元個數(shù)與激活函數(shù)的選擇對誤差的影響Tab.1 The Influence of the Number of Neurons and the Selection %
從表1 中可以看出,當隱含層神經(jīng)元個數(shù)為8、激活函數(shù)為Sigmoid 時,平均相對誤差最小。
(4)網(wǎng)絡(luò)初始化。網(wǎng)絡(luò)中的參數(shù)初值采用均勻分布初始化的方法。使用TensorFlow 提供的tf.random_uniform 函數(shù),默認取值范圍為[0,1],可以有效的減少梯度彌散問題,使得輸入信號在網(wǎng)絡(luò)中傳遞的更深。
在TensorFlow 框架中用Spyder 對神經(jīng)網(wǎng)絡(luò)進行搭建、訓練與仿真。網(wǎng)絡(luò)模型結(jié)構(gòu)為三輸入一個輸出,隱含層層數(shù)為1,神經(jīng)元個數(shù)為8。把經(jīng)過統(tǒng)計的300 組電梯樣本數(shù)據(jù)和對應的滿意度評價值隨機分成訓練集和測試集并進行歸一化處理,訓練集包括290 組樣本數(shù)據(jù),其余10 組作為網(wǎng)絡(luò)模型的驗證的測試集。
圖3 為基于BP 神經(jīng)網(wǎng)絡(luò)評價函數(shù)測試集平均相對誤差結(jié)果對比。在條件相同的情況下訓練1 000 次,每25 次取一次結(jié)果。結(jié)果表明,基于Adam 算法優(yōu)化的網(wǎng)絡(luò)平均相對誤差e <2%,傳統(tǒng)SGD 方法訓練耗時10.716 S,而Adam 算法僅耗時8.634 S,收斂更加迅速。誤差結(jié)果:隨機梯度下降法平均相對誤差為11.96%;Adam 算法平均相對誤差為1.60%。
圖3 神經(jīng)網(wǎng)絡(luò)擬合評價函數(shù)對比兩種算法平均相對誤差示意圖Fig.3 Schematic diagram of comparing the average relative error of the two algorithms on the neural network fitting evaluation function
由圖4、圖5 可見,在測試集上預測結(jié)果表明:基于Adam 優(yōu)化神經(jīng)網(wǎng)絡(luò)的算法誤差更小,相比較傳統(tǒng) BP 傳統(tǒng)神經(jīng)網(wǎng)絡(luò),真實值和預測值的相對誤差減小一個數(shù)量級,網(wǎng)絡(luò)預測精度有明顯的提高。
圖4 基于傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)測試集滿意度評價函數(shù)結(jié)果Fig.4 The result of satisfaction evaluation function based on traditional BP neural network test set
圖5 基于Adam 優(yōu)化神經(jīng)網(wǎng)絡(luò)測試集滿意度評價函數(shù)結(jié)果Fig.5 The result of satisfaction evaluation function based on Adam optimized neural network test set
表2 中數(shù)據(jù)為基于Adam 優(yōu)化神經(jīng)網(wǎng)絡(luò)測試集樣本真實值和預測值的詳細結(jié)果。從表中可見,最大相對誤差為2.50%,最小相對誤差為0.08%。整體測試集平均相對誤差為1.26%,遠小于傳統(tǒng)SGD算法訓練后的誤差結(jié)果。
表2 測試集在Adam 優(yōu)化神經(jīng)網(wǎng)絡(luò)模型的測試結(jié)果Tab.2 Test set results based on Adam optimized neural network model %
針對BP 神經(jīng)網(wǎng)絡(luò)的電梯群控傳統(tǒng)算法的收斂速度慢,且易于陷入局部最小值,導致出現(xiàn)聚集效應、群控系統(tǒng)效率不高等問題的課題研究。首先在前人的基礎(chǔ)上介紹了一種基于神經(jīng)網(wǎng)絡(luò)的多目標優(yōu)化模型,在網(wǎng)絡(luò)模型中將樣本數(shù)據(jù)分別在基于傳統(tǒng)隨機梯度下降法的BP 神經(jīng)網(wǎng)絡(luò)與基于Adam 算法的BP 神經(jīng)網(wǎng)絡(luò)下各自學習,通過仿真測試驗證效果。從表1 中的神經(jīng)元和激活函數(shù)的組合搭配中可以看出,神經(jīng)元個數(shù)和激活函數(shù)的選擇會對網(wǎng)絡(luò)的預測結(jié)果造成一定的影響,根據(jù)誤差最小值選擇為神經(jīng)元個數(shù)為8,激活函數(shù)為Sigmoid,以此進行網(wǎng)絡(luò)的學習訓練和預測。但訓練過程中出現(xiàn)了訓練集效果很好,而測試集誤差偏大的現(xiàn)象,因此在網(wǎng)絡(luò)前向傳播過程中加入了Dropout,一定程度上緩解了過擬合現(xiàn)象的發(fā)生,提高了預測的準確率?;诒? 的測試結(jié)果可以得出,Adam 算法優(yōu)化后神經(jīng)網(wǎng)絡(luò)模型不僅收斂性更強,訓練速度更快,同時更易于掙脫局部極值的束縛,提高了網(wǎng)絡(luò)輸出的準確率。在以多目標優(yōu)化的基于神經(jīng)網(wǎng)絡(luò)的電梯群控系統(tǒng)的基礎(chǔ)上改善了電梯運載效率,達到了優(yōu)化目的,提升了整體電梯群控系統(tǒng)的性能。