深度學習研究的新變化:教計算機如何編碼

劉美利發表於2018-08-17

多年來,編寫可以建立程式的軟體一直是人工智慧(AI)研究的難以實現的目標。事實上,AI agents 可以建立自己的程式,如果通常看起來像是一般人工智慧與狹義人工智慧的區別之一。 這個目標非常重要,人工智慧研究人員已經建立了一個特定的研究領域,稱為程式綜合(Program Synthesis),專注於應對這些挑戰。程式綜合背後的想法是建立可以生成與給定規範匹配的程式的AI agents。當我們利用Microsoft Excel中的Flash Fill功能時,我們經常使用這種技術的原始版本。

儘管程式綜合(Program Synthesis)很重要,但完整的研究空間仍處於初期階段。最近,來自微軟的AI研究人員發表了一篇論文,介紹了一種新的程式合成技術,稱為神經引導式演繹搜尋(NGDS),它提出了一種解決此類問題的新方法。

程式綜合模型的挑戰非常明顯。AI agents 不僅需要生成符合特定輸入資料集的程式,而且還能夠很好地概括未來的資料集。傳統上,程式綜合空間模型要麼依賴於廣泛手工設計的演繹邏輯技術,要麼依賴於需要大量資料的純粹統計模型,並且通常無法在具有挑戰性的基準上提供實時綜合。NGDS試圖將這兩種技術中的最佳技術組合成一種新型的程式綜合模型,該模型可以建立與基本規範相匹配的程式並隨著時間的推移而很好地概括。如果我們借用Pedro Domingos的Mater演算法論文中的一行,我們可以說NGDS將象徵主義和貝葉斯主義結合成一個主演算法。

NGDS的象徵性部分基於演繹搜尋演算法,該演算法由目標程式的基礎域特定語言(DSL)引數化。 NGDS通過遞迴地應用DSL的生成規則來進行,以將初始合成問題分解為更小的子問題,並進一步對它們應用相同的搜尋技術。 NGDS使用神經指導模型補充演繹搜尋過程,該模型針對每個分支決策先驗地預測將從該分支產生的最佳程式的概括分數。

要檢視NGDS的執行情況,請考慮以下樣本資料集,該資料集可以使用執行三個字串子表示式串聯的程式生成:第一個單詞的第一個字元,常量字串“. “,最後一句話。

使用NGDS時,搜尋階段將首先確定正確程式中的 top-level 運算子是連線還是原始子表示式(子字串或常量字串)。 如果它決定 top-level  運算子是Concatenate,則系統會進一步將提供的輸入輸出示例減少為Concatenate的兩個子表示式的必要輸入輸出示例。 這些邏輯決策在搜尋過程中引入了分支,其中大多數產生滿足該示例但不向其他輸入推廣的程式。 可以使用我們的神經引導先驗地消除這些分支。下圖說明了這種方法。

NGDS的優點在於它保留了構建搜尋樹(search tree)的符號洞察力(symbolic insights),確保了所發現程式的正確性,但僅探索了可能產生使用者預期的可推廣程式的樹的那些分支。 隨著時間的推移,這個過程大大減少了非生產性的搜尋時間。 NGDS的一個關鍵思想是,分數預測模型對於搜尋過程中的所有決策不必相同。 可以為不同的DSL級別,符號甚至製作訓練單獨的模型。 這允許模型使用輸入 - 輸出規範的不同特徵來評估不同產品的適合度,並且還導致更簡單的監督學習問題。

微軟研究團隊針對幾種最先進的程式合成技術評估了NGDS,例如PROSE(純符號),RobustFill(純神經)和DeepCoder(神經符號混合)。

NGDS絕對是建立更高階程式綜合模型的技術。該技術向我們展示了實現程式綜合的途徑是基於將象徵主義或貝葉斯主義等不同思想流派結合到單一模型中。 NGDS的關鍵點在於,基於符號演繹推理的系統與統計技術的深度整合,可以在不使用大量計算資源的情況下,生成具有高質量程式的模型的世界最佳。

【本文轉載自: 深度學習與神經網路,作者:翻譯|Amusi,原文連結:https://mp.weixin.qq.com/s/aBOWTbRctrVTxwM41q-fhA】

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542119/viewspace-2200309/,如需轉載,請註明出處,否則將追究法律責任。

相關文章