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