眾所周知,人工智能的測(cè)試具有相當(dāng)大的難度,不論是以前在互聯(lián)網(wǎng)就經(jīng)常看到的內(nèi)容推薦系統(tǒng),還是金融領(lǐng)域常用的信息分類系統(tǒng)。測(cè)試介入的都不多。那么如何測(cè)試人工智能相關(guān)的產(chǎn)品。
我們最常做的測(cè)試其實(shí)就是直接看模型效果,效果不好就慢慢調(diào)。 為了改變這種現(xiàn)狀,我們希望測(cè)試人員也能做一些事情,參與到人工智能服務(wù)的質(zhì)量保證當(dāng)中來(lái)。在日常工作中總結(jié)了一些經(jīng)驗(yàn)跟大家討論一下。
什么是人工智能
簡(jiǎn)而言之,現(xiàn)階段的人工智能就是:人工智能=大數(shù)據(jù)+機(jī)器學(xué)習(xí)。
現(xiàn)階段的人工智能是使用機(jī)器學(xué)習(xí)算法在大量的歷史數(shù)據(jù)下進(jìn)行訓(xùn)練,從歷史數(shù)據(jù)中找到一定的規(guī)律并對(duì)未來(lái)做出的預(yù)測(cè)行為。舉例說(shuō)明,就好比銀行做過(guò)的反欺詐項(xiàng)目。
在銀行里有一群專家,他們的工作就是根據(jù)經(jīng)驗(yàn)向系統(tǒng)中輸入一些規(guī)則。例如某一張卡在一個(gè)城市有了一筆交易,之后1小時(shí)內(nèi)在另一個(gè)城市又有了一筆交易。這些專家根據(jù)以前的經(jīng)驗(yàn)判斷這種情況是有盜刷的風(fēng)險(xiǎn)的。
他們?cè)谙到y(tǒng)中輸入了幾千條這樣的規(guī)則,組成了一個(gè)專家系統(tǒng)。 這個(gè)專家系統(tǒng)是建立在人類對(duì)過(guò)往的數(shù)據(jù)所總結(jié)出的經(jīng)驗(yàn)下建立的。 后來(lái)我們引入了機(jī)器學(xué)習(xí)算法,對(duì)過(guò)往所有的歷史數(shù)據(jù)進(jìn)行訓(xùn)練,最后在25億個(gè)特征中抽取出8000萬(wàn)條有效特征。
我們把這些特征就暫且當(dāng)成是專家系統(tǒng)中的規(guī)則。8000萬(wàn)對(duì)不到1萬(wàn),效果是可以預(yù)想的。當(dāng)時(shí)對(duì)第一版模型上線后的數(shù)據(jù)做統(tǒng)計(jì),反欺詐效果提升了7倍, 這就是二分類算法典型的業(yè)務(wù)場(chǎng)景。
為什么叫機(jī)器學(xué)習(xí)呢,因?yàn)樗o人一種感覺(jué),機(jī)器能像人類一樣從過(guò)去的數(shù)據(jù)中學(xué)習(xí)到經(jīng)驗(yàn),只不過(guò)機(jī)器的能力更強(qiáng)。 如果想再稍微深究一下機(jī)器學(xué)習(xí)訓(xùn)練出來(lái)的模型到底是什么,那大家可以暫且理解為一個(gè)二分類的模型主要是就是一個(gè)key,value的數(shù)據(jù)庫(kù)。
key就是在數(shù)據(jù)中抽取出來(lái)的特征,value就是這個(gè)特征的權(quán)重。 當(dāng)我們想要預(yù)測(cè)一個(gè)用戶的行為的時(shí)候,就會(huì)從用戶的數(shù)據(jù)中提取特征并在模型中查找對(duì)應(yīng)的權(quán)重。 最后根據(jù)這些特征的權(quán)重算出一個(gè)分,也可以說(shuō)是一個(gè)概率。 如果大家看過(guò)最強(qiáng)大腦這個(gè)節(jié)目的話。
應(yīng)該記得第一次人機(jī)大戰(zhàn)項(xiàng)目是人臉識(shí)別,第三回合的時(shí)候機(jī)器給出了兩個(gè)答案。因?yàn)楫?dāng)時(shí)做人臉識(shí)別項(xiàng)目的志愿者中有一對(duì)雙胞胎。所以機(jī)器計(jì)算出的這兩個(gè)人的概率只差了0.1%,最后為了謹(jǐn)慎起見(jiàn)機(jī)器輸出兩個(gè)答案出來(lái)。以至于吳恩達(dá)先生也很糾結(jié)到底該選哪一個(gè)答案。
再之后的人機(jī)對(duì)戰(zhàn)項(xiàng)目里我們也能看到雖然小度一路高歌,毫無(wú)敗績(jī)。但是其中是有選錯(cuò)過(guò)幾次的。所以大家可以看到我們得到的答案其實(shí)是一個(gè)概率,是一個(gè)根據(jù)以往的數(shù)據(jù)進(jìn)行總結(jié)并作出預(yù)測(cè)的一個(gè)行為。并不是100%準(zhǔn)確的。即便是阿爾法狗當(dāng)初也是輸過(guò)一局的。所以其實(shí)我們測(cè)試的痛點(diǎn)也就來(lái)了,你怎么測(cè)試一個(gè)概率呢。
這個(gè)圖就是一個(gè)人工智能服務(wù)的略縮圖。 在歷史數(shù)據(jù)上訓(xùn)練出模型,并發(fā)布一個(gè)預(yù)測(cè)服務(wù),這個(gè)預(yù)測(cè)服務(wù)可能就是一個(gè)http的接口。 然后新的數(shù)據(jù)過(guò)來(lái)以后,根據(jù)模型算出一個(gè)預(yù)測(cè)值。經(jīng)過(guò)剛才的說(shuō)明,我們看到數(shù)據(jù)是人工智能的根本。擁有的數(shù)據(jù)越多,越豐富,越真實(shí),那么訓(xùn)練出的模型效果越好。
測(cè)試思路
·數(shù)據(jù)測(cè)試
·分層測(cè)試
·訓(xùn)練集與測(cè)試集對(duì)比
數(shù)據(jù)測(cè)試
根據(jù)我們之前對(duì)人工智能的定義,我們發(fā)現(xiàn)數(shù)據(jù)是人工智能的根據(jù)。 保證數(shù)據(jù)的正確定是非常必要的。 而且?guī)缀跛械臋C(jī)器學(xué)習(xí)算法對(duì)數(shù)據(jù)的容錯(cuò)能力都很強(qiáng),即便數(shù)據(jù)稍有偏差,它們也能通過(guò)一次一次的迭代和對(duì)比來(lái)減少誤差。 所以即便我們的數(shù)據(jù)有一點(diǎn)問(wèn)題最后得出的模型效果可能還不差, 但是這個(gè)時(shí)候我們不能認(rèn)為模型就沒(méi)問(wèn)題了。 因?yàn)楹芸赡茉谀承┨囟▓?chǎng)景下就會(huì)出現(xiàn)雪崩效應(yīng)。