解讀大規模深度學習工具的當前趨勢

在過去的十年,企業已經開始使用機器學習(ML)收集和分析大量資料以獲得競爭優勢。現在有一些人試圖走的更遠 — 使用稱為機器學習分支的深度學習(DL)技術。他們正在尋求探索隱藏在資料中更深奧的特性來為欺詐檢測、需求預測、點選預測和其他資料密集型分析建立預測應用程式。

使用深度學習(DL)技術開發的計算機視覺、語音識別、自然語言處理和音訊識別應用需要大規模的計算能力來處理大量資料。為了獲得企業正在尋找的深度學習(DL)技術解決方法,需要在企業的層面上部署和管理底層的 IT 基礎設施。為了讓機構能夠更快更容易地從大量複雜的資料中獲得可行見解,新解決方案正在被研發。

機器學習包括開發演算法,透過從示例輸入構建模型以進行資料驅動的預測或決策。諸如谷歌(Google)、Facebook、亞馬遜(Amazon)、百度(Baidu)、雅虎(Yahoo)、特斯拉汽車(Tesla Motors) 和 沃爾瑪實驗室(Walmart Labs)等領先的技術公司已經在使用機器學習工具改進影象識別、程式化廣告、產品和內容推薦的分析應用程式。

有三種類型的機器學習:

監督式機器學習、無監督式機器學習和強化學習

透過監督式機器學習,程式在預定義的一組標準上被「訓練」。例如,你可以基於鄰居、臥室數量和總平方英尺來給程式饋送先前房屋銷售價格的的資訊,然後要求它預測新的銷售價格。一個好的房地產代理知道如何基於地域、鄰居和類似因素來定價房子,但是使用標準技術來變成計算機做這件事情將是非常麻煩的。另一個例子是向計算機展示預定義的資料集(比如貓和狗的影象集合)以訓練它正確地識別其他相似圖片。

無監督式機器學習意味著程式被給於大量的資料並且必須找到所提供的資料間的非線性關係。這方面的一個例子可能是檢視房地產資料並確定哪些因素導致城市某些地區的價格上漲。一個主要製造商正在使用這種無監督式機器學習來預測未來對於不同零件的需求。這樣,在裝置必須接地之前,零件就可用於安裝。人類專家可能知道什麼因素會影響零件的需求,但是機器學習提供了自主決策所需要的附加資料。

強化學習意味著計算機程式與其必須執行某個任務的動態環境進行互動。示例包括與社會媒體動態互動以收集關於某個問題公眾情緒的資料。計算機可以從資料中獲得資訊並預測未來的實時貢獻。

這些機器學習方法僅在問題可解並有可用資料時才起作用。例如,我們不能根據消費者是否有狗來使用機器學習方法估計飛機票的價格。如果資料不能幫助人類專家解決問題,它同樣也不能幫助機器。

解讀大規模深度學習工具的當前趨勢

如例子所示,其中最頂行明顯是孩子的影象。對於計算機來說,包含在腳踏車上的,在沙灘上的孩子,或者是側向翻轉的點陣圖是完全不同的資料集。教計算機去區分它們是非常困難的一件事情。在某些情況下,這些圖片的差異關乎生死。比如,最底部包含著道路交通的標誌。自主駕駛的汽車因為被雪覆蓋而不能辨認出道路標誌是不可接受的。一個普通的駕駛員因為其八邊形的形狀可以辨認出它,那麼計算機應該也可以做到。

機器學習不僅讓企業從越來越龐大和多樣化的資料集中發現模式和趨勢,還能夠讓傳統上由人類完成的分析自動化,從商業相關的互動中學習並且提供基於證據的迴應。它同樣提供了可能成功的建議行為的置信水平。它使企業提供新的差異化和個性化的產品和服務,以及提升現有產品和服務的影響力並且/或者降低其成本。然而,機器學習是一種非精確計算,因為其沒有確定性的建模特徵的方法。特徵通常需要被建模為神經網路並且引數取決於輸入資料集的質量。

深度學習作為機器學習的一個分支,是一種模擬人腦的動態系統,尤其是神經元如何在大腦中相互作用,以及大腦中的不同層是如何協作的。與機器學習不同,在深度學習中,特徵被建模為一個深度學習神經網路與一些內部/隱藏層,其捕獲資料的微妙資訊並且分配其物理意義。深度學習能夠將數字影象分割稱為更易於分析的片段;這意味著可以提取高階資訊並對其編碼以供計算機使用。

例如,對於人類,臉部有眼睛。對於計算機,臉部有著明暗的畫素,構成了一些型別的抽象的線條。深度學習模型的每一層都會讓計算機識別同一物件的另一級別的抽象。使用較早的動物類比,深度學習會使使用者區分那些躺著地上的貓與那些跳躍的貓的圖片。

深度學習在過去幾年中取得了較大進步。例如,下圖展示了作為 ImageNet 大規模視覺識別挑戰(ILSCRC)的一部分的影象識別研究的準確率,該技術評估了大規模的物體檢測和影象分類的演算法。這項研究為了使研究員可以比較更廣範圍的物體的檢測進步,並評估計算機視覺的大規模影象索引檢測和註釋的進展。

解讀大規模深度學習工具的當前趨勢

圖中藍色部分顯示了在 2010 和 2011 年的可用的傳統計算機視覺方法,紫色顯示了最近使用的深度學習技術。紅色顯示了人的準確率,這是透過要求個體和小組來描述和分類影象測量的。小組中的人被允許考慮所示的影象並得出共同的答案。一個人立即注意到一個穩妥的改進方法。在 2015 年,使用深度學習技術的計算機已經變得和人一樣高效。

百度研究的深度語音專案(Deep Speech project)最近使用單一、深度迴圈神經網路在英語和普通話的語音識別中實現了人類水平的準確性。這個結果表明深度學習在計算機視覺之外的領域也是可用的。

另一個有趣的例子是 Google DeepMind在 AlphaGo (一個被開發的圍棋計算機程式)中使用了深度學習技術。AlphaGo 的演算法基於先前透過廣泛訓練的人工神經網路(從人類和計算機遊戲)「學習」到的知識來採取其移動。在 2015 年,它成為了第一個在全尺寸的棋盤上無障礙地打敗專業人類圍棋選手的計算機圍棋程式。

人們對深度學習技術愈發感興趣的最後一個例子是 DeepMind 和 Blizzard 之間的合作,他們正在開發星際爭霸 II (StarCraft II)。使用世界上最受歡迎的電腦遊戲,該專案正被開發為一個研究社群並對世界上的人工智慧和機器學習的研究者們開放。

機器學習帶來的巨大計算挑戰

機器學習和深度學習技術的這些示例令人印象深刻,但是它們卻帶來了繁重的計算任務。對於深度學習的訓練通常需要幾十個五十億的浮點運算(FLOPs),這在小叢集上需要轉換為幾周或者幾個月的時間。在迅速變換的環境中,許多,即使不是大多數,組織不能等待如此長的時間來提取智慧。

深度學習軟體模組如果使用開源儲存庫可以花費企業幾天的時間來下載和安裝。找到給定深度學習模組或庫的所有依賴項會花費更長的時間。由於這些工具仍然是新的,許多這些依賴項仍然需要使用者確保特定庫的特定版本可用。一旦尋找到,使用者可能需要耗時地對所有庫和依賴項進行手動安裝。在某些情況下,它們必須滿足 60 多個依賴項。許多庫並不能從標準企業

Linux 發行版的開源儲存庫安裝,這意味著使用者需要尋找並手動安裝它們,以保證它們使用可以一起工作的版本。

使用者沒有從具有出色標稱效能特徵但缺乏最佳化庫的新硬體中獲益,因為這將花費幾個月或者幾年的時間來建立這些庫。特別地,深度學習需要有效的 C 到 BLAS、FFTs、卷積、 malloc 和 memcopy 的介面。英偉達(NVIDIA )提供了這些需要的到 cuBLAS 和 cuFFT 的介面,但這樣的最佳化庫從其他密集的硬體平臺丟失了。通常,需要幾年的時間才能在新的架構上最佳化這些庫。

對於那些尋找可用機器學習軟體包概述的人,Knowm 公司的過剩的機器學習工具提供了超過 40 個機器學習軟體包和庫的詳細比較。

為深度學習搭建一個框架

新的工具和框架正在出現,這使得深度學習更加容易。組織必須選擇在軟硬體、網路、工具和庫方面的正確的組合以有效地開發和執行應用程式。

業務的第一個流程是簡化深度學習環境的部署、管理、操作和擴充套件。企業必須首先啟用分析師和開發人員。深度學習工具並不能獨立工作。為了更有效率,公司需要向開發人員和分析師提供正確的工具和支援軟硬體的框架的集合,而不必將其轉變為 IT 管理人員。

雖然人工智慧和機器學習已經伴隨了我們幾十年,深度學習仍然是一個新的領域,並在不斷變化。公司需要靈活地採用新的工具和做法,並以輕快的方式快速響應市場的需求。

現代深度學習環境

為了響應這些需求,Bright Computing 開發了它的 Bright for Deep Learning 解決方案,在 Bright Cluster Manager 7。3 版本可用。新的方法提供了機器學習框架的選擇,以簡化包括 Caffe、Torch、TensorFlow、Theano 和 CNTK在內的深度學習專案。它包括幾個最受歡迎的機器學習庫,以幫助訪問資料集,資料集包括 MLPython、cuDNN (NVIDIA CUDA Deep Neural Network library )、DIGITS (Deep Learning GPU Training System) 和 CaffeOnSpark(在大資料叢集上的開源的分散式深度學習解決方案)。

為深度學習處理大量資料需要大量的計算能力。隨著專為深度學習設計的新工具變得可用,開發人員正在使用它們並利用加速器(比如 NVIDIA GPUs)在高階高效能(HPC)的叢集上搭建他們的應用。

GPUs 使得機器學習中所需的計算密集型程式的計算速度比僅適用 CPU 的解決方案快得多。The Bright for Deep Learning 解決方案提供了 GPU 加速版本的通用機器學習庫以便更輕鬆地佈置和管理硬體以及相關軟體、APIs 和機器學習庫。這意味著研究員和開發者只需要專注於他們的工作——而不是管理工具。

這也意味著使用者不必擔心查詢、配置和部署執行這些深度學習庫和框架所需的所有依賴項,包括超過 400 MB 的支援機器學習軟體包的 Python 模組,以及 英偉達(NVIDIA)硬體驅動、CUDA(平行計算平臺 API)驅動程式、CUB(CUDA 構建塊)和 NCCL (標準集體通訊程式庫)。在未來會增加更多,比如 CNTK、Bidmach、Keras、MXNet 和其他。

如果使用者需要更多的容量,他們可以使用深度學習功能將支援 GPU 的例項擴充套件到使用 Bright 的雲爆發功能的雲中。他們還可以輕鬆地整合深度學習應用程式,或者在私有 OpenStack 雲中執行它們。使用者甚至可以透過使用 CaffeOnSpark 執行深度學習應用程式來利用現代叢集提供的效能。

企業將最先進的 HPC 叢集與深度學習相結合

各種企業已經使用該解決方案將最先進的 HPC 叢集和深度學習相結合。例如,斯坦福大學正在致力於計算機視覺、自然語言處理和信用卡詐騙檢測研究。喬治梅森大學正在對科學模擬資料進行分析。

Illumina 開發了用於生命科學研究、翻譯和消費者基因組學以及分子診斷的測序和陣列技術,其正在進行基因預測研究以鑑定可以編碼某些功能的基因組部分。三星正在致力於將 Caffe 深度學習網路應用於醫療保健應用的計算機視覺工作。RICOH 正在研究影象識別的深度學習技術,紐約大學(NYU)多媒體中心正在測試 HPC 叢集的深度學習任務。

深度學習與傳統的 HPC 工作負載一致(如大型密集線性代數問題)。然而,目前最快的深度學習叢集和最快的超級計算機之間存在巨大的差距。雖然仍然有許多挑戰,但是有很大的機會來進一步推進深度學習的效能並可以使用更大的資料集。

轉載自機器之心

END

TAG: 學習深度機器計算機資料