【閱讀筆記】Falsification of Cyber-Physical Systems Using Deep Reinforcement Learning

FM2018 Falsification of Cyber-Physical Systems Using Deep Reinforcement Learning
(International Symposium on Formal Methods)

摘要

隨着軟件和分佈式計算的迅速發展,信息物理系統(CPS)被廣泛應用於許多領域,如智能電網,自動駕駛汽車等。由於軟件和物理系統的複雜性,檢測CPS模型中的缺陷是困難的,傳統的系統驗證技術,如模型檢驗或定理證明,由於物理部件具有無窮多個狀態,很難應用於CPS。爲了有效地發現CPS模型中的缺陷,引入了以魯棒性爲導向CPS模型性質falsification方法。現有方法使用全局優化技術來生成違反了CPS模型性質的反例。然而,這些方法可能需要大量的模擬運行才能找到反例,往往超出了實際可行性。本文探索最先進的深度強化學習(DRL)技術,以減少查找此類反例所需的模擬運行次數,並討論了具體方法和初步評估結果。
個人理解就是,如果做圖片和文本的對抗樣本的話,只需要很直觀的添加擾動就可以了,但是做系統的話,需要仿真出一系列的軌跡,就很麻煩,如果用RL的話,可以很自動化的仿真出這樣一條軌跡,並且這個軌跡還是能夠檢測系統缺陷的。

Introduction

傳統的用於保證CPS模型正確性的測試方法很難保證測試的高覆蓋率,因爲狀態空間是無限的。可以用測試軟件系統的形式化方法諸如模型檢測和理論證明來縝密的驗證這個系統,但model check是不確定的,因爲CPS的狀態空間是無限的;而理論證明又非常困難。 因此,引入了魯棒引導證僞[2]、[3]方法來有效地檢測CPS中的缺陷。
使用Metric Temporal Logic(MTL)和它的 Signal Temporal Logic (STL)常被用於表示CPS模型應該滿足的(魯棒性)性質,從而數字化度量一個CPS模型的魯棒性程度,然後通過在CPS模型的狀態空間中探索,確定魯棒性最小的系統參數作爲測試的輸入參數。通過這種方式,魯棒性引導的證僞有助於生成缺陷引導系統參數(即反例),從而能夠更高效、更自動地檢測缺陷。儘管穩健性引導證僞的不終止並不意味着沒有反例,這在一定程度上說明了CPS模型的正確性。
現有隨機全局優化方法如模擬退火、交叉熵的方法來最小化時序邏輯公式的值。(loss函數?)爲了測試CPS,我們需要生成一系列能夠使這些系統失敗的輸入。現有的魯棒性指導的證僞通常被表示爲參數生成問題。 輸入分爲幾個控制點,在這些點的輸入被視爲系統參數。但是這些輸入和系統響應之間的時序關係是被丟掉了的,並且代表輸入的控制點形成高維空間,在高維空間中進行優化是非常困難的。
在DRL在無功非線性系統(如遊戲)上的成功應用的啓發下,本文提出將僞造問題作爲一個強化學習問題並進行解釋,利用DRL的交互學習能力尋找反例。 我們關注的是reactive的CPS,即實時從環境中獲取輸入的CPS。 我們採用了兩種最先進的強化學習(D RL)技術,即Asynchronous Advanced Actor Critic(A3C)和Double Deep-Q Network(D DQN),來解決CPS上的魯棒性引導僞造問題。
本文的主要貢獻有:
(1)展示了怎樣將找到違反CPS模型魯棒性性質的行爲序列的問題轉化爲深度強化學習(DRL)問題;
(2)實現提出的方法並進行初步評估,結果證明利用DRL技術可以減少尋找CPS模型致錯輸入需要的模擬運行次數,進而減少模擬運行的總時間。
(3)提出基於強化學習技術的CPS模型魯棒性性質falsification問題的測試框架,爲進一步探索該問題提供了保障。

Related work

魯棒性指導的方法分爲黑盒方法和灰盒方法。 黑盒方法可以進一步分爲將魯棒性僞造問題轉化爲全局優化問題的方法和基於統計建模的方法。 採用全局優化技術的方法包括採用模擬退火的方法、 採用遺傳算法的方法、Tabu search(禁忌搜索)、梯度下降等。 基於統計建模的方法包括交叉熵法、高斯迴歸。
在控制器合成領域也有采用強化學習(RL)來滿足MTL性質的方法。 這項任務的挑戰之一是如何從給定的公式設計RL中的獎勵。 一種策略是探索基於自動機的獎勵塑造[31]、[32]、[33]。 這些方法將MTL公式轉換爲相應的自動機,並根據自動機的當前狀態決定獎勵。 另一種方法使用MTL的健壯性。控制器生成方法是要將系統一直保持在安全的狀態中,但證僞方法是找出系統的漏洞,不同的目的對應了不同的獎勵函數設置。

基礎定義

  • 我們關注的是能夠實時輸入並且輸出的系統,並且假設輸入和輸出是發生在一瞬間的離散的時刻。連續的系統可以通過採樣來適應離散的系統。這個系統就是一個函數f :X* -> Y X*是輸入的集合,Y是輸出。f(x1_1, . . . , xi_i) = yi+1_{i+1} ,意思是連續輸入i次,輸出的結果記爲yi+1_{i+1}
  • 定義 Dist(x, D) 是輸入集合X中的一個點x 到 X的閉合子集D的距離。inf是指下確界。相當於min,但是不是min,最簡單的情況如果z是一個開區間的話,可能沒有最大最小值,但是是可以有上確界sup和下確界inf的。如果x屬於D的話,那麼他的下確界是離開這個區域的最短距離,是個正值;如果x不屬於D那麼他的下確界是到D這個區域的最小距離,但是這裏取了負值,表示不在這個區域。(也就是說出了安全區域,就很差了,魯棒性就爲負值。即使在安全區域裏面,他離出安全區域越近他的魯棒性就越低)
    在這裏插入圖片描述
  • 然後。定義了魯棒性數值的衡量 degree[[φ]] (y,t) 表示輸出信號y在時間t對φ的魯棒性
  • 在這裏插入圖片描述
  • φ是一個MTL-formula,他的規則如下所示,直觀的說就是,yn_n這個狀態滿足p這個屬性。當然還可以進行一些與、或等邏輯判別。定義1:y是系統的輸出,n是表示經歷了n個x的輸入,如tn_n,表示的這個時間瞬間。t = t0_0…tn_n…表示的是這個系統狀態的無限採樣的時間序列。 y=y0_0,y1_1,…,yn_n,…分別爲時間瞬間的系統狀態。y, n |= φ 表示yn_n滿足φ這個屬性。
    在這裏插入圖片描述
  • 同時還引用其他文章中 未來可到達 fr§ 的定義,表示未來確定p這個屬性是真值所需要的最小時間。如果fr§=0的話就表示,這屬性是"單純的過去依賴"屬性,意思就是過去的狀態已經能夠滿足這個屬性了。他這裏舉的例子的意思是,如果p已經確定爲真,fr§=0,要確定在之後的0~3秒裏面p都是真,要第三秒才能知道;要確定從當前時間之前的-3秒到0秒裏面p是真在第0秒就能知道了(因爲他fr§=0了嘛表示當前已經滿足了,所以最晚也是第0秒就能知道)
    在這裏插入圖片描述
  • 緊接着我們需要定義一個monitoring formula。因爲我們希望關心的安全屬性不是一個單純的過去依賴,也就是說,不是一個只滿足某個瞬間的狀態,而是一定時間內能滿足的, 這個monitoring formual φ0_0相當於屬性φ的一個近似,而文中爲了簡化問題,將φ0_0定義爲 單純的過去依賴的,也就是可以立即判別的。
  • 在這裏插入圖片描述

具體算法

在這裏插入圖片描述

  • 文章使用了兩種強化學習算法 Asynchronous Advantage Actor-Critic (A3C) 和Double Deep Q Network (DDQN)。A3C主要就是將原本的DQN分成了兩部分,Actor學習動作和Critic學習值函數估值,兩個互相獨立的神經網絡,但是Critic會影響Actor。DDQN主要是爲了解決DQN的過估計問題,弄了兩個一模一樣的網絡,在學習估值的時候用max來做評估,在選擇輸出動作的時候用另一個沒有做過max 評估的權重集合來做動作,一定程度上降低了過估計的可能性,對動作選擇和動作估值進行解耦,收斂更平滑。(文章只做了簡要介紹,沒有具體展開,感覺需要再寫一篇來專門學習這幾個算法才能徹底弄懂,因爲本身也是原始DQN的優化算法,所以暫時就默認他們作爲DL的作用)
  • 給定安全屬性φ,以及它的monitoring formual φ0_0, 系統和主體,我們的目的是輸出一個x集合,使得執行完x裏面的動作後,系統的輸出是不符合安全屬性的。每次對系統進行L步的仿真,如果最後結果裏面有狀態是不安全的,那麼就把這組輸入保存下來作爲一個對抗樣本,否則就在保留主體記憶的情況下又從頭開始仿真學習。其中,仿真的步數L和進行的輪數N是可以自主設定的參數。
  • reward的定義如下,直觀的講就是對當前輸出進行評價,如果魯棒性越小,reward就越大。
    在這裏插入圖片描述

評估方法

  • 一共做了三個實驗的對比實驗(隨機均勻採樣)uniform random sampling (RAND), (交叉熵)Cross Entropy (CE) and (模擬退火)Simulated Annealing (SA)。將隨機採樣作爲本次實驗的目標基準線,所有的實驗結果和它進行比較之後的結果作爲不同方法好壞的判斷標準。後面兩種方法不太瞭解emmmm應該還需要繼續學習才能明白。
  • 此外計算200輪中成功找到對抗樣本的比例和找到對抗樣本輪數的中位數。 使用中位數而不是平均數的原因是,僞造所需輪數的分佈高度不正常,因此平均沒有意義。
  • 但以上兩種方法不足以反應結果的分佈差異還採用了一個“相對效應大小”度量方法,有兩個隨機數X和Y,爲了比較他們兩個誰的範圍更大,就求X小於Y的概率:p如果小於0.5,說明X<Y小的概率很小,那麼X大部分情況比Y大。
  • 而我們這裏想知道,在比較方法A和B的時候,A比B表現更好的頻率有多高,而平均值和中位數,只是在強有力的假設下間接的說明這個問題,是不夠直觀的。
    在這裏插入圖片描述

具體實驗

  • 作者們做了三個實驗,每個實驗工作量一個比一個龐大= =,這裏只以第一個相對簡單的實驗介紹一下

汽車模型

在這裏插入圖片描述

  • 如上圖所示,這個模型輸入是Throttle (節氣門?)向量 和 Brake(制動器)值。輸出五個參數包括速度等。然後根據屬性的複雜性定義瞭如下幾個等級的屬性(eg,φ4_4表示了系統續航力,φ5_5體現了系統的反應能力等):
    在這裏插入圖片描述
  • 對於兩個強化學習算法的實驗,還分別作了黑盒和白盒的測試,這裏文章只提了一句話說,白盒是能觀察到完整的輸出y1~ y5,黑盒只能觀察到魯棒性結果。後面解釋了= =是指的強化學習算法中,每次仿真完系統,白盒會得到y1~y5的作爲yi_i進行學習即整個系統的狀態,但黑盒是使用的yi_i的魯棒性數值不能觀察到系統的整個狀態。下圖表示的是成功找到對抗樣本的比例:
    在這裏插入圖片描述
  • 下面這張是模型成功次數的中位數及其可視化。TABLE4和TABLE5是之前提到的“相對效應大小”來比較兩種方法誰有更高的概率性能更優。表中的值越小,就說明列方法比行方法更小,更集中->也就是說僞造成功的次數越低。(其實可視化的圖已經很直觀了= =)
    在這裏插入圖片描述
    在這裏插入圖片描述

其他影響實驗的因素

log-sum-exp 的參數α

通過實驗得出,整體而言阿爾法不會對結果造成很大影響。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

關於執行時間

  • 因爲還要考慮不同方法使用的語言差異,環境差異等這裏使用仿真次數作爲單位來衡量執行時間,因爲執行一步主要時間其實是在仿真上面的,迭代次數越少,總執行時間就會越少。同時也評估了Δ\DeltaT執行時間的影響,如果有影響的話小的Δ\DeltaT就會使學習的迭代次數增加那麼,就也會更慢,但實驗證明並沒有大影響(除了φ\varphi5_5,文章解釋說應該是因爲這個屬性只需要非常少的模擬次數,所以初始化開銷佔了大部分執行時間。沒太懂,感覺這裏的意思是執行時間還是真實的時間,只是計量單位用的仿真次數)。這樣也是爲了儘量避免因爲執行環境和選取的編程語言帶來的差異。
  • 在這裏插入圖片描述
  • 在這裏插入圖片描述

總結

  • 提出了一種生成信息物理系統(CPS)對抗樣本的強化學習方法
  • 並且展示瞭如何將一個CPS對抗樣本生成問題轉化成強化學習問題
  • 進行了實驗對比了多種不同方法和RL方法的差異,並且使用“相對影響大小”的方法來進行分析。並且找到了影響RL結果兩個因素:是否能觀察的整個系統的結果以及輸入結構,另一個因素是僞造輸入中存在可學習的結構。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章