
谷歌研究(Google Research)主管、知名人工智能專家Peter Norvig最近在出席MIT的EmTech Digital大會(huì)時(shí),發(fā)表了一些與主流人工智能和機(jī)器學(xué)習(xí)不同的觀點(diǎn)。他將機(jī)器學(xué)習(xí)和傳統(tǒng)軟件編程進(jìn)行了比較,強(qiáng)調(diào)我們所設(shè)計(jì)的機(jī)器學(xué)習(xí),在系統(tǒng)調(diào)試和驗(yàn)證上存在全新挑戰(zhàn)。
傳統(tǒng)軟件編程使用的是基于布爾數(shù)學(xué)體系的邏輯,按照這種邏輯,可以測(cè)試確認(rèn)軟件是否符合其設(shè)計(jì)初衷,在過去的幾十年里,人們正是利用這一邏輯構(gòu)建了各種軟件調(diào)試工具和方法。
相比之下,機(jī)器學(xué)習(xí)更像是一個(gè)黑盒子編程方法,計(jì)算機(jī)程序自己有數(shù)據(jù),自己可以生成概率邏輯,和基于傳統(tǒng)布爾數(shù)學(xué)邏輯的“true&false”測(cè)試調(diào)試方法來驗(yàn)證系統(tǒng)完成不同。

對(duì)比傳統(tǒng)編程,Norvig歸納總結(jié)了機(jī)器學(xué)習(xí)驗(yàn)證的情形:
“現(xiàn)在的問題是,能夠擴(kuò)展應(yīng)用到整個(gè)人工智能行業(yè)的機(jī)器學(xué)習(xí)驗(yàn)證方法,仍未成型。我們已經(jīng)在這方面做了很多努力,投入了時(shí)間;對(duì)于如何使之奏效,我們也有了一點(diǎn)眉目,但是,相比于普通軟件開發(fā)和驗(yàn)證數(shù)十年的經(jīng)驗(yàn),機(jī)器學(xué)習(xí)調(diào)試明顯還沒有達(dá)到預(yù)期。”
如果調(diào)試機(jī)器學(xué)習(xí)如此困難,為什么還要使用它呢?盡管機(jī)器學(xué)習(xí)驗(yàn)證目前存在局限性,但是它在開發(fā)速度上依然具有一定優(yōu)勢(shì)。針對(duì)某些特定問題,比如語音識(shí)別或圖像分類,復(fù)雜系統(tǒng)解決方案可以比傳統(tǒng)編程方法快一倍、兩倍、甚至三倍。舉個(gè)例子,芯片制造商N(yùn)vidia公司工程師對(duì)一款自動(dòng)駕駛汽車原型編寫了100小時(shí)的訓(xùn)練數(shù)據(jù)程序。應(yīng)用機(jī)器學(xué)習(xí)生產(chǎn)力對(duì)程序員來說極具吸引力,他們需要使用它,要求全新的驗(yàn)證方法。
事實(shí)上,調(diào)試機(jī)器學(xué)習(xí)的出發(fā)點(diǎn)就是要區(qū)分相關(guān)問題固有的風(fēng)險(xiǎn)和危害,以及來自于問題發(fā)解決方案的技術(shù)的風(fēng)險(xiǎn)和危害。只有后者,也就是技術(shù)解決方案內(nèi)部固有的風(fēng)險(xiǎn)和危害能夠被控制。
非定常性條件影響了傳統(tǒng)編程和機(jī)器學(xué)習(xí)。所謂非定常性,就是指隨著時(shí)間的過去,條件發(fā)生了變化,一開始,在相同條件下設(shè)計(jì)的系統(tǒng)非常有效,但慢慢地開始逐漸表現(xiàn)不佳。在傳統(tǒng)編程中,當(dāng)要發(fā)布一個(gè)開發(fā)新程序時(shí),一般會(huì)先使用可驗(yàn)證的調(diào)試流程進(jìn)行測(cè)試和驗(yàn)證,之后才會(huì)正式發(fā)布。
但在機(jī)器學(xué)習(xí)中,似乎遺失了這種驗(yàn)證,因?yàn)闄C(jī)器學(xué)習(xí)并不適合傳統(tǒng)編程技術(shù)那套步進(jìn)式的流程:開發(fā)、測(cè)試、最后發(fā)布。在機(jī)器學(xué)習(xí)里,會(huì)不斷生成數(shù)據(jù),然后同時(shí)再被機(jī)器學(xué)習(xí)系統(tǒng)不斷獲取,機(jī)器學(xué)習(xí)系統(tǒng)會(huì)進(jìn)行再編程,繼而導(dǎo)致那種步進(jìn)式方法不能實(shí)行。
針對(duì)機(jī)器學(xué)習(xí)驗(yàn)證問題,Norvig解釋了自己的想法。傳統(tǒng)測(cè)試套件認(rèn)定是基于“true”、“false”、以及“equal”這些條件判斷,而機(jī)器學(xué)習(xí)的測(cè)試認(rèn)定則應(yīng)該是根據(jù)評(píng)估測(cè)驗(yàn),比如今天的試驗(yàn)結(jié)果90%不錯(cuò),并且和昨天測(cè)試運(yùn)行的結(jié)果一致。
除了驗(yàn)證的問題很麻煩以外,驗(yàn)證機(jī)器學(xué)習(xí)系統(tǒng)產(chǎn)品所依據(jù)的事實(shí)很有可能是未知的,或者是主觀性很強(qiáng)的。設(shè)想一下,例如我們?cè)O(shè)計(jì)一個(gè)機(jī)器學(xué)習(xí)系統(tǒng)來判斷下圖的這條裙子是金色搭配白色的,還是藍(lán)色和黑色的,這問題連人類之間都沒法達(dá)成一致。

Norvig解釋說:“對(duì)于一些問題,我們根本不知道正確答案是什么。因此,你又怎么可能訓(xùn)練一個(gè)機(jī)器學(xué)習(xí)算法判斷某些根本沒有答案的問題呢?”在Norvig看來,讓機(jī)器學(xué)習(xí)尋求正確答案,只能依靠一種無偏見的方法,比如引入“陪審團(tuán)”機(jī)制。人類生成數(shù)據(jù)去訓(xùn)練機(jī)器學(xué)習(xí),然而人類本身就是具有偏見的,因此即便是在這種模式下,機(jī)器學(xué)習(xí)依然會(huì)存在一定偏見。要想匹配機(jī)器學(xué)習(xí)系統(tǒng)是否符合它們的設(shè)計(jì)初衷,評(píng)估的方法必須要能夠識(shí)別并擯除偏見。
傳統(tǒng)軟件是模塊化的,每個(gè)模塊的輸入和輸出都是獨(dú)立的,因此很容易識(shí)別出哪個(gè)模塊是bug。然而在機(jī)器學(xué)習(xí)中,盡管系統(tǒng)是利用數(shù)據(jù)進(jìn)行開發(fā)的,但在系統(tǒng)內(nèi)部,任何bug都能會(huì)被復(fù)制,最終導(dǎo)致“牽一發(fā)而動(dòng)全身”。雖然我們可以使用一些技巧去理解機(jī)器學(xué)習(xí)內(nèi)部有錯(cuò)誤,也有再訓(xùn)練機(jī)器學(xué)習(xí)系統(tǒng)的方法,但目前還沒有辦法能解決其中任何一個(gè)獨(dú)立問題。
在Norvig看來,解決機(jī)器學(xué)習(xí)debug問題需要一個(gè)更好的工具集,而整個(gè)工具集需要向前發(fā)展、更新。