日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

【AI测试】机器学习项目的测试,算法测试

發(fā)布時(shí)間:2024/4/15 ChatGpt 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【AI测试】机器学习项目的测试,算法测试 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

一、算法測試

1、模型評估

2、魯棒性 (robustness)

3、模型安全

4、響應(yīng)速度

二、業(yè)務(wù)測試

三、白盒測試

四、模型監(jiān)控

五、算法測試學(xué)習(xí)入門


?

一、算法測試

1、模型評估

如何評估模型?可以通過泛化能力。泛化能力指的是學(xué)習(xí)方法對未知數(shù)據(jù)的預(yù)測能力。就好比運(yùn)動(dòng)員平時(shí)都是在訓(xùn)練場進(jìn)行訓(xùn)練,而評估運(yùn)動(dòng)員的真實(shí)實(shí)力要看在大賽中的表現(xiàn)。?我們實(shí)際希望的,是在新樣本上能表現(xiàn)得很好的學(xué)習(xí)器,為了達(dá)到這個(gè)目的,應(yīng)該從訓(xùn)練樣本中盡可能推演出適用于所有潛在樣本的“普通規(guī)律”這樣才能在遇到新樣本時(shí)做出正確的預(yù)測,泛化能力比較好。?當(dāng)學(xué)習(xí)器把訓(xùn)練樣本學(xué)得“太好”了的時(shí)候,很可能已經(jīng)把訓(xùn)練樣本自身的一些特點(diǎn)當(dāng)作了所有潛在樣本都會(huì)具有的一般性質(zhì),這樣就會(huì)導(dǎo)致泛化性能下降。這種現(xiàn)象在機(jī)器學(xué)習(xí)中稱為“過擬合“,與之相對是“欠擬合”指的是對訓(xùn)練樣本的一般性質(zhì)尚未學(xué)習(xí)。?有多種因素可能導(dǎo)致過擬合,其中最常見的情況是由于學(xué)習(xí)能力過于強(qiáng)大,以至于把訓(xùn)練樣本所包含的不太一般的特性都學(xué)到了,而欠擬合則通常是由于學(xué)習(xí)能力低下而造成的。

如何看泛化能力的好壞呢? 通過泛化誤差。?先解釋下各種名詞 ,從數(shù)據(jù)中分析得到模型的過程稱為“訓(xùn)練”,用于“訓(xùn)練”的數(shù)據(jù)稱為“訓(xùn)練數(shù)據(jù)”。其中每個(gè)樣本稱為一個(gè)“訓(xùn)練樣本”,訓(xùn)練樣本組成的集合稱為“訓(xùn)練集”,測試樣本組成的集合稱為“測試集”。?模型在訓(xùn)練集上的誤差通常稱為 “訓(xùn)練誤差” 或 “經(jīng)驗(yàn)誤差”,在測試集上的誤差通常稱為“測試誤差”,而在新樣本上的誤差稱為 “泛化誤差” 。機(jī)器學(xué)習(xí)的目的是得到泛化誤差小的學(xué)習(xí)器。然而,在實(shí)際應(yīng)用中,新樣本是未知的,所以?以測試集上的“測試誤差”作為泛化誤差的近似。使用一個(gè)“測試集”來測試學(xué)習(xí)器對新樣本的判別能力。需要注意的是,測試樣本盡量不在訓(xùn)練集中出現(xiàn)、未在訓(xùn)練過程中使用過。

performance measure是衡量模型的泛化能力的評價(jià)標(biāo)準(zhǔn)。?

  • 準(zhǔn)確率(accuracy)
  • 精確率(precision)==查準(zhǔn)率、召回率( recall)==查全率,F1值 ,ROC與AUC —分類算法評價(jià)指標(biāo)?F1值 是精確率和召回率的調(diào)和均值?
  • MSE(均方誤差),RMSE(均方根誤差),MAE(平均絕對誤差)、R-Squared(擬合度) —-回歸算法評價(jià)指標(biāo)

都是評估模型好壞的指標(biāo),相互之間有一定關(guān)系,只是側(cè)重點(diǎn)會(huì)不同。?

1)準(zhǔn)確率(accuracy)

對于給定的測試數(shù)據(jù)集,分類器正確分類的樣本數(shù)與總樣本數(shù)之比,是最常見也是最基本的評價(jià)算法性能指標(biāo)。?有些場景下,只看這一個(gè)指標(biāo)是不夠的。比如 :?在二分類中,當(dāng)正反比例不平衡的情況下,尤其是當(dāng)我們對少數(shù)的分類更感興趣的時(shí)時(shí)候,準(zhǔn)確率評價(jià)基本就沒什么參考價(jià)值。?舉個(gè)例子:有個(gè)100條樣本數(shù)據(jù)的測試集,其中80個(gè)正例,20個(gè)反例。那如果模型把所有樣本都預(yù)測為正例,那模型的準(zhǔn)確率至少都是80%。當(dāng)模型遇到新樣本時(shí),它都區(qū)分不出一個(gè)反例。這種模型也就沒用了。

2)精確率和召回率

精確率是針對我們預(yù)測結(jié)果而言的,它表示的是預(yù)測為正的樣本中有多少是真正的正樣本。?而召回率是針對我們原來的樣本而言的,它表示的是樣本中的正例有多少被預(yù)測正確了。?一般來說,精確率高時(shí),召回率往偏低,而精確率低時(shí),召回率偏高。?只有在一些簡單的任務(wù)中才可能使精確率和召回率都很高。

精確率和召回率 實(shí)例?

3)評價(jià)指標(biāo)跑出來看又怎么評判呢??

這里運(yùn)行得出的準(zhǔn)確率是0.96,好還是不好呢,是否可以測試通過。要1.0準(zhǔn)確率才測試通過嗎?

看實(shí)際項(xiàng)目的應(yīng)用場景、目前的技術(shù)水平、產(chǎn)品經(jīng)理的需求定義,測試人員把各指標(biāo)值反饋出來,在測試報(bào)告中體現(xiàn)出來。

比如說無人駕駛,如果它的準(zhǔn)確率是96%,大家會(huì)不會(huì)去坐無人駕駛的汽車呢?反正我是不敢的,這是在用生命來測試算法。?我們來看下2016年的新聞 ,百度自動(dòng)駕駛負(fù)責(zé)人王勁 2016年9月 ,去年的這個(gè)時(shí)候,我們的圖象識(shí)別,識(shí)別汽車這一項(xiàng),剛好也是89%。我們認(rèn)為這個(gè)89%,要達(dá)到97%的準(zhǔn)確率,需要花的時(shí)間,會(huì)遠(yuǎn)遠(yuǎn)超過5年。而人類要實(shí)現(xiàn)無人駕駛,主要靠攝像頭來實(shí)現(xiàn)安全的保障的話,我們認(rèn)為要多少呢?我們認(rèn)為起碼這個(gè)安全性的保障,要達(dá)到99.9999%,所以這個(gè)是一個(gè)非常非常遠(yuǎn)的一條路。我們認(rèn)為不是5年,10年能夠達(dá)得到的。?一般的人工智能系統(tǒng),如搜索、翻譯等可允許犯錯(cuò),而無人駕駛系統(tǒng)與生命相關(guān),模型性能要求很高。

2、魯棒性 (robustness)

魯棒性也就是所說健壯性,簡單來說就是在模型在一些異常數(shù)據(jù)情況下是否也可以比較好的效果。?也就是我們在最開始講人工智能三個(gè)特征中的 處理不確定性的能力。?比如人臉識(shí)別,對于模糊的圖片,人帶眼鏡,頭發(fā)遮擋,光照不足等情況下的模型表現(xiàn)情況。?算法魯棒性的要求簡單來說就是 “好的時(shí)候”要好,“壞的時(shí)候”不能太壞。?在AlphaGo 和李世石對決中,李世石是贏了一盤的。李世石九段下出了“神之一手”?Deepmind 團(tuán)隊(duì)透露:錯(cuò)誤發(fā)生在第79手,但AlphaGo直到第87手才發(fā)覺,這期間它始終認(rèn)為自己仍然領(lǐng)先。這里點(diǎn)出了一個(gè)關(guān)鍵問題:魯棒性。人類犯錯(cuò):水平從九段降到八段。機(jī)器犯錯(cuò):水平從九段降到業(yè)余。?

測試方法就是用盡可能多的異常數(shù)據(jù)來覆蓋進(jìn)行測試。

3、模型安全

攻擊方法有:試探性攻擊、對抗性攻擊兩種。

  • 試探性攻擊:攻擊者的目的通常是通過一定的方法竊取模型,或是通過某種手段恢復(fù)一部分訓(xùn)練機(jī)器學(xué)習(xí)模型所用的數(shù)據(jù)來推斷用戶的某些敏感信息。?主要分為模型竊取和訓(xùn)練數(shù)據(jù)竊取?
  • 對抗性攻擊:對數(shù)據(jù)源進(jìn)行細(xì)微修改,讓人感知不到,但機(jī)器學(xué)習(xí)模型接受該數(shù)據(jù)后做出錯(cuò)誤的判斷。?比如圖中的雪山,原本的預(yù)測準(zhǔn)確率為94%,加上噪聲圖片后,就有99.99%的概率識(shí)別為了狗。?

目前模型安全還是比較難的領(lǐng)域,像構(gòu)造對抗性樣本,這里就簡單介紹下一下。

4、響應(yīng)速度

響應(yīng)速度是指從數(shù)據(jù)輸入到模型預(yù)測輸出結(jié)果的所需的時(shí)間。對算法運(yùn)行時(shí)間的評價(jià)。?

測試方法:?

time.time() / time.clock()?

time命令?

time python test.py?

定義裝飾器timethis,將裝飾器放在函數(shù)定義之前?

這里只是簡單看下模型運(yùn)行所需的時(shí)間。并沒有涉及大數(shù)據(jù)集群,分布式下的算法性能。

二、業(yè)務(wù)測試

包括業(yè)務(wù)邏輯測試,業(yè)務(wù) & 數(shù)據(jù)正確性測試。主要關(guān)注業(yè)務(wù)代碼是否符合需求,邏輯是否正確,業(yè)務(wù)異常處理等情況。可以讓產(chǎn)品經(jīng)理提供業(yè)務(wù)的流程圖,對整體業(yè)務(wù)流程有清晰的了解。業(yè)務(wù)測試大家肯定都非常熟悉了,都是相通的,這里不花時(shí)間介紹啦。

三、白盒測試

白盒測試方法有很多,這里以只說下代碼靜態(tài)檢查。?先讓算法工程師將代碼的邏輯給測試人員講解,通過講解理清思路。?然后測試做代碼靜態(tài)檢查,看是否會(huì)有基本的bug。?工具的話使用pylint來做代碼分析。

四、模型監(jiān)控

服務(wù)監(jiān)控大家應(yīng)該都知道,這里就不介紹了。只說下模型監(jiān)控。?項(xiàng)目發(fā)布到線上后,模型在線上持續(xù)運(yùn)行,需要以固定間隔檢測項(xiàng)目模型的實(shí)時(shí)表現(xiàn),可以是每隔半個(gè)月或者一個(gè)月,通過性能指標(biāo)對模型進(jìn)行評估。對各指標(biāo)設(shè)置對應(yīng)閥值,當(dāng)?shù)陀陂y值觸發(fā)報(bào)警。如果模型隨著數(shù)據(jù)的演化而性能下降,說明模型已經(jīng)無法擬合當(dāng)前的數(shù)據(jù)了,就需要用新數(shù)據(jù)訓(xùn)練得到新的模型。機(jī)器學(xué)習(xí)算法項(xiàng)目的測試就介紹到這里。

五、算法測試學(xué)習(xí)入門

機(jī)器學(xué)習(xí)理論和實(shí)戰(zhàn)書籍視頻推薦,給有興趣學(xué)習(xí)機(jī)器學(xué)習(xí)的同學(xué)。?

總結(jié)

以上是生活随笔為你收集整理的【AI测试】机器学习项目的测试,算法测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。