深度學習研究的新變化:教計算機如何編碼
多年來,編寫可以建立程式的軟體一直是人工智慧(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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深度:如何從系統層面優化深度學習計算?優化深度學習
- 計算機視覺中的深度學習計算機視覺深度學習
- 如何從系統層面最佳化深度學習計算?深度學習
- 計算機視覺與深度學習公司計算機視覺深度學習
- 史丹佛—深度學習和計算機視覺深度學習計算機視覺
- 谷歌又出量子計算新成果,這次用上了深度強化學習谷歌強化學習
- 谷歌又出量子計算新成果,這次用上了深度強化學習!谷歌強化學習
- 拜讀為什麼深度學習幾乎成了計算機視覺研究的標配深度學習計算機視覺
- [深度學習] 計算機視覺低程式碼工具Supervision庫使用指北深度學習計算機視覺
- MIT研究員警告:深度學習已經接近計算極限MIT深度學習
- 機器學習--分類變數編碼方法機器學習變數
- 深耕自動化教學,風變程式設計為自主學習助力程式設計
- 8個計算機視覺深度學習中常見的Bug計算機視覺深度學習
- 【強化學習】變革尚未成功:深度強化學習研究的短期悲觀與長期樂觀強化學習
- 深度學習中需要的矩陣計算深度學習矩陣
- 後深度學習時代,計算機視覺技術如何走向未來?深度學習計算機視覺
- 漫談計算機編碼計算機
- 計算機字元編碼的前世今生計算機字元
- 計算機視覺與深度學習應用關係計算機視覺深度學習
- 【人工智慧】機器深度學習如何改變企業?人工智慧深度學習
- 計算機視覺應用:深度學習的力量和侷限性計算機視覺深度學習
- 深度學習運算元優化-FFT深度學習優化FFT
- 《自然》:如何更有效學習計算機程式設計?計算機程式設計
- 深度學習運算元最佳化-FFT深度學習FFT
- 淺談深度學習:如何計算模型以及中間變數的視訊記憶體佔用大小深度學習模型變數記憶體
- 引領深度學習潮流,刷屏計算機視覺頂會,揭祕商湯研究夢之隊深度學習計算機視覺
- 如何學習一門計算機程式語言計算機
- 如何優雅地學習計算機2<-->Helloworld計算機
- 變革尚未成功:深度強化學習研究的短期悲觀與長期樂觀強化學習
- 計算機編碼規則之:Base64編碼計算機
- 深度學習在計算機視覺各項任務中的應用深度學習計算機視覺
- 基於深度學習的計算機視覺應用之目標檢測深度學習計算機視覺
- 【深度學習】:一門入門3D計算機視覺深度學習3D計算機視覺
- 教學研究
- [原始碼解析] 深度學習流水線並行 GPipe(3) ----重計算原始碼深度學習並行
- [計組] 計算機編碼方式:原碼、反碼、補碼計算機
- 計算機執行彙編程式碼的原理計算機
- 什麼是計算機編碼的定義?計算機