人工智慧測試(AI測試)的思考與探索
發表於:2019-04-01 來源:搜狐 作者:陳敏剛 點選數: 標籤:人工智慧
AI 作為一項變革性的技術已經滲透到了各行各業,隨著AI在各行各業的應用日益廣泛,對AI系統測試的需求也與日俱增。
人工智慧(AI) 已無處不在, AI正在為各行各業賦能,改變人們生活、生產的方式。然而,由於AI是一種新的 程式設計 正規化,無論是學術界還是工業界,對於AI 測試 的研究還剛剛起步。
1. AI測試及挑戰
AI 作為一項變革性的技術已經滲透到了各行各業,隨著AI在各行各業的應用日益廣泛,對AI 系統測試 的 需求 也與日俱增。以自動駕駛為例,如果自動駕駛的智慧系統做出錯誤的決策或響應時間慢,則將大大增加車禍的風險。類似地,金融領域AI的錯誤決策可能導致不可估量的經濟損失。
我們首先來分析為什麼AI測評那麼困難。經典的程式設計中,我們輸入的是規則(程式)和需要這些規則處理的資料,系統輸出的是答案。因此,經典的 軟體測試 ,我們可以通過對比答案來驗證和確認程式的正確性。然而, 資料驅動的 AI系統,不是通過編寫明確的邏輯,而是通過資料來訓練程式 ,輸入是資料和從這些資料中預期得到的答案,AI系統輸出的是規則,這些規則可應用於新的資料,自動計算出答案。可見, 資料驅動的 AI系統是一種新的程式設計正規化, 這種程式設計正規化給測試帶來了極大的挑戰。
(1) AI 系統輸出結果很難預測。 比如,基於深度神經網路的影象分類問題,網路的輸入是影象(高維空間的分佈),模型學到的規則是影象中模式的統計規律,因此輸出的是影象屬於某個類別的概率,這個概率值是無法事先預測的。
(2) AI 系統測試通過的準則很難確定。 比如,生成對抗網路(GAN)中如何判定GAN生成影象的質量與真實樣本足夠相似?這個問題,目前只能靠人眼主觀判定,定量測評方式的研究才剛剛起步。
(3) AI 系統的輸出結果隨時間變化。 比如,推薦系統的準確率,在某一段時間可以滿足業務需求,但隨著使用者資料的變化,一段時間後其準確率可能會下降,而無法滿足需求,模型則需要重新訓練,重新評估與測試。
(4) AI 系統需要更高效的持續 測試方法 。 由於AI模型隨著時間的變化,資料的演化, 效能 會下降,這時說明該模型已經無法擬合當前的資料,因此需要高效的測試方法,儘快訓練、測評、部署更新版的模型。
(5) AI 系統的效能依賴於資料。 模型訓練的資料規模、資料質量、資料類別的平衡性都會影響AI系統的效能。而且,在驗證階段效能好的模型,未必在真實測試環境中也表現出好的效能。比如,一個過擬合的模型,在驗證階段可以獲得很高的準確率,但在真實的使用者資料中準確率卻大大降低。
綜上所述, 資料驅動的 AI系統相對於傳統軟體測試更復雜,更具有挑戰。 同樣,還需要 測試人員 掌握更加全面的知識,比如機器學習、統計學、大資料分析等。
2. AI測試的方法論
AI測試從流程上來分大致可以分為5個步驟,分別為測試需求分析、測試環境準備、測試資料準備與驗證、AI測試執行與分析、模型上線與監控。
2.1 AI測試需求分析
AI測試需求分析與傳統軟體測試的要求基本一致,需要明確測試的物件、測試的範圍、測試的方法和工具、測試通過的準則等。但是測試需求分析不再僅僅是測試團隊的任務,而需要演算法 開發 人員、測試人員、系統運營人員共同參與討論,確定AI系統測試通過的準則。而且,由於AI系統的行為或結果無法完全確定或預測,因此還需要 開發 、測試和系統運營人員共同定義可允許的風險,風險可根據技術的限制和社會共識來確定。
2.2 測試環境準備
目前AI演算法,比如推薦系統、搜尋引擎、影象分類、自然語言處理都依賴於大資料基礎架構,因此AI演算法模型的測試環境準備,通常需要考慮資料量、計算量、測試時間等因素。此外,AI測試需要高效的持續測試,所以AI測試尤其需要測試環境快速部署的能力。
2.3測試資料準備與驗證
AI系統,不管是機器學習、推薦系統、計算機視覺,還是自然語言處理,都需要一定量的測試資料來進行模型的評估與測試。測試人員使用的測試資料集,需要儘可能的覆蓋真實環境使用者產生的資料情況。測試資料集的驗證可遵循以下原則:
(1)測試資料與訓練資料的比例要合適,這個比例應根據實際演算法和應用場景確定。
(2)測試資料與訓練資料需要獨立同分布。
(3)測試資料與訓練資料正負樣本的比例也需要儘量保持一致。
(4)對於監督模型,測試資料的標籤需要保證正確。
2.4 AI系統測試與分析
比如,模型離線評估主要是評測AI模型對未知新資料的預測能力,即泛化能力。泛化能力越強,模型的預測能力越好。可靠性測試,包括了魯棒性、可用性、容錯性、易恢復性等指標。對於無人駕駛、人臉識別等 安全 攸關的AI系統,需儘可能採用異常資料來進行測試,如對抗樣本、易出錯的樣本等;對於推薦系統和搜尋引擎等智慧程式則需要測試反作弊能力。
2.5 AI模型上線與監控
AI模型上線後,根據實際業務每隔幾天或幾星期,對模型各類指標進行評估。指標應設定對應閥值,當低於閥值時應觸發報警。如果模型隨著資料的演化而效能下降,說明模型在新資料下效能不佳,就需要利用新資料重新訓練模型。此外,在一些場景中,我們還需要對使用者輸入資料進行監控。比如,2016年微軟在Twitter上釋出的一款聊天機器人Tay開始表達法西斯思想,其原因就是使用者輸入資料的失控,人們“教壞”了聊天機器人。
3. 結語
AI是一種新的程式設計正規化,需要測試人員具備機器學習、統計學、大資料分析等綜合知識和能力,因此AI測試人員的稀缺將成為AI企業的現實問題。AI的全流程的測試將不僅僅是測試團隊的任務,而需要演算法開發人員、系統運營人員的共同參與。
此外,AI測試技術也需要不斷演進,來適應並解決AI測試帶來的挑戰。比如,蛻變測試可以緩解輸出結果很難預測的問題;對抗樣本與對抗訓練,則可大大提升AI系統的魯棒性;
眾包測試技術可以實現使用者體驗類指標的測評;DevOps技術可提供高效的持續測試。
目前,AI測試雖然實現了部分的 自動化 ,但我們相信未來能夠實現自我評估、自我測試的自迴圈AI測試系統將會出現,併為AI的廣泛應用提供質量保證。我們期待這一天的到來!
原文轉自: https://blog.csdn.net/lhh08hasee/article/details/81748680