人工智慧學會編寫自己的程式碼透過竊取其他程式!

Comment is Closed

shodan

人類閃一邊去,我可以解決這件事。機器學習系統已經獲得了編寫自己的程式碼的能力。

由微軟和劍橋大學的研究人員創建的系統,稱為DeepCoder,解決了程式競賽所設置的基本挑戰。這種方法可以使人們更容易建立簡單的程式而不用知道如何撰寫程式碼。

沒有參與這項計畫的麻省理工學院的Armando Solar-Lezama說,「所有的人都可以有更高的生產力。他們可以建構以前不可能建立的系統」。

在英國劍橋的微軟研究員,同時是DeepCoder的創始人之一Marc Brockschmidt說,「最終,該方法可以讓不會寫程式的人簡單地描述一個程式的構想,讓系統去建構它」。

推薦文章:  新研究發現大麻使用者比一般人更快樂,生活更成功!

small_code

DeepCoder使用一種稱為程序合成的技術,透過現有的軟體取得的程式碼來拼湊建立新的程式,就像程式設計師一樣。給定每個程式碼片段所需的輸入和輸出列表,DeepCoder知道需要哪些程式碼片段來實現整體所需的結果。

「它可以讓不會寫程式的人簡單地描述一個程式的構想,讓系統建構它。」

放任AI使用這種方式的一個優點是它可以比會撰寫程式的人更徹底和廣泛地搜索,因此可以拼湊出人類可能沒有想到的程式碼。此外,DeepCoder使用機器學習來清理程式碼資料庫,並根據可能的實用性來進行程式碼片段的排序。

所有的這一切使得系統比它的前輩更快。DeepCoder在幾分之一秒內可以產生可用程式,而舊系統則需要幾分鐘的時間來嘗試許多不同程式碼的組合才能拼湊出可以完成這項工作的程式碼。此外,因為DeepCoder會隨著嘗試來學習甚麼程式碼的組合可以執行,而那些是不行的,所以它可以在每次嘗試新的問題時改進。

ff3ywn-1-800x533

該技術可以有許多的應用。在2015年,麻省理工學院的研究人員建立了一個程式,可以透過將有錯誤的程式碼替換成可成功執行的程式碼來自動修改程式的錯誤。Brockschmidt說,未來的版本可以讓我們很容易地建立常規程式,例如從網站抓取訊息,或自動分類Facebook的照片,然而寫程式的人不必動到手指。

Solar-Lezama說,「這種技術提供的自動化的潛力真正意味著大量減少開發程式碼所需的努力」。

但他不認為這些系統會讓程序設計師失業。他說,透過程序合成讓一些最繁瑣的部分程式自動化,可以讓程式設計師能夠將時間用於更複雜的工作。

目前,DeepCoder只能解決涉及大約五行程式碼的程式難題。但是在正確的程式語言中,相當複雜的程序也只需要幾行程式碼。

推薦文章:  不需要補牙了! 科學家找到可以讓牙齒自行修復的方法

Latptop-Code-Flickr-Reuse-696x391

Solar-Lezama說,「一次性的生成一個非常大的程式碼是很困難的,而且可能不切實際。但是真正的大塊的程式碼是透過彙編大量的小塊程式碼來建立的」。

本文出現在紙本的標題為「計算機正在學習如何為自己編寫程式碼」。

來源:New Scientist