圖2. a) 一種典型的城市駕駛場景; b) 分配任務的時空排列; c) 隨時間變化的相應計算開銷
圖3. 一個駕駛任務逐級細化的過程也就是對于任務空間的抽樣過程,包括逐級確定分配任務的時空排列和創(chuàng)建實例
3.3.3. 智能車智能性測試框架
在傳統(tǒng)汽車測試開發(fā)中我們經常使用V字型開發(fā)方法。如下圖所示,在這種方法中,人們在開發(fā)階段就定義了相應級別的測試用例。
圖4. 傳統(tǒng)汽車測試V字形開發(fā)流程
V模型的第一階段是整體需求確認階段,在該階段與整體需求對應的測試用例也會提前定義。第二階段,第三階段分別是系統(tǒng)級別(High-Level-Design)以及子系統(tǒng)級別(Low-Level-Design)的設計和對應測試用力的書寫。在這兩個階段系統(tǒng)的功能會被分解細化,軟件中的各種類,以及類間關系會被定義。同時,也需要在這兩個階段書寫同樣級別的測試用例。第四階段是模塊設計,在這個階段,子系統(tǒng)會進一步分解成為小的模塊,對應的對于模塊的測試用例也會在這個階段定義完成。
如果把我們提出的測試方法和V模型一一對應,就能得到如下的Λ-V模型:不斷學習新示例,舉一反三,逐步完善任務描述。
圖5. Λ-V模型測試框架
V模型對于傳統(tǒng)汽車研發(fā)這一類系統(tǒng)性和可推導性比較強的系統(tǒng)工程有較好的效果,但是由于我們需要在具體的編程之前就設計好所有的測試用例,這使得該模型在較為復雜的人工智能系統(tǒng)開發(fā)中很難直接套用。
我們認為,在開發(fā)智能系統(tǒng)過程中,機器學習和測試如同一個硬幣的兩面,智能性測試應該和機器學習有著類似的流程。
(a)
(b)
圖6. 智能車測試框架
在平行學習的框架下,首先要解決的問題是如何獲取新的數據用來學習,該階段我們稱為描述性學習階段;在第二階段,會從第一階段中提取特定的數據有針對性的進行學習,從而獲得“小知識”,該階段我們稱為特定數據學習階段;第三階段是預測性學習階段,在該階段,會把前兩階段得來的數據和知識一一對應,這種聯(lián)系也會被記錄下來。最后,所有的新數據會在第三階段已有聯(lián)系的基礎上找到對應的“小知識”。
與此類似的,如圖6(b)所示,智能車的智能性測試也有著類似的流程。第一階段是創(chuàng)建新的測試任務。在這個過程中,在場景中的測試任務都會被逐步分解成為細化的功能。第二階段是在第一階段創(chuàng)建的測試任務中選取有挑戰(zhàn)性的部分(測試取樣)。最后一個階段是測試的執(zhí)行,也就是在前兩個階段創(chuàng)建的任務中觀察智能車的表現。在這個階段,我們需要從測試結果中得到兩類關聯(lián)信息,第一類是車輛智能性和其在我們搭建的測試環(huán)境中的表現的關聯(lián),這種關聯(lián)對于我們在新的測試任務中取樣有很大的幫助;第二種關聯(lián)是測試本身和測試環(huán)境的關聯(lián),我們需要從不同的測試環(huán)境中學習到如何更好的創(chuàng)建測試任務。
我們提出了以上的智能性測試框架是基于以下考慮: