薛怡然,吳 銳,劉家鋒
(模式識別與智能系統研究中心(哈爾濱工業大學),哈爾濱 150001)
大型商場、寫字樓等多功能建筑在滿足人們多種需求的同時,建筑復雜程度逐漸提高。在發生地震、火災等災害時,建筑內復雜的結構對人群疏散逃生形成阻礙,對生命安全形成新的威脅。災害發生時,人群由于對建筑物環境不了解、視野受限、心理恐慌等因素,難以準確找到最優逃生路線[1]。在從眾心理的影響下,逃生者容易形成擁堵甚至踩踏,造成更大損失[2]。如何引導人群以最有效的路徑疏散,對災害中保護生命安全,減少人員財產損失具有重要意義。
為了在災害發生時引導人群有效疏散,研究者開發了多種基于動態引導標志的人群疏散引導系統[3-6]。此類系統可以對建筑場景建模,收集災害位置和人群分布等實時信息,用路徑規劃算法找出最優逃生路徑,通過動態引導標志誘導人群的運動狀態,有效地提高了緊急情況下人群逃生效率。但是,現有的人群疏散引導系統都離不開人工設計基于拓撲圖或者網格形式的場景模型、根據場景特征手動輸入模型參數等工作,人工工作量較大并且容易引入人為因素造成的誤差,對后續路徑規劃等計算步驟造成干擾。
針對此問題,本文提出了基于深度強化學習算法的端對端的人群疏散引導方法。即訓練一種僅以建筑平面圖為輸入,在與環境的交互和反饋中自動探索學習場景模型和路徑規劃方法,發現最優動作策略,直接輸出動態引導標志信息的疏散引導智能體。為實現此方法,設計了基于社會力模型人群動力學仿真的強化學習智能體仿真交互環境,并針對深度強化學習中典型深度Q網絡(DQN)[7]方法應用于人群疏散引導時出現的“維度災難”問題,提出了組合動作空間的DQN方法,降低了網絡結構復雜度,提高了算法在復雜建筑場景中的實用性。
人群運動仿真是人群疏散研究中分析人群行為特征、自組織等現象的重要基礎。人群仿真研究可分為宏觀模型與微觀模型。宏觀模型主要考察人群整體的運動狀態,一般采用元胞自動機等柵格模型[8]。例如用流體力學方法計算速度場,再作用于個體的高密度人群仿真方法[9],和基于格子玻爾茲曼模型的人群異常檢測方法等[10]。微觀模型用動力學方法仿真每個個體的運動特征,典型方法有引入人的主觀因素的社會力模型[11-12]。
在仿真研究中,研究者希望提高疏散效率,使人群運動更貼近現實,因此人群疏散中的路徑規劃問題受到研究者的關注。有研究者分別利用群體智能的布谷鳥算法[13]和結合心理因素的A*算法[14]改進路徑搜索方法。也有研究者結合多種傳感器信息,例如構建威脅態勢信息場的路徑優化方法[15]、感知災害位置的路徑選擇方法[16]、根據路徑和出口容量優化的路徑選擇模型[17]等。仿真環境的路徑規劃方法可以綜合環境信息,計算使全局疏散效率最高的逃生路徑。在實際場景中,逃生者由于視野和經驗受限,只能掌握自身周邊信息,建筑物監測系統即使可以掌握優化的逃生路徑,也需要專門途徑告知逃生者。
為了指示逃生路線,大型建筑內一般設置有應急逃生標志。應急標志可分為靜態引導標志和動態引導標志兩類[18]。在真實場景實驗[19]和基于社會力模型的仿真實驗[20]中,靜態引導標志都對疏散效率起到了重要的正面作用。不同于靜態引導標志僅能指示一種預設的疏散路線,動態引導標志可根據災害場景中人群分布等實時條件顯示不同的引導信息。研究表明在某個出口不可用時,動態引導標志可以有效誘導人群從其他出口疏散[21],在路徑中發生危險時,動態標志也能引導人群避開不安全的路線[22]。
將上述人群仿真環境、路徑規劃算法和動態引導標志相結合,研究者開發出了多種人群疏散引導系統。此類系統以建筑物環境模型為基礎,實現了從場景信息感知、疏散路徑規劃到人群運動誘導的閉環反饋,具備一定的實用價值[3]。例如在拓撲圖模型上基于網絡流路徑規劃的動態引導方法[4]、使用仿真攝像機采集人群密度信息,應用實時最短路算法的動態疏散系統[5]。還有研究與現實建筑系統相結合,建立平行應急疏散系統框架,取得了更大現實意義[6]。
此類系統基本流程包含輸入場景平面圖、人工構建拓撲圖或網格模型、根據通道容量等因素輸入模型參數、應用路徑規劃算法和設置動態引導標志信息等幾個步驟。其中構建模型和填寫參數幾個步驟的人工參與度高,工作量大,容易由于人為失誤造成誤差并在后續步驟中放大,使系統疏散效率受到影響。針對此問題,本文利用深度強化學習方法,提出端到端的動態人群疏散引導系統。
近年來,強化學習方法在人群疏散研究中得到了一些應用。研究者開發了數據驅動的強化學習人群仿真方法,用智能體模擬和預測個體的運動[23]。在路徑選擇問題上,有研究利用逆向強化學習方法使機器人模仿人類行動軌跡[24]。這些仿真研究目標是接近真實場景,而非優化疏散效率。對于疏散引導問題,一些研究者開發出多種使用強化學習智能體輸出機器人運動方向,控制機器人在人群中運動,從而干涉人群運動狀態,提高疏散效率的方法[25-27]。此類方法在單個路口的仿真實驗中取得了一定效果,但在實際應用中存在加劇人群擁擠、引發踩踏事故等隱患?,F有基于強化學習的研究將逃生者個體或機器人個體定義為智能體。與此不同的是,本文將疏散引導系統定義為強化學習智能體,其以場景圖像為觀測輸入,輸出遍布場景的多組動態引導標志信號,從而誘導人群運動,提高疏散效率。
強化學習[28]是人工智能領域的重要組成部分之一,是一種通過與環境的交互和試錯,學習從環境狀態到動作的映射,發現最優行為策略,以使從環境獲得的積累獎賞最大的學習方法。結合深度神經網絡,深度強化學習智能體能直接以圖像作為輸入,將特征提取和值函數估計等過程內化在網絡結構中,顯著拓展了智能體的感知和決策能力。深度強化學習的標志性成果包括在Atari視頻游戲中超越人類玩家水平的DQN方法[7]、在圍棋中戰勝人類頂級選手的AlphaGo[29]和在星際爭霸2游戲在線對戰中打入大師級排行的AlphaStar[30]等。
強化學習模型[28]基于馬爾可夫決策過程(MDP),可描述為四元組(S,A,Pa,Ra),其中S為所有狀態的集合,即狀態空間,A為動作空間,狀態轉移函數Pa(s,s′)=P(st+1=s′|st=s,at=a)表示在狀態s時智能體執行動作a,環境進入狀態s′的概率,獎勵函數Ra(s,s′)表示在狀態s執行動作a進入狀態s′時所獲得的即時獎勵。智能體在每個離散的時間步t,觀測環境狀態st,根據策略π∶S→A選擇動作at=π(st)作用于環境,環境反饋給智能體獎勵rt,并轉移到下一個狀態st+1。智能體與環境的交互過程見圖1。

圖1 強化學習模型示意Fig.1 Schematic of reinforcement learning model
在強化學習的MDP模型基礎上,定義狀態-動作值函數,也可稱作動作值函數
Qπ(st,at)=Eπ[rt+γrt+1+γ2rt+2+…]
(1)
表示按策略π,在狀態st時執行動作at之后獲得的期望累積獎勵,其中γ為獎勵衰減系數。谷歌DeepMind團隊開發的DQN方法[7]用深度神經網絡表示動作值函數,且分為參數為θ的當前Q網絡和參數為θ-的目標Q網絡,每隔一定時間將當前Q網絡參數復制到目標Q網絡中。DQN的策略π為貪婪策略,總是選擇當前狀態下Q值最大的動作,訓練時加入一定概率選擇隨機動作作為探索過程。DQN使用經驗池存儲和管理樣本,對于一個時間步的樣本et=(st,at,rt,st+1),計算時序差分(temporal difference,TD)誤差
(2)

DQN在以圖像為輸入的Atari視頻游戲等任務上取得突破。研究者在DQN的基礎上,提出了用當前Q網絡進行目標動作選取的Double DQN(DDQN)方法[31]、用TD誤差區分經驗池中樣本優先級的優先經驗回放[32]等改進方法。
然而,DQN輸出的動作空間是離散的,并且對每一種可能的動作組合使用一個輸出層節點進行評價,因此當動作維數增加時,網絡復雜度將以指數方式增長。在人群疏散引導問題中,智能體以動態引導標志的顯示狀態作為輸出動作,每個標志的離散動作形成獨立的動作維度。在復雜建筑場景中動態引導標志數目較多時,DQN的輸出層規模將變得過于龐大而使算法無法實現。
人群疏散引導問題涉及3類對象,包括建筑場景、逃生者和智能疏散引導系統?,F有研究常將每個逃生者個體定義為一個智能體,研究個體的行動策略和運動狀態,或添加可動機器人個體作為智能體。與此不同的是,本文將疏散引導系統看作一個智能體,如圖2所示,則智能體所處的環境包括實際建筑場景和其中運動的人群。建筑場景由平面圖表示,攝像機等多種傳感器收集人群運動狀態,繪制進場景平面圖,此圖像即包含了當前環境中所需的信息,連續多幀圖像的灰度位圖組合成(width×height×depth)三維張量,定義為MDP的環境狀態st∈S。對于多層建筑,可以將不同樓層平面圖拼接成整體場景圖像輸入系統,從而實現多層建筑中的疏散引導。疏散引導系統通過動態引導標志顯示信號,誘導、干涉人群運動,因此智能體動作at∈A對應引導標志信號,at是離散向量,每個維度對應一個引導標志,取值為此標志顯示狀態(向左、向右等)之一。由于環境和人群運動較為復雜,狀態轉移函數Pa(s,s′)是未知的,需要智能體在交互過程中學習和適應。獎勵函數的設計決定了智能體的優化方向和學習目的,在人群疏散問題中,應根據成功撤離的人數或疏散所用時間等因素設計獎勵函數。本文定義Ra(s,s′)=-1,即每個時間步固定給予懲罰,智能體的學習目標是使累積懲罰最小,即全體人群疏散時間最短。

圖2 人群疏散引導的強化學習模型Fig.2 Reinforcement learning model for evacuation guidance
強化學習智能體的訓練過程需要與環境不斷交互,在探索和試錯中學習。其所需的交互規模十分龐大,一般在數萬個周期、百萬個時間步以上。并且訓練初期智能體知識不足,可能造成更多潛在危險。
因此用于智能疏散引導系統的強化學習智能體必須在仿真環境中進行訓練,訓練完成后再部署到實際建筑內。
疏散引導系統智能體通過與仿真環境的大量交互進行探索與學習,最終得到神經網絡形式的優化策略π(s)。學習過程中不需要人工設計建筑通道拓撲圖或網格模型,智能體能自主發現和優化引導策略,不需要另外設計路徑規劃等中間算法。實際應用中,每個時刻t傳感器收集人群運動信息,將人群位置分布、當前引導標志顯示狀態等信息繪制進場景平面圖。利用卷積神經網絡對圖像的感知能力,多幀場景灰度位圖組成三維張量傳入神經網絡,作為智能體輸入的觀測狀態st,智能體根據訓練完成后包含優化策略的神經網絡計算動作向量at=π(st),由動態引導標志顯示對應信號,實現對人群疏散的有效引導。
在網絡結構上,DQN采用多層卷積神經網絡處理圖像輸入,然后連接多層全連接神經網絡,輸出層每一個神經元對應一種可能的離散動作組合。對于動作中相互獨立的成分,總的動作空間是各個獨立動作空間的笛卡爾積。當動作空間有n個相互獨立的維度,每個維度有m個離散動作時,DQN網絡需要mn個輸出層節點,以對應輸入狀態s時不同動作Q(s,a)的值。因此,隨著獨立動作數目的增長,DQN的網絡結構復雜度以指數速度增長,從而使算法不可實現。同時輸出層過多也會導致樣本利用率降低和網絡參數更新困難。這個現象被稱為DQN的“維度災難”問題。
在人群疏散引導的應用當中,智能體動作定義為引導標志的顯示狀態。即使每個引導標志只有向左和向右兩個狀態,對于n個引導標志,總的動作空間容量也會達到2n之多,引發“維度災難”。本文針對此問題,提出組合動作空間的DQN方法(CA-DQN)。如圖3所示,對于相互獨立的動作維度,每個維度對應Q函數網絡輸出層一組節點,每組包含這個維度上的所有離散動作。這個改變可看作對每個動作維度d設置了各自的值函數Qd(s,a(d);θ),并且共用一套網絡參數。此時網絡輸出層節點數目是各個維度上離散動作數之和,隨獨立動作數目的增長速度從指數增長降為線性增長,例如n個引導標志所需輸出層節點為2n。

圖3 CA-DQN神經網絡結構Fig.3 Network structure of CA-DQN
(3)
對于一個樣本et=(st,at,rt,st+1)定義每個維度上的TD誤差
(4)
結合研究者提出用當前Q網絡選擇t+1時間動作,以避免過高估計的DDQN算法[31],TD誤差進一步定義為
(5)
則從經驗池中采樣所得一組樣本B={e1,…,et},神經網絡的損失函數定義為平方誤差損失的算術平均值
(6)
神經網絡按式(6)定義的損失函數用誤差反向傳播算法進行訓練。此時,對于每個樣本,動作的每個維度都有一個輸出層節點被選擇并參與TD誤差的計算和網絡誤差的反向傳播,則共有D個輸出層節點可以得到更新。相比DQN中每個樣本只能更新一個輸出層節點,CA-DQN方法提高了樣本的利用效率。
DQN以隨機方式從經驗池中采樣,不考慮樣本差異,樣本利用效率較低。采用優先經驗回放方法[32],用式(2)定義的樣本TD誤差,將樣本采樣優先級定義為pt=(|δt|+ε)α,其中ε和α為常數。TD誤差絕對值越大的樣本意味著所包含的有效信息越多,對其賦予更高采樣優先級,可提高樣本利用率和訓練效率。

(7)
樣本優先級定義為平均值可能使樣本重要性被其他動作維度稀釋,但有助于保持訓練過程的穩定性。
結合以上優先經驗回放方法,CA-DQN的訓練過程如下:

算法1:智能體訓練過程
輸入:仿真環境 env
輸出:神經網絡參數θ*
1隨機初始化神經網絡參數θ,θ-
2初始化經驗池 pool
3whilesteps 4state,reward,terminate ← env.RandomInit()//隨機初始化仿真環境 5whilenot terminatethen 6action ← AgentPolicy(state,θ)//按式(3)選擇動作 7state_new,reward,terminate ← env.Step(action) 8td_error ← CalcTDError(state,action,reward,state_new,θ,θ-)//按式(5)計算TD誤差 9priority ← CalcPriority(td_error)//按式(7)計算樣本優先級 10pool.Append(state,action,reward,state_new,priority) 11state ← state_new 12steps ← steps + 1 13s,a,r,s' ← pool.RandomSample(batch_size)//按優先級隨機采樣 14td_error ← CalcTDError(s,a,r,s',θ,θ-)//按式(5)計算TD誤差 15loss ← CalcLoss(td_error)//按式(6)計算損失函數 16θ← BackPropagation(θ,loss)//更新網絡參數 17每隔一定步數θ-←θ 18end 19每隔一定周期數計算平均周期回報,若性能提升θ*←θ 20end 本文采用基于社會力模型的人群動力學仿真系統[5]作為智能體交互環境,構造了典型的多房間、雙出口室內場景,以下稱為“場景1”。多層建筑場景可通過拼接各層平面圖輸入疏散引導系統,本文為直觀起見,采用單層仿真場景。仿真系統計算每個個體的運動狀態,并加入個體心理因素對運動造成的影響。仿真系統基于C++語言和Qt庫編寫。 如圖4所示,仿真場景大小為29.2 m×19.7 m,平面圖像素為499×337,場景內包含左右2個出口和6個房間,上下2個通道連接房間和出口,每個通道設置5個動態引導標志,標志可顯示相對兩個方向之一。人群數量為200人,初始位置以圓形范圍隨機分布,分布中心和半徑取值范圍為x∈(100,140),y∈(60,280),r∈(100,200)。場景圖像中,藍色直線表示墻壁,綠色矩形表示出口位置,綠色箭頭表示動態引導標志,每個標志有相反兩個方向的顯示狀態,藍色圓點表示逃生者個體,灰色部分為不可到達區域。個體最大運動速度為5 m/s。仿真個體在沒有看到疏散引導標志時,選擇距離最近的出口,按照靜態最短路線逃生,看到疏散引導標志時,按照引導標志指示的方向逃生。仿真系統動力學計算的每個時間步為40 ms,仿真時間上限為100 s。 圖4 仿真場景1Fig.4 Simulation scene 1 同時,本文也采用原交互環境中基于實際建筑平面圖的仿真場景[5]進行實驗,如圖5所示,以下稱為“場景2”。場景圖像中符號含義與場景1相同。場景大小為47.0 m×28.8 m,圖像像素為805×494,人群數量為200人,分布中心和半徑取值范圍為x∈(100,700),y∈(60,440),r∈(300,500),場景內共有2個出口和6個動態引導標志。不同仿真場景的強化學習智能體由于輸入輸出定義不同,疏散策略不同,需要分別進行訓練。 圖5 仿真場景2Fig.5 Simulation scene 2 CA-DQN方法基于Python語言、TensorFlow平臺和OpenAI/baseline庫實現。實現過程與超參數的選擇參考了baseline庫中用于Atari視頻游戲的DQN方法,并針對本文方法進行適當調整。強化學習智能體的每個時間步中,首先由仿真系統進行5步計算,即仿真200 ms內人群的運動狀態,將獲得的最后4幀圖像下采樣為1/2大小的灰度圖,以場景1為例,組合成像素為249×168的4通道圖像,作為智能體的狀態st輸入值函數Q網絡。Q網絡結構如圖3所示,由三層卷積神經網絡和三層全連接神經網絡組成。第一層由32組8×8卷積核組成,輸入為249×168×4的三維張量,第二層由64組4×4卷積核組成,第三層由64組3×3卷積核組成。卷積神經網絡的激活函數為ReLU。三層全連接層神經元數目分別為128、64、32,激活函數為ReLU。輸出層激活函數為恒等函數,20個神經元分為10組,每組2個中取輸出值較大的作為一個動態引導標志的顯示信號,共同組成10維離散輸出向量作為智能體動作at。at作用于仿真系統,改變10個引導標志顯示的方向,從而指引人群運動方向,此時智能體與仿真環境的交互完成一個循環。智能體每步的獎勵固定為-1,即每秒獲得-5的獎勵,智能體訓練目標為減少總體疏散時間。 訓練超參數中,批量大小為64,學習率為10-5,總時間步為107,經驗池樣本容量為105,每2×104步將當前Q網絡參數復制到目標Q網絡。實驗硬件平臺為AMD Threadripper 2990WX CPU、NVIDIA RTX 2080Ti GPU、128 GB內存。 由于原DQN方法用于本文實驗時,以場景1為例,需設置210=1 024個輸出層節點,相比CA-DQN的20個節點,DQN網絡規模過大,在現有條件下難以實現。因此本文選擇基于靜態引導標志的方法和基于拓撲圖建模和動態Dijkstra最短路方法的疏散引導算法[5]作為對比。靜態引導標志方法中,用自動或人工的最短路方法計算,每個標志指向距離最近的出口,每個場景僅計算一次,不考慮人群實時分布,模擬過程中標志不發生變化。動態Dijkstra最短路方法需要專家人員根據地圖內通道結構人工建立拓撲圖模型,并且設置多個虛擬攝像頭節點,統計通道不同位置的人群密度,實時調整拓撲圖各邊權值,用Dijkstra算法進行路徑規劃,實現人群的有效疏散。實驗結果中,每1 s疏散時間對應-5的周期獎勵。 由圖6的訓練曲線看出,對于場景1,智能體在約3×104個訓練周期后達到最優策略,此時智能體與仿真環境交互次數約為6.4×106個時間步。圖7中,對于場景2,智能體在約4.5×104個訓練周期后達到最優策略。如表1所示,對不同疏散方法使用新的隨機人群分布參數進行100個周期的疏散仿真,場景1中智能體訓練所得最優策略的平均周期獎勵為-158.25,即平均疏散時間為31.65 s,優于使用靜態引導標志的41.35 s和動態Dijkstra最短路方法的32.18 s。場景2中智能體訓練所得最優策略平均疏散時間為27.33 s,優于靜態引導標志和動態最短路方法。說明本文基于CA-DQN的智能疏散引導智能體可以有效引導人群疏散。 圖6 場景1智能體訓練曲線Fig.6 Training curve of agent in scene 1 圖7 場景2智能體訓練曲線Fig.7 Training curve of agent in scene 2 表1 不同方法疏散時間Tab.1 Evacuation time under different methods s 圖8展示了場景1中一個典型的疏散過程(圖中符號含義請參考3.1節):圖8(a)是人群的初始分布,人群主要分布于左側4個房間,若沒有動態指引,人群按到出口距離最短的靜態標志疏散策略,將造成左側出口擁堵,右側出口得不到有效利用。在圖8(b)到圖8(d)時刻,智能體感知到人群分布,將左上方房間人群引向左側出口,其余人群引向右側出口。圖8(e)時刻,左側出口擁堵已得到緩解,右側出口預期撤離人數較多,因此智能體將左下區域剩余人群引向左側出口。最終在圖8(f)時刻,人群基本同時從兩側出口完成疏散,表明人群疏散引導智能體實現了人群疏散效率的最大化。 圖8 場景1一個周期的疏散過程Fig.8 Typical evacuation process in scene 1 類似地,圖9展示了場景2中典型的一個疏散過程。圖9(a)中,人群初始化分布主要集中在場景上方。圖9(b)時刻,智能體感知人群分布,將左上方房間以外的大部分區域人群向右下方出口誘導。圖9(c)到圖9(d)時刻,一部分人群有效地轉移至右側通道,避免了左上方出口進一步擁堵。最終,在圖9(e)到圖9(f)時刻,人群基本同時從兩個出口完成疏散,說明智能體的引導實現了人群疏散效率最大化。 圖9 場景2一個周期的疏散過程Fig.9 Typical evacuation process in scene 2 改變仿真場景初始化人數,分別進行100個周期的疏散仿真,不同方法的疏散效果對比見圖10。場景1中,在人數較少時,各個通道都能保持通暢,靜態引導方法效果較好。人群數量增加時,靜態引導方法受影響較大,CA-DQN和動態最短路方法可以避免人群擁堵。人群數量增加到80人以上時,兩種動態方法疏散效果優于靜態方法,其中本文CA-DQN方法實現了最優疏散引導效率。場景2的實驗也顯示出類似結果,由圖11看出,本文方法在不同人群數量下均能取得較好效果。 圖10 場景1中不同人數的周期獎勵Fig.10 Period reward with varying number of persons in scene 1 圖11 場景2中不同人數的周期獎勵Fig.11 Period reward with varying number of persons in scene 2 實驗結果顯示,相比靜態標志不能感知人群分布信息,本文基于CA-DQN的強化學習人群疏散引導方法能動態地調整引導標志的顯示信號,有效提高人群疏散效率。與基于拓撲圖建模的動態Dijkstra最短路方法相比,本文方法取得了更好的疏散引導效率,同時避免人工構造拓撲圖的工作量和潛在的人工誤差。 本文分析了使用動態引導標志的人群疏散引導問題,針對現有方法需要人工設計拓撲圖模型或網格模型,配合獨立的路徑規劃算法,導致人工工作量大、容易引入人為誤差等不足之處,提出了基于組合動作空間深度強化學習的人群疏散引導方法。通過端對端的深度學習,由智能體在訓練過程中自行探索學習建筑結構和路徑規劃方法,通過環境反饋自動修正認知誤差,從而找到最優的疏散引導策略。 針對深度強化學習中典型的DQN方法應用于人群疏散問題時因輸出的動態引導標志數量較多而出現的“維度災難”問題,本文提出CA-DQN網絡結構,將關于輸出動作維度的網絡結構復雜度從指數級增長降低為線性增長,提高了強化學習方法在復雜場景和大規模人群疏散問題中的可用性。在基于社會力模型的人群動力學仿真系統中的實驗表明,本文方法相對靜態引導標志有效提升了人群疏散效率,減少疏散時間,達到與基于人工建模的動態最短路方法相同水平。 未來工作將進一步提升強化學習智能體在復雜場景中的訓練效率,對輸出信號變更頻率等加以更多限制,使其在真實場景中更易理解。
3 實驗與分析
3.1 實驗設計與實現


3.2 實驗結果與分析







4 結 論