為何現在深度學習這麼流行?

2021-09-24 14:19:13 字數 2190 閱讀 4945

為何現在深度學習這麼流行?一些關鍵原因如下:

深度學習要在數百萬甚至數十億的引數上進行複雜的數**算。儘管過去這些年有所提高,但僅依靠現在的cpu執行這些運算極其耗時。一種叫作圖形處理單元(graphics processing unit,gpu)的新型硬體在完成這些大規模的數**算(如矩陣乘法)時可以高出幾個數量級。

gpu最初是nvidia和amd公司為遊戲產業而開發的。事實證明這種硬體極其高效。nvidia最近的一款產品1080ti,僅用了幾天時間就構建了乙個基於imagenet資料集的影象分類系統,而此前這需要大概1個月的時間。

如果打算購買用於深度學習的硬體,建議使用者根據預算選擇一款nvidia的記憶體較大的gpu。記住,計算機記憶體和gpu記憶體並不相同,1080ti帶有大約11gb的記憶體,它的**在700美元左右。

你也可以使用各種雲服務,如aws、google cloud或floyd(這家公司提供專為深度學習優化的gpu機器)。如果剛開始深度學習,或在財務受限的情況下為公司的應用配置機器時,使用雲服務就很經濟。

優化後的系統效能可能有較大提公升。

圖1.6所示為不同cpu和gpu的效能基準的對比。

圖1.6 基於不同cpu和gpu的神經網路架構的效能基準

這些影象類別是手工標註的,每年都有數百個團隊參與競賽。過去比賽中一些成功的演算法有vgg、resnet、inception、densenet等。現在這些演算法已在行業中得到應用,用於解決各種計算機視覺問題。深度學習領域還有其他一些流行的資料集,這些資料集常被用於建立不同演算法的效能基準:

各種不同演算法的發展,如批規一化、啟用函式、跳躍式連線(skip connection)、長短期記憶網路(lstm)、dropout等,使得最近幾年可以更快並更成功地訓練極深度網路。本書接下來的章節中,我們將深入每種技術的細節,以及如何使用這些技術構建更好的模型。

在早期,人們需要具備c++和cuda的專業知識來實現深度學習演算法。現在隨著很多公司將它們的深度學習框架開源,使得那些具有指令碼語言知識(如python)的人,也可以開始構建和使用深度學習演算法。今天,這個行業中流行的深度學習框架有tensorflow、caffe2、keras、theano、pytorch、chainer、dynet、mxnet和cntk。

如果沒有這些框架,深度學習的應用也不會如此廣泛。它們抽象出許多底層的複雜度,讓我們可以專注於應用。我們尚處於深度學習的早期階段,很多組織機構都在對深度學習進行大量研究,幾乎每天都有突破性的成果,因而,各種框架也都各有利弊。

pytorch

pytorch以及其他大多數深度學習框架,主要用於兩個方面:

讓pytorch越來越受歡迎的是它的易用性和簡單性。不同於其他大多數流行的使用靜態計算圖的深度學習框架,pytorch使用動態計算,因此在構建複雜架構時可以有更高的靈活性。

pytorch大量使用了python概念,例如類、結構和條件迴圈,允許使用者以純物件導向的方式構建深度學習演算法。大部分的其他流行框架引進了自己的程式設計風格,有時編寫新演算法會很複雜,甚至不支援直觀的除錯。後續章節將詳細討論計算圖。

儘管pytorch新近才發布並且還處於β版本,由於它的簡單易用和出色的效能、易於除錯性,以及來自不同公司如salesforce等的強大支援,pytorch受到了資料科學家和深度學習研究人員的巨大歡迎。

由於pytorch最初主要為研究目的而構建,因此不建議用於那些對延遲要求非常高的生產環境。然而,隨著名為open neural network exchange(onnx)的新專案的出現,這種情況正在發生改變,該項目的重點是將在pytorch上開發的模型部署到適用於生產的caffe2這樣的平台上。在本書寫作時,這個專案剛剛啟動,因而過多的定論還為時尚早。該專案了得到facebook和微軟的支援。

本文摘自由人民郵電出版社非同步社群出版的《pytorch深度學習》

譯者:王海玲, 劉江峰

《pytorch深度學習》是使用pytorch構建神經網路模型的實用指南,內容分為9章,包括pytorch與深度學習的基礎知識、神經網路的構成、神經網路的知識、機器學習基礎知識、深度學習在計算機視覺中的應用、深度學習在序列資料和文字中的應用、生成網路、現代網路架構,以及pytorch與深度學習的未來走向。

《pytorch深度學習》適合對深度學習領域感興趣且希望一探pytorch的業內人員閱讀;具備其他深度學習框架使用經驗的讀者,也可以通過本書掌握pytorch的用法。

什麼是深度學習?為何需要深度學習?

深度學習有如下一些眾所周知且被廣泛接受的定義。1 深度學習是機器學習的子集。2 深度學習使用級聯的多層 非線性 處理單元,稱為人工神經網路 ann 以及受大腦結構和功能 神經元 啟發的演算法。每個連續層使用前一層的輸出作為輸入。3 深度學習使用ann進行特徵提取和轉換,處理資料,查詢模式和開發抽象。...

深度學習流行網路與資料集

一.常用網路 深度學習相關的幾個比較著名的網路,alexnet vgg googlenet resnet。模型alexnet vgg googlenet resnet 時間2012 2014 2014 2015層數8 1922 152top 5錯誤率 15.3 7.3 6.66 3.57 卷積層數5...

簡單例項講解為何深度學習有效

在之前的一些年裡,深度學習已經占領了模式識別領域,之後又橫掃了計算機數視覺,之後自然語言處理也慢慢的朝著這個方向開始了它的發展。但是雖然有這樣的結果,我們還是想知道為什麼深度學習效果是如此的好呢?這裡講一些目前我們經常應用的前人在自然語言處理上研究的成果,來說說深層神經網路!在下面,會明確告訴大家深...