自從16年的阿爾法狗圍棋事件之后,人工智能的熱度又一次上升到全民關注的時代。
近期,由劍橋大學聯合微軟研究人員開發的機器學習系統DeepCoder能夠實現自主編寫代碼,真是厲害害了我的AI。
網絡配圖
DeepCoder使用神經網絡從現有的軟件里學習代碼片段,然后將其組合成為新的代碼。這種科技的發展會大大減少開發代碼需要的時間,但是會讓很多底層的程序員失業(高級程序員可以轉向其他復雜的任務)。想想老王我連個初級程序員都算不上,那不是還沒就業已經失業了,-_-||。
今天給大家聊一聊機器編程的那些事。目前基于神經網絡編程的主流方案大致分為兩個派別:黑盒派和代碼生成派,盡管都是基于深度神經網絡學習基礎的,但是兩者的發展路線有著較大的差異。
黑盒派是神經網絡編程中最為典型的一種,通常定義為隱藏編程系統的代碼片段,從輸入輸出的數據中學習轉換規則,并使用這些規則完成特定任務。因為我們無法得知她具體學習到什么樣的規則,所以稱之為黑盒,缺點是無法分析系統存在的問題以及提出有針對性的改進方案。
黑盒系統結構圖
黑盒系統結構圖
代碼生成派與黑盒派在識別具體學習規則上具有較大差異,更加類似解決“IPS問題”的思想,期望讓機器編程系統像人類程序員一樣把實現過程寫成代碼片段。代碼生成派基本的編程思路分為模型訓練和模型應用,模型訓練基于不同種類編程任務的原始數據來訓練深度學習的自動編程;模型應用則是突出讓機器編程系統針對特定任務編寫出解決問題的代碼片段。
代碼生成派結構圖
代碼生成派結構圖
整體來說,機器編程系統的發展還處于初期階段,目前也只能實現解決簡單任務的代碼生成,距離其實用化還有很長的路要走。
Ps:我是敗家老王,歡迎評論關注。