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

2021-10-11 09:15:07 字數 3157 閱讀 4840

深度學習有如下一些眾所周知且被廣泛接受的定義。

(1)深度學習是機器學習的子集。

(2)深度學習使用級聯的多層(非線性)處理單元,稱為人工神經網路(ann),以及受大腦結構和功能(神經元)啟發的演算法。每個連續層使用前一層的輸出作為輸入。

(3)深度學習使用ann進行特徵提取和轉換,處理資料,查詢模式和開發抽象。

(4)深度學習可以是監督的(如分類),也可以是無監督的(如模式分析)。

(5)深度學習使用梯度下降演算法來學習與不同抽象級別相對應的多個級別的表示,由此構成概念的層次結構。

(6)深度學習通過學習將世界表示為概念的巢狀層次來實現強大的功能和靈活性,每個概念都是根據更簡單的概念定義的,更抽象的表示是根據較不抽象的概念計算來的。

例如,對於影象分類問題,深度學習模型使用其隱藏層架構以增量方式學習影象類。

首先,它自動提取低層級的特徵,例如識別亮區或暗區;之後,提取高層級特徵(如邊緣);其次,它會提取最高層級的特徵(如形狀),以便對它們進行分類。

每個節點或神經元代表整個影象的某一細微方面。如果將它們放在一起,就描繪了整幅影象。而且它們能夠將影象完全表現出來。此外,網路中的每個節點和每個神經元都被賦予權重。這些權重表示神經元的實際權重,它與輸出的關聯強度相關。這些權重可以在模型開發過程中進行調整。

(1)手工特徵提取與自動特徵提取。為了用傳統ml技術解決影象處理問題,最重要的預處理步驟是手工特徵(如hog和sift)提取,以降低影象的複雜性並使模式對學習演算法更加可見,從而使其更好地工作。深度學習演算法最大的優點是它們嘗試以增量方式訓練影象,從而學習低階和高階特徵。這消除了在提取或工程中對手工製作的特徵的需要。

(2)部分與端到端解決方案。傳統的ml技術通過分解問題,首先解決不同的部分,然後將結果聚合在一起提供輸出來解決問題,而深度學習技術則使用端到端方法來解決問題。例如,在目標檢測問題中,諸如svm的經典ml演算法需要乙個邊界框目標檢測演算法,該演算法將識別所有可能的目標,將hog作為ml演算法的輸入,以便識別正確的目標。但深度學習方法(如yolo網路)將影象作為輸入,並提供物件的位置和名稱作為輸出。

(3)訓練時間和高階硬體。與傳統的ml演算法不同,深度學習演算法由於有大量的引數且資料集相對龐大,需要很長時間來訓練,因此應該始終在gpu等高階硬體上訓練深度學習模型,並記住訓練乙個合理的時間,因為時間是有效訓練模型的乙個非常重要的方面。

(4)適應性和可轉移性。經典的ml技術有很大的侷限性,而深度學習技術則應用廣泛,且適用於不同的領域。其中很大一部分用於轉移學習,這使得人們能夠將預先訓練的深層網路用於同一領域內的不同應用。例如,在影象處理中,通常使用預先訓練的影象分類網路作為特徵提取的前端來檢測目標和分割網路。

現在來看看ml和深度學習模型在影象分類(如貓和狗的影象)方面的區別。傳統的ml有特徵提取和分類器,可以用來解決任何問題,如圖10-1所示。

圖10-1 傳統的和經典的ml

圖10-2所示的是深度學習網路,通過深度學習,可以看到前面討論過的隱藏層以及實際決策過程。

圖10-2 深度學習網路

如前所述,如果有更多的資料,那麼最好的選擇就是使用效能更好的深度網路來處理。很多時候,使用的資料越多,結果就越準確。經典的ml方法需要一組複雜的ml演算法,而更多的資料只會影響其精度,需要使用複雜的方法來彌補較低準確性的缺陷。此外,學習也受到影響——當新增更多的訓練資料來訓練模型時,學習幾乎在某個時間點停止。圖10-3所示的圖形描述了深度學習演算法與傳統的機器學習演算法的效能差異。

圖10-3 深度學習演算法與經典的機器學習演算法的效能比較

本文摘自《python影象處理實戰》

[印度] 桑迪潘·戴伊(sandipan dey) 著,陳盈,鄧軍 譯

本書通過python語言講解無監督學習,全書內容包括10章,前面9章由淺入深地講解了無監督學習的基礎知識、聚類的基礎知識、高階聚類、層次聚類、軟聚類和高斯混合模型、異常檢測、降維和分量分析、無監督神經網路模型、生成式對抗網路和自組織對映,第10章以問題解答的形式對前面9章涉及的問題給出了解決方案。

遷移學習是機器學習技術的一種,它可以從一系列機器學習問題的訓練中獲得知識,並將這些知識用於訓練其他相似型別的問題。

本書分為3個部分:第1部分是深度學習基礎,介紹了機器學習的基礎知識、深度學習的基礎知識和深度學習的架構;第2部分是遷移學習精要,介紹了遷移學習的基礎知識和遷移學習的威力;第3部分是遷移學習案例研究,介紹了影象識別和分類、文字文件分類、音訊事件識別和分類、deepdream演算法、風格遷移、自**像掃瞄生成器、影象著色等內容。

本書適合資料科學家、機器學習工程師和資料分析師閱讀,也適合對機器學習和遷移學習感興趣的讀者閱讀。在閱讀本書之前,希望讀者對機器學習和python程式設計有基本的掌握。

生成對抗網路(generative adversarial network,gan)是神經網路領域的新星,被譽為「機器學習領域近20年來最酷的想法」。

本書以直白、簡短的方式向讀者介紹了生成對抗網路,並且教讀者如何使用pytorch按部就班地編寫生成對抗網路。全書共3章和5個附錄,分別介紹了pytorch基礎知識,用pytorch開發神經網路,改良神經網路以提公升效果,引入cuda和gpu以加速gan訓練,以及生成高質量影象的卷積gan、條件式gan等話題。附錄部分介紹了在很多機器學習相關教程中被忽略的主題,包括計算平衡gan的理想損失值、概率分布和取樣,以及卷積如何工作,還簡單解釋了為什麼梯度下降不適用於對抗式機器學習。

什麼是深度學習?

讓我們先從深度學習的定義入手,然後順便理一下深度學習 機器學習以及ai之間的一些聯絡 深度學習是指多層的人工神經網路 和訓練它的方法。一層神經網路 會把大量矩陣數字作為輸入,通過非線性啟用方法取權重,再產生另乙個資料 三者聯絡如下 機器學習 抵達ai目標的一條路徑 深度學習是機器學習 研究中的乙個新...

深度學習筆記(一)什麼是深度學習

從簡單的經驗中獲取知識,不需要人類去設計 規範知識,因為層次化的簡單概念可以讓計算機去學習,從而形成複雜的概念,如果用一張圖來表示就是一層一層,所以叫深度學習。ibm深藍 1997年 知識基礎 knowledge base 用公式來表述現實世界,現在還沒有成功案例。機器學習 machine lear...

深度學習 為什麼深度學習需要大記憶體?

本文主要譯介自graphcore在2017年1月的這篇部落格 why is so much memory needed for deep neural networks。介紹了深度學習中記憶體的開銷,以及降低記憶體需求的幾種解決方案。考慮乙個單層線性網路,附帶乙個啟用函式 h w 1x w 2h w...