早期的機器學習以搜索為基礎,主要依靠進行過一定優化的暴力方法。但是隨著機器學習逐漸成熟,它開始專注于加速技術已經很成熟的統計方法和優化問題。同時深度學習的問世更是帶來原本可能無法實現的優化方法。本文將介紹現代機器學習如何找到兼顧規模和速度的新方法。
AI領域的轉變
在本系列的第1部分中,我們探討了AI的一些歷史,以及從Lisp到現代編程語言以及深度學習等新型計算智能范式的歷程。我們還討論了人工智能的早期應用,它們依賴于經過優化的搜索形式、在海量數據集上進行訓練的現代神經網絡架構,同時解決了十年前還被認為不可能的難題。然而目前仍有兩大難題有待解決,即:如何進一步加速這些應用,以及將它們限制在智能手機這樣的功耗優化環境中。
今天,深度學習成為了多數加速技術的重點研究對象。深度學習是一種神經網絡架構,它依賴于多層神經網絡,其中的每一層都可以支持不同的功能以進行特征檢測。這些深層神經網絡依賴于可方便運用并行計算的矢量運算, 并為神經網絡層分布式計算以及同層諸多神經元并行計算創造了條件。
通過GPU加速機器學習
圖形處理單元(GPU)最初并不是用于加速深度學習應用。GPU是一種特殊的設備,用于加速輸出到顯示設備的幀緩沖區(內存)的構建。它將渲染后的圖像存入幀緩沖區,而不是依靠處理器來完成。GPU由數以千計的獨立內核組成,它們并行運行并執行矢量運算等特定類型的計算。盡管最初GPU專為視頻應用而設計,但人們發現它們也可以加速矩陣乘法等科學計算。
開發人員既可以借助于GPU供應商提供的API將GPU處理功能集成到應用中,也可以采用適用于諸多不同環境的標準軟件包方式。R編程語言和編程環境包含與GPU協同工作來加快處理速度的軟件包,例如gputools、gmatrix和gpuR。GPU也可以通過numba軟件包或Theano等各種庫借助于Python進行編程。
通過這些軟件包,任何有意將GPU加速應用于機器學習的人都可以達成愿望。但是工程師們還在研究更專門的方法。2019年,英特爾?以20億美元的價格收購了Habana Labs, 一家致力于為服務器中的機器學習加速器開發定制芯片的公司。此外,英特爾還于2017年以150億美元收購了自動駕駛芯片技術企業Mobileye。
定制芯片和指令
除了服務器和臺式機中的GPU加速之外,用于機器學習的加速器正在試圖超越傳統平臺,進軍功耗受限的嵌入式設備和智能手機。這些加速器形式多樣,包括U盤、API、智能手機神經網絡加速器以及用于深度學習加速的矢量指令等。
適用于智能手機的深度學習
深度學習工具包已經從PC端延伸到智能手機,可為存在更多限制的網絡提供支持。TensorFlow Lite和Core ML等框架已經部署在用于機器學習應用的移動設備上。Apple?最近發布了A12 Bionic芯片,這款芯片包括一個8核神經網絡引擎,用于開發更加節能的神經網絡應用, 從而擴展Apple智能手機上的深度學習應用。
Google發布了適用于Android? 8.1并具有機器學習功能的神經網絡API (NNAPI), 目前已應用于Google Lens自然語言處理和圖像識別背景下的Google Assistant。NNAPI與其他深度學習工具包相似,但它是針對Android智能手機環境及其資源限制而構建的。
深度學習USB
英特爾發布了其新版神經計算棒,以U盤的形式加速深度學習應用。TensorFlow、Caffe和PyTorch等眾多機器學習框架都可以使用它。當沒有GPU可用時,這將是一個不錯的選擇,同時還可以快速構建深度學習應用原型。
深度學習指令
最后,在機器學習計算從CPU轉移到GPU的同時,英特爾使用新的指令優化了其Xeon指令集,來加速深度學習。這些被稱為AVX-512擴展的新指令(所謂的矢量神經網絡指令或VNNi)提高了卷積神經網絡運算的處理量。
總結
GPU在機器學習中的應用實現了在眾多應用中構建和部署大規模深度神經網絡的能力。機器學習框架使構建深度學習應用變得簡單。智能手機供應商也不甘人后,為受到諸多限制的應用集成了高能效的神經網絡加速器(以及用于定制應用的API)。現在市面上還有其他可轉移到USB硬件上的加速器,許多新的初創公司也在加大加速器領域的投入,為未來機器學習應用做準備。
審核編輯:郭婷
-
gpu
+關注
關注
28文章
4703瀏覽量
128725 -
機器學習
+關注
關注
66文章
8382瀏覽量
132443 -
深度學習
+關注
關注
73文章
5493瀏覽量
120998
發布評論請先 登錄
相關推薦
評論