一文讀懂這門超越深度學(xué)習(xí)的新AI編程語言Gen
AI的快速發(fā)展激起了很多人的學(xué)習(xí)熱情,但是初學(xué)者苦于大量的手動(dòng)編程而止步不前,有沒有一種編程語言可以讓那些在計(jì)算機(jī)科學(xué)和數(shù)學(xué)領(lǐng)域?qū)I(yè)知識(shí)較少的人,也能使用簡(jiǎn)潔的代碼量來完成具體的AI應(yīng)用呢?
今天為大家推薦一個(gè)專門用來預(yù)測(cè)的復(fù)雜模型和推理算法——Gen。下面隨文摘菌一起來看看它的“前生今世”。
Gen問世之前的AI學(xué)習(xí)庫(框架)
在2015年,谷歌發(fā)布了一個(gè)采用數(shù)據(jù)流圖進(jìn)行數(shù)值計(jì)算的開放源代碼應(yīng)用程序軟件庫TensorFlow(基于數(shù)據(jù)流編程的符號(hào)數(shù)學(xué)系統(tǒng)),它可以幫助初學(xué)者和專家自動(dòng)生成機(jī)器學(xué)習(xí)系統(tǒng),而不需要做太多數(shù)學(xué)運(yùn)算。這個(gè)平臺(tái)現(xiàn)在被廣泛的使用,希望幫助人工智能在某些方面實(shí)現(xiàn)民主化。
盡管它是自動(dòng)且高效的,但是與人工智能的廣泛前景相比,它的重點(diǎn)僅限于深度學(xué)習(xí)模式,總的來說這種模式既昂貴又有局限性。
但是現(xiàn)在有很多可用的人工智能技術(shù),比如統(tǒng)計(jì)和概率模型,以及仿真引擎。其他一些概率編程系統(tǒng)雖然足夠靈活,能夠覆蓋多種人工智能技術(shù),但他們的運(yùn)行效率很低。
Gen“緣起”
鑒于之前的AI應(yīng)用開發(fā)框架不太靈活,研究人員試圖研究一套系統(tǒng)以將自動(dòng)化、靈活性和高效性都融合在一起,但Mansinghka(一位研究人員)說,“如果我們可以做到這樣,也許我們可以通過更廣泛的建模和推理算法集合來幫助實(shí)現(xiàn)民主化,就像TensorFlow一樣有助于深度學(xué)習(xí)的研究。”
MIT的一隊(duì)研究人員一直致力于使初學(xué)者快速入門人工智能,與此同時(shí),他們的研究也幫助這一領(lǐng)域的專家不斷取得了進(jìn)步。研究人員發(fā)現(xiàn),在基于概率的人工智能中,用推理算法對(duì)數(shù)據(jù)進(jìn)行運(yùn)算,并根據(jù)新數(shù)據(jù)不斷調(diào)整概率來進(jìn)行預(yù)測(cè)。這樣做最終會(huì)生成一個(gè)可以對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)的模型。
基于他們?cè)缙诟怕示幊滔到y(tǒng)“Church”中使用的概念,研究人員將幾種自定義的建模語言融入MIT開發(fā)的通用編程語言“Julia”中。每種建模語言都針對(duì)不同類型的人工智能建模方法進(jìn)行了優(yōu)化,使其變得更加通用。Gen還使用了各種不同的方法,例如優(yōu)選法、變分推理、概率統(tǒng)計(jì)法和機(jī)器學(xué)習(xí),為推理任務(wù)提供高級(jí)基礎(chǔ)設(shè)施。除此之外,研究人員還進(jìn)行了一些優(yōu)化調(diào)整,以使其實(shí)現(xiàn)有效運(yùn)行。
同時(shí),本周召開的程序設(shè)計(jì)語言設(shè)計(jì)與實(shí)現(xiàn)大會(huì)上,研究者們做了一場(chǎng)以新型概率編程系統(tǒng)——Gen為題的演說,用戶從不同的AI技術(shù)應(yīng)用領(lǐng)域編寫模型和算法,這些領(lǐng)域涉及到計(jì)算機(jī)視覺、機(jī)器人和統(tǒng)計(jì)學(xué),而這些模型算法可以代替人去解決,那些復(fù)雜公式和手工編寫高性能代碼。
為什么要使用Gen?
舉例來說,在研究者的文章中提到,一個(gè)簡(jiǎn)短的Gen編程,可以推斷3D身體姿勢(shì),而這種復(fù)雜的計(jì)算機(jī)視覺推斷任務(wù)需要用到自動(dòng)系統(tǒng)、人機(jī)交互、增強(qiáng)現(xiàn)實(shí)等技術(shù)。而在屏幕之后,這些程序包括了那些組成執(zhí)行圖像渲染、深度學(xué)習(xí)和其他種類的概率模擬的組件。這些不同技術(shù)的結(jié)合使這項(xiàng)任務(wù)比一些研究人員早期開發(fā)的系統(tǒng)具有更高的準(zhǔn)確性和速度。
研究表明,不管是初學(xué)者還是專家都能非常輕易地上手Gen,因?yàn)樗褂闷饋矸浅:?jiǎn)單,且在某些用例中是自動(dòng)化的。一位電氣工程和計(jì)算機(jī)科學(xué)系的Marco Cusumano Towner博士說,“這個(gè)項(xiàng)目的一個(gè)動(dòng)機(jī)就是讓那些在計(jì)算機(jī)科學(xué)和數(shù)學(xué)領(lǐng)域?qū)I(yè)知識(shí)較少的人,更容易地使用自動(dòng)化人工智能”,他還說“我們同樣也希望提高生產(chǎn)率,這意味著讓專家更容易地高速迭代和原型化他們的人工智能系統(tǒng)”。
研究人員還演示了Gen通過使用另一個(gè)Gen的程序來簡(jiǎn)化數(shù)據(jù)分析的能力,該程序可以自動(dòng)生成復(fù)雜的統(tǒng)計(jì)模型,通常用來供專家分析、解釋和預(yù)測(cè)數(shù)據(jù)中基本趨勢(shì)。它與早期需要大量手工編碼才能進(jìn)行準(zhǔn)確預(yù)測(cè)的系統(tǒng)不同,建立在研究人員先前工作的基礎(chǔ)上,它只需要讓用戶編寫幾行代碼就可以揭示和了解金融走勢(shì)、航空旅行、投票方式以及疾病傳播等的趨勢(shì)。
一位大腦與認(rèn)知科學(xué)部門負(fù)責(zé)概率計(jì)算機(jī)項(xiàng)目的研究員Vikash K.Mansinghka說,“Gen是第一個(gè)靈活高效自動(dòng)化的系統(tǒng),擁有最先進(jìn)的性能,能夠覆蓋計(jì)算機(jī)視覺和數(shù)據(jù)科學(xué)中不同類型的事例。”
Uber的首席科學(xué)家兼人工智能副總裁、劍橋大學(xué)教授Zoubin Ghahramani雖然沒有參與這一項(xiàng)目,但是他說,“概率規(guī)劃是自機(jī)器學(xué)習(xí)出現(xiàn)以來,人工智能最有前景的領(lǐng)域之一。Gen代表了這一領(lǐng)域的顯著的進(jìn)步,將有助于實(shí)現(xiàn)基于概率推理的人工智能系統(tǒng)的可擴(kuò)展性和實(shí)際性發(fā)展。”
同樣也沒有參與此項(xiàng)研究的谷歌研究主管Peter Norving也贊揚(yáng)了這項(xiàng)工作,他說,“Gen允許解決問題的人使用概率規(guī)劃,如此對(duì)問題有一個(gè)更為原則性的方法,但不受概率規(guī)劃系統(tǒng)設(shè)計(jì)者的選擇所限制。”他還說,“通用編程語言……之所以成功是因?yàn)?,它們?span id="k6zqhab033oa" class="wpcom_tag_link">程序員更容易完成任務(wù),同時(shí)也使程序員能創(chuàng)造出全新的東西來有效地解決新問題。Gen對(duì)于概率規(guī)劃也是這樣做的。”
探索“Gen”的本質(zhì)
鋪墊了這么多,那么Gen是怎么實(shí)現(xiàn)的呢?
下文將以論文的第三、四部分為例,介紹實(shí)現(xiàn)的機(jī)理,文摘菌略過了論文中枯燥的公式推理,先說明下原理吧,感興趣的讀者可以閱讀論文原文。
原文鏈接:
http://delivery.acm.org/10.1145/3320000/3314642/pldi19main-p645-p.pdf?ip=118.144.138.198&id=3314642&acc=OA&key=4D4702B0C3E38B35%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35%2EE959BD37CA561672&__acm__=1562839037_72bcb9e83ef52bd8c297ff545e867515
Generative Function Interface(生成函數(shù)接口)以下簡(jiǎn)稱GFI,GFI是一個(gè)“黑盒子”,用來實(shí)現(xiàn)建模語言和特定推理算法之間的接口,Generative Function (生成函數(shù))由建模語言編輯器生成,具體實(shí)現(xiàn)過程是這樣的:
- 用戶將需要實(shí)現(xiàn)的功能使用@gen語法描述;
- 將語法描述交由動(dòng)態(tài)建模語言編譯器生成Generative Function;
- 通過Generative Function實(shí)現(xiàn)GFI
為了理解下文先介紹兩個(gè)名詞:
- Choice Map是地址到真實(shí)值之間的映射
- Generative Function表示為元組的形式:G = (X, Y, f ,p,q)
接口方法
論文中介紹了5種接口方法:
- generate (對(duì)約束條件的trace)-參數(shù):u(Choice Map)、x-以映射集合u和參數(shù)x作為輸入并返回結(jié)果;
- propose-參數(shù)x-返回t(Choice Map)、權(quán)重w;
- assess(評(píng)估Choice Map的可能性):此方法評(píng)估和計(jì)算由Generative Function生成的特定Choice Map(u)的可能性;
- update:更新方法調(diào)整執(zhí)行trace的(t,x)中的隨機(jī)選擇,這是迭代推理算法中的常見模式,例如MCMC和MAP優(yōu)化;
- choice_gradients:choice_gradients(differentiation)此方法計(jì)算跟蹤的對(duì)數(shù)概率的梯度參數(shù)x和/或隨機(jī)值的值選擇。
具體的執(zhí)行過程參照下圖foo()函數(shù)的trace和choice map的生成過程。
系統(tǒng)總覽
下面將以一個(gè)回歸任務(wù)為例,演示Gen的編程風(fēng)格:
a圖給定數(shù)據(jù)集(x,y),需要推斷x,y之間的關(guān)系,并檢測(cè)異常值,這是一個(gè)典型的回歸問題;b圖是用@gen語法生成的描述模式;c圖是b圖的生成地址空間;f和g圖展示出了在“Julia”(上文提到的MIT開發(fā)的通用編程語言)中實(shí)現(xiàn)的兩個(gè)用戶程序,每一個(gè)程序?qū)崿F(xiàn)了一種不同的算法來解決任務(wù),結(jié)果表現(xiàn)出不同的效率,如圖h所示。
實(shí)驗(yàn)室外的“Gen”:Gen的工業(yè)應(yīng)用
講了這么多,Gen有沒有開源?在工業(yè)界有使用案例嗎?請(qǐng)看下文:
外部用戶已經(jīng)找到了利用Gen進(jìn)行人工智能研究的方法。例如,英特爾正在與MIT合作運(yùn)用其用于機(jī)器人和增強(qiáng)現(xiàn)實(shí)系統(tǒng)的深度感應(yīng)攝像頭,利用Gen進(jìn)行3D姿態(tài)估計(jì)。MIT林肯實(shí)驗(yàn)室也在合作研究Gen在航空機(jī)器人領(lǐng)域的應(yīng)用,以實(shí)現(xiàn)其在人道主義救援和災(zāi)難應(yīng)急響應(yīng)方面的應(yīng)用。
MIT一直致力于人工智能的研究,因此Gen開始被用于雄心勃勃的人工智能項(xiàng)目。例如,Gen是MIT和IBM沃森人工智能實(shí)驗(yàn)室項(xiàng)目的核心,美國(guó)國(guó)防部高級(jí)研究項(xiàng)目計(jì)劃局也將其應(yīng)用于正在進(jìn)行的機(jī)器常識(shí)項(xiàng)目,旨在模擬一個(gè)18個(gè)月大的孩子所能擁有的人類常識(shí)。Mansinghka也是該項(xiàng)目的主要研究人員之一。
Mansinghka說,“對(duì)于Gen,研究人員第一次可以很容易地整合一系列不同的人工智能技術(shù)??纯慈藗?cè)诂F(xiàn)階段發(fā)現(xiàn)了什么是可能的,這將會(huì)是很有趣的。”
Gen的開放源代碼是公開可用的,并且在即將舉行的開放源代碼開發(fā)人員會(huì)議上展示,包括Strange Loop和JuliaCon,這項(xiàng)工作在一定程度上也得到了美國(guó)國(guó)防高級(jí)研究計(jì)劃局(DARPA)的支持。