深度學習算法完整指南,讓我們深入瞭解深度學習的世界

深度學習是與“機器學習”相關的超級名號,而“機器學習”則是與人工智能相關的超級名號。在過去的幾年裡,深度學習這個詞出現得太頻繁了:最普遍的用例是圖像處理。儘管人臉識別功能已經存在了很長一段時間,但它的完善是沒有限制的。

對於想從頭開始深度學習的人來說,這似乎很混亂。如何理解它是如何工作的?讓我們談論真正的算法,而不是炒作術語吧。我的主要目標是讓您對該領域有一個總體瞭解,並幫助您瞭解每種特定情況下應使用的算法。最不枯燥的解釋,最少複雜的短語。讓我們深入研究一些重要的內容。

讓我們開始吧。

神經網絡:基礎

神經網絡是一種具有相互連接的節點的計算系統,其工作方式更像人腦中的神經元。這些神經元處理並在它們之間傳輸信息。每個神經網絡是一系列算法,努力通過模仿人腦操作方式的過程來識別一組數據中的潛在關係。

深度學習算法完整指南,讓我們深入瞭解深度學習的世界

深度學習算法和典型神經網絡的區別是什麼?最明顯的區別是:深度學習中使用的神經網絡有更多的隱藏層。這些層位於第一層或輸入層和最後一層的神經元之間。此外,不必將所有神經元在不同級別上相互連接。

如果您尚未對此有足夠的瞭解,建議您熟悉神經網絡的基礎知識。


你應該知道的9種深度學習算法


深度學習算法完整指南,讓我們深入瞭解深度學習的世界

現在讓我們談談更復雜的事情。深度學習算法,或者換句話說,就是使我們能夠使用這一尖端技術的機制:

1.反向傳播

反向傳播算法是一種適用於訓練前饋神經網絡的監督學習的受監督算法。從本質上講,反向傳播評估了代價函數的導數的表達式,作為從左到右-“向後”的每個層之間的導數的乘積,每個層之間的梯度的權重是對部分乘積的簡單修改(“向後傳播誤差”)。

我們向網絡提供數據,它產生一個輸出,我們將該輸出與所需的輸出(使用損失函數)進行比較,並根據差異重新調整權重。重複一遍。重複一遍。權重的調整使用稱為隨機梯度下降的非線性優化技術來執行。

假設出於某種原因,我們想用樹來識別圖像。我們給網絡提供任何類型的圖像,它產生一個輸出。因為我們知道圖像是否有樹,我們可以比較輸出和我們的真相,並調整網絡。隨著我們傳遞越來越多的圖像,網絡將會產生越來越少的錯誤。現在我們可以用一個未知的圖像來填充它,它將告訴我們圖像是否包含樹。很酷,對吧?

更深入的文章:神經網絡和反向傳播以簡單的方式解釋(https://medium.com/datathings/neural-networks-and-backpropagation-explained-in-a-simple-way-f540a3611f5e)

2.前饋神經網絡( FNN )

前饋神經網絡通常是完全連接的,這意味著層中的每神經元與下一層中的所有其他神經元連接。所描述的結構稱為多層感知,起源於1958年。單層感知器只能學習線性可分離的模式,但多層感知能夠學習數據之間的非線性關係。

前饋網絡的目標是近似某個函數f。, fi ,=(x)的一個輸入x映射到Y類。前饋網絡定義了一個映射y = f(x;θ)並學習了導致最佳函數逼近的參數θ的值。


深度學習算法完整指南,讓我們深入瞭解深度學習的世界

這些模型被稱為前饋,因為信息通過從 x 進行評估的函數、通過用於分解 f 的中間計算和輸出 y 進行流動。沒有反饋連接,模型的輸出反饋回自身。當前饋神經網絡擴展到包括反饋連接時,它們被稱為循環神經網絡。

3.卷積神經網絡( CNN )

在機器人和自動駕駛輛汽車中, ConvNets 成功地識別了面部、物體和交通標誌。

在拉丁語卷積中,“卷積”是指團結起來。出於數學目的,卷積是一個函數越過另一個函數時兩個函數重疊多少的積分度量。將卷積視為通過乘以兩個函數來混合它們的一種方式。


深度學習算法完整指南,讓我們深入瞭解深度學習的世界


綠色曲線表示藍色曲線和紅色曲線的卷積與t的關係,t由垂直的綠線表示。灰色區域表示乘積g(tauf)(t-tau)與t的關係,因此其面積與t的關係正好是卷積。”

這兩個函數在沿x軸的每個點上重疊的乘積就是它們的卷積。因此,從某種意義上說,這兩個功能正在“整合在一起”。

深度學習算法完整指南,讓我們深入瞭解深度學習的世界


在某種程度上,他們試圖對前饋網絡進行正則化,以避免過度擬合(當模型僅學習預先查看的數據而無法泛化時),這使它們非常擅長識別數據之間的空間關係。

推薦另一篇很棒的文章——網上卷積神經網絡的最好解釋(https://medium.com/technologymadeeasy/the-best-explanation-of-convolutional-neural-networks-on-the-internet-fbb8b1ad5df8)

4.循環神經網絡( RNN )

遞歸神經網絡在許多NLP任務中都非常成功。RNN的想法是一致地使用信息。在傳統的神經網絡中,可以理解所有輸入和輸出都是獨立的。但是,對於許多任務,這是不合適的。如果要預測句子中的下一個單詞,最好考慮一下它前面的單詞。

RNN之所以稱為遞歸,是因為它們對序列的每個元素執行相同的任務,並且輸出取決於先前的計算。RNN的另一種解釋:這些網絡具有“內存”,其中考慮了先驗信息。


深度學習算法完整指南,讓我們深入瞭解深度學習的世界

上圖顯示RNN已部署到完整的網絡。通過掃描,我們只需寫出網絡即可完全保持一致性。例如,如果序列是5個單詞的句子,則掃描將由5層組成,每個單詞一層。

定義 RNN 計算的公式如下:

  • x_t-在時間步t輸入。例如,x_1可以是與句子的第二個單詞相對應的一個熱門向量。
  • s_t是步驟t中的隱藏狀態。這是網絡的“內存”。s_t作為函數取決於先前的狀態和當前輸入x_t:s_t = f(Ux_t + Ws_ {t-1})。函數f通常是非線性的,例如tanh或ReLU。計算第一個隱藏狀態所需的s _ {-1}通常初始化為零(零向量)。
  • o_t-在步驟t退出。例如,如果我們要預測句子中的單詞,則輸出可能是字典中的概率向量。o_t = softmax(Vs_t)

圖像描述的生成

與卷積神經網絡一起, RNN 被用作生成未標記圖像描述的模型的一部分。組合模型將生成的單詞與圖像中的特徵相結合:


深度學習算法完整指南,讓我們深入瞭解深度學習的世界


也不無所提,最常用的RNN類型是LSTM,它比RNN更好地捕獲(存儲)長期依賴關係。但是不用擔心,LSTM與RNN本質上相同,只是它們具有不同的計算隱藏狀態的方式。

LSTM中的內存稱為單元格,您可以將其視為接受先前狀態h_ {t-1}和當前輸入參數x_t作為輸入的黑盒。在內部,這些單元決定要保存的存儲器和要擦除的存儲器。然後,它們將先前的狀態,當前存儲器和輸入參數組合在一起。

這些類型的單元在捕獲(存儲)長期依賴性方面非常有效。

5.遞歸神經網絡

遞歸神經網絡是另一種形式的循環網絡,不同之處在於它們是以樹狀結構形式構造的。因此,它們可以在訓練數據集中對分層結構建模。

由於它們與二叉樹、上下文和基於自然語言的解析器有聯繫,因此傳統上在 NLP 中使用它們,例如音頻到文本的轉錄和情感分析。然而,它們往往比循環網絡慢得多.

6.自動編碼器

自動編碼器是直接分發神經網絡,用於恢復輸出處的輸入信號。內部有一個隱藏層,這是一個描述模型的代碼。自動編碼器的目的是不能準確地將輸入複製到輸出。通常,它們受限於代碼的維度(小於信號的維度)或因代碼中的激活而被定義。由於編碼丟失,輸入信號被恢復為錯誤,但是為了最小化它們,網絡被迫學習選擇最重要的特徵。


深度學習算法完整指南,讓我們深入瞭解深度學習的世界

自動編碼器可以用於預先訓練,例如,當有分類任務時,標記對太少。或者降低數據中的維度,以便以後進行可視化。或者當你需要學習區分輸入信號的有用屬性時。

此外,他們的一些發展(也將在稍後描述),如變分自動編碼器( VAE ),以及它與競爭的生成網絡( GAN )的結合,給出了非常有趣的結果,現在處於前沿的科學生成模型。

7.深度信念網絡和受限玻爾茲曼機

受限玻爾茲曼機是一個隨機的神經網絡(神經網絡意味著我們有神經元類似的單元,其二值激活取決於它們所連接的鄰居;隨機意味著這些激活具有一個概率元素),包括:


  • 一層可見單元(用戶的電影偏好,我們知道並設置了其狀態);
  • 一層隱藏神經元(我們試圖學習的潛在因素);以及
  • 一種偏倚單位(其狀態總是持續的,並且是一種適應每部電影的不同固有大眾的方法)。

此外,每個可見單元連接到所有隱藏神經元(該連接是不定向的,因此每個隱藏神經元也連接到所有可見單元),並且偏置單元連接到所有可見單元和所有隱藏神經元。


深度學習算法完整指南,讓我們深入瞭解深度學習的世界

為了使學習更容易,我們限制網絡,使任何可見單元沒有連接到任何其他可見單元,隱藏神經元沒有連接到任何其他隱藏神經元。

可以堆疊多個 RBM 以形成深度信念網絡。它們看起來完全像全連接層,但它們的訓練方式不同。

8.生成對抗網絡( GAN )

GAN 正成為在線零售銷售的流行 ML 模型,因為它們能夠以越來越顯著的準確性理解和再現視覺內容。用例包括:

  • 從輪廓中填充圖像。
  • 從文本中生成現實圖像。
  • 製作產品原型的真實感描述。
  • 將黑白圖像轉換成顏色。

在視頻製作中, GAN 可用於:

  • 人體行為和運動的模型模式;
  • 預測後續視頻幀;
  • 創建 deeppfake

生成對抗網絡( GAN )有兩個部分:

  • 生成器學會生成可信的數據。生成的實例成為鑑別器的負訓練個示例。
  • 鑑別器學習區分生成器的假數據和真實數據。鑑別器懲罰生成器產生不合理的結果。

建立GAN的第一步是識別所需的最終輸出,並根據這些參數收集初始訓練數據集。然後將這些數據隨機化並輸入到生成器中,直到獲得生成輸出的基本精度為止。


深度學習算法完整指南,讓我們深入瞭解深度學習的世界

然後,將生成的圖像與原始概念的實際數據點一起饋入鑑別器。鑑別器對信息進行過濾,並返回0到1之間的概率來表示每個圖像的真實性(1與真實相關,0與假相關)。然後手動檢查這些值是否成功,並重復進行直到達到所需結果為止。

9.Transformers

Transformers 也是非常新的,它們主要用於語言應用程序,因為它們開始使循環網絡過時。它們基於一種稱為注意的概念,這種概念被用來迫使網絡集中於特定的數據點。

您不需要使用過於複雜的 LSTM 單元,而是使用注意力機制根據輸入的重要性對輸入的不同部分進行加權。注意力機制只不過是另一層有權重,它的唯一目的是調整權重,以一種優先順序的輸入段,而不去鑑別其他部分。

Transformers 實際上由多個堆疊編碼器(形成編碼器層)、多個堆疊解碼器(解碼器層)和多個關注層(自關注和編碼器-解碼器注意事項)組成.


深度學習算法完整指南,讓我們深入瞭解深度學習的世界

Transformers 被設計用於處理各種任務(例如機器翻譯和文本摘要)的有序數據序列,例如自然語言。目前, BERT 和 GPT-2是兩個最著名的預雨自然語言系統,用於多種 NLP任務,它們都基於 Transformers 。

10.Graph 神經網絡

非結構化數據通常不適合深度學習。還有許多實際應用程序,其中的數據是非結構化的,並以圖形格式組織。想想社交網絡,化合物,知識圖譜,空間數據。

Graph 神經網絡的目的是對 Graph 數據建模,這意味著它們標識了圖中節點之間的關係,並生成了它的數字表示。就像一個嵌入。因此,它們以後可以在任何其他機器學習模型中用於各種任務,例如聚類、分類等。


翻譯:未艾信息(http://www.weainfo.net/)

或者關注我們的公眾號:為AI吶喊(weainahan)

我們在頭條上創建了一個專欄歡迎大家點擊鏈接

或者閱讀原文進行試看~


分享到:


相關文章: