轉帖|行業資訊|編輯:黃竹雯|2017-02-24 15:43:16.000|閱讀 273 次
概述:微軟和劍橋大學的研究員近日發布了一篇論文,文中闡述了其科研成果——一個會編程的機器學習系統。該系統叫DeepCoder,能夠解決編程比賽所涉及到的基礎編程題目。該系統為不會編程的人提供了制作簡易程序的可能。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
微軟和劍橋大學的研究員近日發布了一篇論文,文中闡述了其科研成果——一個會編程的機器學習系統。該系統叫,能夠解決編程比賽所涉及到的基礎編程題目。該系統為不會編程的人提供了制作簡易程序的可能。(點擊獲取論文)
DeepCoder的創造者之一,在劍橋大學參與微軟研究項目的 Marc Brockschmidt表示:“該程序最終可以讓非編程人員通過向計算機描述自己的程序構想來獲得想要的程序,系統會自動寫就。”
DeepCoder所用的技術叫程序合成( program synthesis),通過截取已有軟件的代碼行來組成新的程序,不得不承認,當下很多程序員也是這樣做的。通過學習一系列代碼片(code fragment)的輸入(inputs)和輸出(outputs)數據,DeepCoder能自動摘取出對目標任務有用的代碼片。
機器的檢索速度、廣度、及深度強于人類程序員,這很好理解。更重要的是,機器能夠以其出其不意的方式組合代碼片,換句話說,該系統或許正以其“機器視角”革新編程這件事。
基于以上原因,該系統編寫代碼的速度遠快于人類。舊有的編程AI需要不斷地嘗試代碼片組合以使程序成功運行,一般來說這一過程需要幾分鐘。但DeepCoder可以在一秒鐘之內寫出能夠跑通的程序。隨著DeepCoder的編程經驗增加,其分辨有用及無用的代碼片的能力增加,其生成程序的速度將會越來越快。
不過麻省理工大學研究員 Solar-Lezama表示,程序員并不會因此而失業,“在程序員為DeepCoder搭建起程序框架之后,就能夠將精力放在更復雜、更需要經驗驅動的事情上”。
目前DeepCoder只能生成五行左右代碼的程序。但對于某些編程語言來說,五行代碼就足夠了,不是嗎?
目前讓機器自動生成一個大規模的程序還不現實,但大程序也是由小的代碼片堆成的。
在知名評論網站Hacker News上,有網友就此事評論道:“論文里的方法很特別,舊有的GPs、GA技術耗時長,錯誤率大。”
另有網友做出了挑戰生成模型根本性的疑問:“和監督學習不同,這些能夠生成人臉、畫作、代碼的生成模型,并沒有客觀的測試集來驗證它們是否真的‘生成’了東西。你怎么知道這些被生成的東西不是從訓練數據集里簡單提取拼湊的呢?”
文章轉自()
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn