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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

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

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

目錄

一、算法測試

1、模型評估

2、魯棒性 (robustness)

3、模型安全

4、響應速度

二、業務測試

三、白盒測試

四、模型監控

五、算法測試學習入門


?

一、算法測試

1、模型評估

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

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

performance measure是衡量模型的泛化能力的評價標準。?

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

都是評估模型好壞的指標,相互之間有一定關系,只是側重點會不同。?

1)準確率(accuracy)

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

2)精確率和召回率

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

精確率和召回率 實例?

3)評價指標跑出來看又怎么評判呢??

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

看實際項目的應用場景、目前的技術水平、產品經理的需求定義,測試人員把各指標值反饋出來,在測試報告中體現出來。

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

2、魯棒性 (robustness)

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

測試方法就是用盡可能多的異常數據來覆蓋進行測試。

3、模型安全

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

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

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

4、響應速度

響應速度是指從數據輸入到模型預測輸出結果的所需的時間。對算法運行時間的評價。?

測試方法:?

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

time命令?

time python test.py?

定義裝飾器timethis,將裝飾器放在函數定義之前?

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

二、業務測試

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

三、白盒測試

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

四、模型監控

服務監控大家應該都知道,這里就不介紹了。只說下模型監控。?項目發布到線上后,模型在線上持續運行,需要以固定間隔檢測項目模型的實時表現,可以是每隔半個月或者一個月,通過性能指標對模型進行評估。對各指標設置對應閥值,當低于閥值觸發報警。如果模型隨著數據的演化而性能下降,說明模型已經無法擬合當前的數據了,就需要用新數據訓練得到新的模型。機器學習算法項目的測試就介紹到這里。

五、算法測試學習入門

機器學習理論和實戰書籍視頻推薦,給有興趣學習機器學習的同學。?

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。