機器學習技術正在走進數據中心,它既能改善內部IT管理,還能使關鍵業務流程更加智能化。你可能已經聽說過深度學習的神秘性了,它涉及到一切領域,從系統管理到自動駕駛汽車。到底深度學習是一個剛剛在世人面前揭開面紗的非常聰明的新興人工智能,還是僅僅一種營銷宣傳手段,將已有的復雜機器學習算法重新包裝成為新的賣點?
深度學習無疑激發了大眾的想象力,但它其實并不那么復雜。在技術層面上,深度學習主要指大規模運行的大型計算密集型神經網絡。這些神經網絡往往是由難以用基于邏輯和規則的機器學習方法進行處理的大數據集訓練而成,如圖像、語音、視頻和其他內在具有復雜模式的密集數據。
神經網絡本身并不新。幾乎從現代計算機開創階段起,神經網絡算法已經被研究用于復雜數據流中輔助識別隱藏的內在模式。在這個意義上,深度學習是建立在眾所周知的機器學習技術上的。然而,當新興計算復雜度更高的神經網絡算法與如今的大數據集合應用到一起,創造出了重大的新機遇。使用低成本的云服務或商業scale-out大數據結構,可以創建這些“深度”模型,并實時應用于大規模應用場景中。
敏感的神經網絡
神經網絡研究起步于上世紀50年代和60年代,最早是為研究人類大腦如何工作而建模出來的。神經網絡由多層節點組成,這些節點相互連接組成一張大網,有如大腦中的神經元。每個節點接收輸入信號,接下來,它通過一個預先定義好的“激活功能”發出一個輸出信號,并傳給其他節點,同時確定什么時候節點應該進入活躍狀態。簡單的,你可以認為節點如何工作取決于其興奮程度,當一個節點收到一組輸入后變得興奮時,它可以產生一定程度的輸出信號,并傳遞給它的下游節點。有趣的是,一個節點興奮起來后,它的輸出信號可以是正也可以是負;一些節點激活后實際上會抑制另一些節點的興奮。 節點通過鏈接互連,每個鏈接有其自己的權重變量。一個鏈接的權重會調整經過它傳輸的信號。神經網絡通過逐漸調整其整個網絡的鏈接權重,適應和學習如何識別模式,最終只有被正確識別的模式會產生一個完整的遍布全網絡的興奮傳遞。
一般情況下,輸入數據被格式化為一個輸入信號,鏈接到第一層外部節點。這些節點隨后向一個或多個隱藏層發送信號,最后輸出層節點發出一個“反饋”給外部世界。由于學習(也即智能)是隱含在鏈路權重中的,實際應用的核心問題是搞清楚怎么調節或訓練所有的鏈路權重以實現正確模式的應答。今天,神經網絡主要通過后向傳播的增量學習技術,用在訓練數據中尋找正確的模式來完成學習過程。當神經網絡生成一種有用的方式識別出正確的樣本時,該方法相應的給予鏈路“獎勵”,當神經網絡識別出錯誤的樣本時,則給予懲罰。
然而,不可能存在一個能夠適用于任何給定問題的神經網絡架構。此時機器學習專業知識就是非常重要的了,因為給定一定數量的節點、其激勵功能、一定數量的隱藏層以及所有節點的連接關系(例如是密集連接還是稀疏連接,是否存在內部反饋或循環環路),可能存在無數種潛在的神經網絡配置方式。傳統研究中,受限于硬件條件,神經網絡隱藏層的數量設置得很少,即使如此,神經網絡已經展現出超過人類的,驚人的和熟練的學習能力。如今,深度學習神經網絡可能具有數百層網絡,能夠完全勝任深度奧妙問題的處理。
深度學習實際應用的關鍵是搞清楚如何在成百上千個并行計算核心上有效地拓展出大型神經網絡,然后用巨量大數據集進行高效的訓練。過去,這需要遠超企業數據中心規模的高性能計算設備HPC來實現。今天,NVIDIA、Mellanox和DataDirect Networks公司正在推出適合一般企業數據中心規模的HPC產品。例如NVIDIA的DGX-1,本質上它是一臺設計用于深度學習,集成了8塊高端GPU運算卡的超融合超級計算機,令人驚訝的是,它只有4U這么大,顯然可以被一般公司所接受。
谷歌的AlphaGo大時代
云計算供應商如谷歌,也提供托管的機器學習工具。例如,谷歌的AlphaGo圍棋游戲程序最近在最高級別的比賽中戰勝了世界級的圍棋冠軍。圍棋被認為是機器無法匹敵人類智慧的最后前沿領域之一,因為圍棋無法用簡單的暴力計算的方式在有限時間內求解(完整地在19x19圍棋棋盤上計算最佳落子,需要的計算能力超過了現存最強的計算機能力)。然而,你可以認為AlphaGo團隊采取了一個捷徑,通過訓練深度學習程序,使它下圍棋時能下出任何人類選手曾經下過的最好的落子。而且,這個程序能夠通過和自己下圍棋來變得更強。
在其外表之下,AlphaGo主要由2個大型神經網絡鏈接在一起組成(通過一些蒙特卡羅仿真,將“太多可選落子位置需要計算”的大集合縮減到一個可能是較佳落子位置組成的小集合)。第一個神經網絡用百萬局過去的棋譜進行訓練,因此它能夠確定哪些位置最可能是勝利者一方會下的位置。第二個神經網絡被訓練用于估計每一個新位置的價值,原理上講,即給予那些在棋譜終盤時贏者占據的位置更高的估值。這兩個神經網絡聯合在一起遞歸使用,通過預測接下來有限步數的雙方落子和盤局來選擇當前最佳的落子位置。這里的本質是,深度學習方法通過跟最好的棋手的棋譜學習,現在已能夠不依賴于暴力計算實時擊敗最好的棋手了。
深度學習在企業IT中如何應用呢?
深度學習程序甚至會使它的設計者和訓練者感到吃驚,通過從歷史數據中學習復雜的模式,它能夠在超出期望或看上去無關的場景中工作得很好。但是從根本上說,深度學習程序不能真正預測出一個從未被訓練過的模式——它只能從已經遇到過的場景中進行學習。而且,深度學習程序不能用邏輯術語或規則來說明它所學到的東西,因此無法簡單地抽象出它的學習結果。
對任何機器學習技術,總是要在變得太特殊(例如,需要太精確地記錄歷史數據,如同查找表一樣過于死板)和保持太一般化(例如,不管輸入是什么,簡單地給出單一最可能的值)中進行平衡,以避免無效計算。數據學家的工作就是努力為特定問題找到最佳平衡方式。
在我們擁有大量訓練數據可用的任何場景下,深度學習將毫無置疑是非常有用的。每天,在IT部門,我們產生越來越多的機器數據可用于開發有用的人工智能。例如,在安全應用中,神經網絡能夠學會鑒別可能的入侵或黑客行為的深度模式。神經網絡甚至可以用時間序列數據訓練,學習識別在工作量和資源這兩個關鍵因素影響下的動態正常(異常)行為。谷歌很有可能正在研究如何利用AlphaGo類似的人工智能能力,幫助其管理云基礎設施,避免損耗和最優化資源分配。
如果你想要了解更多有關神經網絡的知識,我建議你花幾分鐘嘗試一些相關的互動實例。我們都應該為有朝一日能夠將自己的大腦直接連入數據中心網絡做好準備。