可微分式編程:深度學習發展趨勢

jopen 8年前發布 | 21K 次閱讀 深度學習

人工智能領域的突破

近幾年來, 人工智能領域許多存在了幾十年的挑戰忽然間被攻克了 ,幾乎沒有任何預兆。以長期以來被人工智能純化論者所鄙視的途徑——從海量數據中學習概率的方式——解決了。

從此你無需把問題編碼成可運行的格式,更不依賴人自身解決問題的技巧——從目標分類和語音識別到圖片標注和合成特定藝術家風格的圖像,甚至指導機器人執行尚未被編程的任務,都被一一解決。這個占主導地位的新進展最初被冠以“神經網絡”之名,如今被稱作“深度學習”——用來定性地強調相比以前的長足進展。

“深度學習”最近的成功常被歸功于更大量的可用數據、更強大的計算系統,以及大科技公司對這一領域突然增加的興趣和投入。這些不斷增長的資源確實客觀上有助于當前人工智能的快速發展,雖然大公司一直以來都投入了大量資源到各種機器學習方法中,但只有深度學習取得了如此令人難以置信的進展;其他機器學習方法雖然也有改進,但是遠遠沒有達到可以與深度學習相提并論的程度。

探尋深度學習成功的秘訣

到底是什么因素將深度學習與其他方法區分開?它是否能夠解決那些到目前為止沒有人能用編程提供解決方案的問題?

第一個成功因素,是自神經網絡早期以來就不斷被重復發現、一直行之有效的算法,被稱之為“ 后向傳輸 ”。它其實只是規則鏈(一種簡單的微積分技巧)以非常簡潔優雅的方式被應用。它被深入應用于連續數學和離散數學領域,使得一系列復雜的潛在解決方案可以在矢量微積分運算過程中自動優化。

關鍵之處在于,將這些潛在解決方案的模板組織成一個有向圖(例如,在很多節點中,給一幅照片自動添加標注說明),反向遍歷這個圖使得算法可以自動計算“梯度矢量”,而梯度矢量指導搜索進一步優化的解決方案。你只要稍微檢視一下大部分當前深度學習技術就不難發現,他們與傳統神經網絡在結構上有諸多相似之處。因此,后向傳輸算法無論對傳統的還是新的構架都至關重要。

但是傳統神經網絡對后向傳輸的使用遠不及新的深度學習技術,哪怕使用現有的硬件和海量數據來實現也如此。

所以當前架構成功的另一個關鍵是又一個簡單到具有欺騙性的想法:神經網絡的組件可以同時被用在多個地方。當神經網絡被優化后,它的每個組件的拷貝都被強制保持不變(這個想法被稱作“ 權重綁定 ”)。這一點給權重綁定的組件附加了一個限制條件:它們必須同時學習在不同地方生效,而不是局限在特定位置。權重綁定驅使神經網絡去學習更普遍有效的函數功能,因為一個單詞可能出現在一段文字中的任意位置,或者一個實際物體可能會出現在圖像中的任意位置。

把普遍適用的組件放在神經網絡中的很多位置,可以類比于在程序中編寫一個函數然后在全局調用它——這是計算機科學另一個完全不同領域的核心概念,即 函數式編程 。實際上它不只是類比,權重綁定的組件其實跟編程中可重用函數的理念不謀而合,而且權重綁定更加深入——最近大獲成功的許多架構里都在復用組件,跟函數式編程里“高階函數”的編寫模式一模一樣。這暗示其他來自函數式編程的操作可以借鑒到深度學習結構中。

可微分式編程?

要探索以深度學習神經網絡訓練的函數式結構,最自然的方式是一款新語言,它能夠直接在函數式程序上運行后向傳輸。正如目前所展現的那樣,這種結構隱藏于實現細節之中,函數式程序實際上被編譯進一個類似后向傳輸所需要的計算圖, 圖中每個組件必須是可微分的 。而Grefenstette等人最近發表了關于許多簡單數據結構的可微分構造(棧,隊列,雙端隊列),他們的研究表明進一步可微分的實現可能只需要一點聰明的數學技巧。

這一領域的后繼進展很可能會創造一個新的編程范式-- 可微分式編程 。用可微分式語言編程將會像起草一個函數式的結構,并把細節留給優化器;語言本身將會使用后向傳輸從而根據整個程序的目標來自動學習細節實現——正如深度學習中的自動優化權重值一樣,但函數式編程可作為更有表達力的權重綁定實現。

總結

深度學習看上去可能很像"專家系統"或“大數據”領域里的另一個暫時性的狂熱。可微分式編程是一個很新的概念,但它是后向傳輸和權重綁定思想的一個自然而然的延伸,而且可能會被證明跟前兩者一樣長期有效。哪怕特定的實現、架構、技術術語不斷出現又消失,這些核心概念將會一直是人工智能成功的核心要素。

來自: http://www.infoq.com/cn/news/2016/01/development-trend-deep-learn

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!