自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從人工智能 (AI)發(fā)展應(yīng)用看算法測試的測試策略

人工智能 深度學(xué)習(xí) 算法
隨著人工智能的發(fā)展與應(yīng)用,AI測試逐漸進(jìn)入到我們的視野,傳統(tǒng)的功能測試策略對于算法測試而言,心有余而力不足,難以滿足對人工智能 (AI) 的質(zhì)量保障。

隨著人工智能的發(fā)展與應(yīng)用,AI測試逐漸進(jìn)入到我們的視野,傳統(tǒng)的功能測試策略對于算法測試而言,心有余而力不足,難以滿足對人工智能 (AI) 的質(zhì)量保障。

[[269473]]

結(jié)合在人臉檢測、檢索算法上的測試探索、實踐的過程,本文將從以下幾個方面介紹人工智能 (AI) 算法測試策略。

  • 算法測試集數(shù)據(jù)準(zhǔn)備
  • 算法功能測試
  • 算法性能測試
  • 算法效果測試(模型評估指標(biāo))
  • 算法指標(biāo)結(jié)果分析
  • 算法測試報告

我們將算法測試測試流程中的幾個核心環(huán)節(jié)提煉如上幾點,也就組成了我們算法測試的測試策略,在此,拋磚引玉的分享一下。

算法測試集數(shù)據(jù)準(zhǔn)備

測試集的準(zhǔn)備對于整體算法測試而言非常重要,一般測試集準(zhǔn)備過程中需考慮以下幾點:

  • 測試集的覆蓋度
  • 測試集的獨立性
  • 測試集的準(zhǔn)確性

測試集的覆蓋度

如果,測試集準(zhǔn)備只是隨機的選取測試數(shù)據(jù),容易造成測試結(jié)果的失真,降低算法模型評估結(jié)果的可靠性。

好比我們的功能測試,根據(jù)功能測試設(shè)計,構(gòu)造對應(yīng)的數(shù)據(jù)進(jìn)行測試覆蓋。算法測試亦然,以人臉檢測算法而言,除了考慮選取正樣本、負(fù)樣本外,還需要考慮正樣本中人臉特征的覆蓋,如人臉占比、模糊度、光照、姿態(tài)(角度)、完整性(遮擋)等特征。

選擇好對應(yīng)的測試數(shù)據(jù)后,后來后期的指標(biāo)計算、結(jié)果分析,還需對數(shù)據(jù)進(jìn)行標(biāo)注,標(biāo)注對應(yīng)的特征,以人臉檢測為例,使用工具對人臉圖標(biāo)進(jìn)行人臉坐標(biāo)框圖,并將對應(yīng)特征進(jìn)行標(biāo)注記錄及存儲,如下圖。

另外,除了數(shù)據(jù)特征的覆蓋,也需要考慮數(shù)據(jù)來源的覆蓋,結(jié)合實際應(yīng)用環(huán)境、場景的數(shù)據(jù)進(jìn)行數(shù)據(jù)模擬、準(zhǔn)備。比如公共場所攝像頭下的人臉檢索,圖片一般比較模糊、圖片光照強度不一,因此準(zhǔn)備數(shù)據(jù)時,也需要根據(jù)此場景,模擬數(shù)據(jù)。一般來講,最好將真實生產(chǎn)環(huán)境數(shù)據(jù)作為測試數(shù)據(jù),并從其中按照數(shù)據(jù)特征分布選取測試數(shù)據(jù)。

此外,關(guān)于測試數(shù)據(jù)的數(shù)量,一般來講測試數(shù)據(jù)量越多越能客觀的反映算法的真實效果,但出于測試成本的考慮,不能窮其盡,一般以真實生產(chǎn)環(huán)境為參考,選取20%,如果生產(chǎn)環(huán)境數(shù)據(jù)量巨大,則選取1%~2%,或者更小。由于我們的生產(chǎn)環(huán)境數(shù)據(jù)量巨大,考慮到測試成本,我們選取了2W左右的圖片進(jìn)行測試。

測試集的獨立性

測試集的獨立性主要考慮測試數(shù)據(jù)集相互干擾導(dǎo)致測試結(jié)果的失真風(fēng)險。

我們以人臉檢索為例,我們準(zhǔn)備200組人臉測試數(shù)據(jù),每組為同一個人不同時期或角度的10張人臉照片,對人臉檢索算法模型指標(biāo)進(jìn)行計算時,如計算TOP10的精確率,此時若在數(shù)據(jù)庫中,存在以上200組人的其他照片時,便會對指標(biāo)計算結(jié)果造成影響,比如我們200組人臉中包含Jack,但數(shù)據(jù)庫中除了Jack的10張,還存在其他的8張Jack的照片。若算法微服務(wù)接口返回的TOP10圖片中有我們測試集中的Jack圖片6張,非測試集但在數(shù)據(jù)庫中的其他Jack照片2張,還有2張非Jack的照片,測試的精確率該如何計算,按照我們的測試集(已標(biāo)注)來看,精確率為60%,但實際精確率為80%,造成了精確率指標(biāo)計算結(jié)果的失真。

因此,我們在測試集數(shù)據(jù)準(zhǔn)備時,需考慮數(shù)據(jù)干擾,測試準(zhǔn)備階段對數(shù)據(jù)庫的其他測試數(shù)據(jù)進(jìn)行評估,比如從200組人臉測試數(shù)據(jù)組,進(jìn)行預(yù)測試,對相似度非常高的數(shù)據(jù)進(jìn)行研判,判斷是否為同一人,若是則刪除該照片或者不將該人從200組測試集中剔除。

測試集的準(zhǔn)確性

數(shù)據(jù)集的準(zhǔn)確性比較好理解,一般指的是數(shù)據(jù)標(biāo)注的準(zhǔn)確性,比如Jack的照片不應(yīng)標(biāo)注為Tom,照片模糊的特征不應(yīng)標(biāo)注為清晰。如果數(shù)據(jù)標(biāo)注錯誤,那么直接影響了算法模型指標(biāo)計算的結(jié)果。

對于測試集的準(zhǔn)備,為了提高測試集準(zhǔn)備效率及復(fù)用性,我們嘗試搭建了算法數(shù)倉平臺,實現(xiàn)數(shù)據(jù)(圖片)的在線標(biāo)注、存儲等功能,作為算法測試數(shù)據(jù)的同一獲取入口。

算法功能測試

以我現(xiàn)在接觸的人工智能系統(tǒng)而言,將算法以微服務(wù)接口的形式對外提供服務(wù),類似于百度AI開放平臺。

從人工智能 (AI)發(fā)展應(yīng)用看算法測試的測試策略

因此需要對算法微服務(wù)接口進(jìn)行功能性驗證,比如結(jié)合應(yīng)用場景從功能性、可靠性、可維護(hù)性角度對必填、非必填、參數(shù)組合驗證等進(jìn)行正向、異向的測試覆蓋。此處不多做介紹,同普通的API接口測試策略一致。

算法性能測試

微服務(wù)接口的性能測試大家也比較了解,對于算法微服務(wù)同樣需要進(jìn)行性能測試,如基準(zhǔn)測試、性能測試(驗證是否符合性能指標(biāo))、長短穩(wěn)定性能測試,都是算法微服務(wù)每個版本中需要測試的內(nèi)容,同時產(chǎn)出版本間的性能橫向?qū)Ρ龋兄阅茏兓?。常關(guān)注的指標(biāo)有平均響應(yīng)時間、95%響應(yīng)時間、TPS,同時關(guān)注GPU、內(nèi)存等系統(tǒng)資源的使用情況。

一般使用Jmeter進(jìn)行接口性能測試。不過,我們在實際應(yīng)用中為了將算法微服務(wù)接口的功能測試、性能測試融合到一起,以降低自動化測試開發(fā)、使用、學(xué)習(xí)成本,提高可持續(xù)性,我們基于關(guān)鍵字驅(qū)動、數(shù)據(jù)驅(qū)動的測試思想,利用Python Request、Locust模塊分別實現(xiàn)了功能、性能自定義關(guān)鍵字開發(fā)。每輪測試執(zhí)行完算法微服務(wù)功能自動化測試,若功能執(zhí)行通過,則自動拉起對應(yīng)不同執(zhí)行策略的性能測試用例,每次測試執(zhí)行結(jié)果都進(jìn)行存儲至數(shù)據(jù)庫中,以便輸出該算法微服務(wù)接口的不同版本性能各項指標(biāo)的比較結(jié)果。

算法模型評估指標(biāo)

從人工智能 (AI)發(fā)展應(yīng)用看算法測試的測試策略

首先,不同類型算法的其關(guān)注的算法模型評估指標(biāo)不同。

比如人臉檢測算法常以精確率、召回率、準(zhǔn)確率、錯報率等評估指標(biāo);人臉檢索算法常以TOPN的精確率、召回率、前N張連續(xù)準(zhǔn)確率。

其次,相同類型算法在不同應(yīng)用場景其關(guān)注的算法模型評估指標(biāo)也存在差異。

比如人臉檢索在應(yīng)用在高鐵站的人臉比對(重點人員檢索)的場景中,不太關(guān)注召回率,但對精確率要求很多,避免抓錯人,造成公共場所的秩序混亂。但在海量人臉檢索的應(yīng)用場景中,愿意犧牲部分精確率來提高召回率,因此在該場景中不能盲目的追求精準(zhǔn)率。

除了上述算法模型評估指標(biāo),我們還常用ROC、PR曲線來衡量算法模型效果的好壞。

從人工智能 (AI)發(fā)展應(yīng)用看算法測試的測試策略

 

從人工智能 (AI)發(fā)展應(yīng)用看算法測試的測試策略

我們在算法微服務(wù)功能、性能測試中介紹到,使用了基于關(guān)鍵字驅(qū)動、數(shù)據(jù)驅(qū)動的測試思想,利用Python Request、Locust模塊分別實現(xiàn)功能、性能自定義關(guān)鍵字開發(fā)??紤]到測試技術(shù)棧的統(tǒng)一以及可復(fù)用性,我們基于上述設(shè)計,實現(xiàn)了算法模型評估指標(biāo)的自定義關(guān)鍵字開發(fā),每次運行輸出相同測試集下的不同版本模型評估指標(biāo)的橫向比較。

當(dāng)然除了不同版本的比較模型評估指標(biāo)的比較,如果條件允許,我們還需要進(jìn)行一定的競品比較,比較與市場上相同類似的算法效果的差異,取長補短。

算法指標(biāo)結(jié)果分析

我們對算法模型指標(biāo)評估之后,除了感知算法模型評估指標(biāo)在不同版本的差異,還希望進(jìn)一步的進(jìn)行分析,已得到具體算法模型的優(yōu)化的優(yōu)化方向,這時候就需要結(jié)合數(shù)據(jù)的標(biāo)注信息進(jìn)行深度的分析,挖掘算法優(yōu)劣是否哪些數(shù)據(jù)特征的影響,影響程度如何。比如通過數(shù)據(jù)特征組合或者控制部分特征一致等方式,看其他特征對算法效果的影響程度等等。

這時候我們一般通過開發(fā)一些腳本實現(xiàn)我們的分析過程,根據(jù)算法微服務(wù)接口的響應(yīng)體以及數(shù)據(jù)準(zhǔn)備階段所標(biāo)注的數(shù)據(jù)特征,進(jìn)行分析腳本的開發(fā)。

另外指標(biāo)結(jié)果的進(jìn)一步分析,也要結(jié)合算法設(shè)計,比如人臉檢索算法,每張圖片的檢索流程為“輸入圖片的人臉檢測“ -> “輸入圖片的人臉特征提取“ -> “相似特征檢索“,通過此查詢流程不難看出人臉檢索的整體精確率受上述三個環(huán)節(jié)的影響,因此基于指標(biāo)結(jié)果的深度分析也需要從這三個層次入手。

算法測試報告

一般算法測試報告由以下幾個要素組成:

  • 算法功能測試結(jié)果
  • 算法性能測試結(jié)果
  • 算法模型評估指標(biāo)結(jié)果
  • 算法指標(biāo)結(jié)果分析

由于算法微服務(wù)測試的復(fù)雜度相對普通服務(wù)接口較高,在報告注意簡明扼要。

責(zé)任編輯:華軒 來源: 軟件測試開發(fā)技術(shù)棧
相關(guān)推薦

2017-06-22 13:26:37

人工智能發(fā)展歷史大數(shù)據(jù)

2022-03-10 16:27:54

人工智能企業(yè)高管職業(yè)發(fā)展

2022-05-24 12:05:36

Testin云測試

2018-12-27 11:25:19

人工智能機器學(xué)習(xí)無人駕駛

2019-01-17 16:15:08

人工智能互聯(lián)網(wǎng)機器人

2024-03-08 12:10:27

軟件測試AI

2024-03-01 18:11:43

軟件測試

2021-07-19 22:41:57

人工智能數(shù)據(jù)創(chuàng)業(yè)

2023-08-31 17:18:00

人工智能

2024-01-11 16:58:30

人工智能AI軟件測試

2021-08-24 19:30:43

AI人工智能

2022-10-12 10:12:24

軟件測試人工智能

2020-09-03 10:37:07

人工智能AI技術(shù)

2021-03-22 12:08:30

人工智能

2022-03-15 16:06:39

人工智能AI

2021-11-11 16:01:19

人工智能AI

2019-05-31 15:00:30

金融科技民生銀行人工智能

2018-01-10 08:30:10

移動應(yīng)用智能設(shè)備智能手機

2018-01-10 13:56:40

移動應(yīng)用測試策略測試架構(gòu)
點贊
收藏

51CTO技術(shù)棧公眾號