1. 程式人生 > >深度學習的專有名詞

深度學習的專有名詞

基礎名詞篇

1. 神經元

就像神經元構成我們大腦的基本組成部分一樣,神經元形成神經網路的基本結構。想想當我們人腦獲得一個新資訊時我們會做什麼,當我們得到資訊時,我們會處理它,然後生成一個輸出。

類似的,神經網路中的神經元接收一個輸入,處理它併產生一個輸出,輸出被髮送到其他神經元進行進一步的處理,或者直接輸出。

2. 權重

當輸入進入神經元時,會乘以一個權重。例如,如果一個神經元有兩個輸入,那麼每個輸入都會有一個相關的權重分配給它。我們在模型訓練過程中隨機初始化權重,並更新這些權重。

神經網路經過訓練後,賦予重要的輸入更高的權重,而被認為不重要的輸入會得到不那麼重要的權重。0的權重表示該特性是無關緊要的。

讓我們假設輸入為a,和與a相關的權重W1。經過節點後,輸入變成了a*W1。

3. 偏置

除了權重,另一個線性元件應用於輸入,稱為偏置。它被新增到輸入的權重乘法的結果中。

這種偏置主要是為了改變權重的範圍。

在新增偏置後,結果看起來像a*W1+偏置。這是輸入變換的最後一個線性分量。

4.啟用函式一旦將線性分量應用於輸入,就會應用非線性函式。這是通過將啟用函式應用到線性組合來完成的。

啟用函式將輸入訊號轉換為輸出訊號。啟用函式應用後的輸出看起來像f(a*W1+b),f()是啟用函式。

在下面的圖中,我們有n個輸入,從X1到Xn,以及相應的權重Wk1到Wkn。我們有一個偏置值,即bk,權重首先乘以相應的輸入,加上偏置,共同組成u。

啟用函式被應用於u,即f(u),我們從神經元接收最終輸出,如yk=f(u)。

最常用的啟用函式是——Sigmoid、ReLU和softmax。

Sigmoid

最常用的啟用函式之一。它被定義為:

資料來源:維基百科

sigmoid轉換會在0~1之間生成更平滑的值。有時候我們需要微調輸入值,以觀察輸出值的變化,光滑曲線可以使我們做到這一點,因此其優於階躍函式。

ReLU(修正線性單元)

最近的網路更傾向於使用ReLU啟用函式來處理隱含層。函式的定義如下:

資料來源:cs231n課程

使用ReLU的主要好處是它對所有大於0的輸入有一個恆定的導數值。常量導數值可以使網路訓練速度更快。

Softmax

Softmax啟用函式通常在輸出層用於分類問題。它與sigmoid函式類似,唯一的區別是輸出被標準化到1。

如果我們有一個二進位制輸出,那麼sigmoid函式就會起作用,但是如果我們有一個多類分類問題,那麼,softmax可以更加容易地為每個類賦值,這些值可以很容易地解釋為概率。

例如,你正在嘗試識別一個看起來像8的6。該函式為每個數字分配概率值如下。我們可以很容易地看出,最高概率被分配給6,下一個最高分配給8。

5.神經網路

神經網路構成深度學習的主幹。神經網路的目標是找到一個未知函式的近似值。它是由相互聯絡的神經元形成的。這些神經元有權重和偏置,在神經網路訓練期間根據錯誤進行更新。啟用函式對線性組合進行非線性轉換,然後生成輸出。再由被啟用的神經元的組合給出輸出。

神經網路是由許多相互關聯的概念化的人工神經元組成的,它們之間傳遞資料,並且根據網路的“經驗”來調整權重。神經元有啟用閾值,如果通過的資料和權重組合滿足閾值,就會被觸發;而被啟用的神經元的組合會導致“學習”。

6. 輸入/輸出/隱含層

顧名思義,輸入層是接收輸入資料的,並且是網路的第一層。輸出層是生成輸出資料的一層,或者是神經網路的最後一層。處理層是神經網路中的隱含層。這些隱含層對傳入資料執行特定任務並生成輸出資料傳遞到下一層。輸入層和輸出層是可見的,而中間層是隱含的。

來源:cs231n

7. MLP(多層感知機)

單個神經元無法執行高度複雜的任務,因此,我們使用堆疊的神經元來產生所需的輸出。在最簡單的神經網路中,會有一個輸入層,一個隱含層和一個輸出層,我們稱其為感知機。每一層包括多個神經元,並且每一層中的所有神經元都連線到下一層的所有神經元。這個神經網路也可以被稱為完全連線的神經網路。在輸入層和輸出層之間加入多層隱含層,即為多層感知機。

8. 前向傳播

前向傳播是指輸入層資料通過隱含層到輸出層的運動。在前向傳播中,資訊沿著一個方向前進。輸入層將資料提供給隱含層,然後輸出層生成輸出。沒有反向運動。

9. 成本函式

當我們建立一個神經網路時,神經網路試圖會使輸出預測儘可能接近實際值。我們使用成本/損失函式來衡量神經網路的準確性。成本或損失功能會在發生錯誤時嘗試修正網路。

我們在執行網路時的目標是提高我們的預測精度,並減少誤差,從而最大限度地降低成本。

最優化的輸出是成本或損失函式值最小的輸出。

如果將成本函式定義為均方誤差,則可以寫為:

其中m是訓練輸入的數量,a是預測值,y是該特定示例的實際值。學習過程圍繞最小化成本。

10. 梯度下降

梯度下降是一種用於最小化成本的優化演算法。例如,在爬山的時候,人應該一步一步走下來,而不是一下子跳下來。

因此,梯度下降要做的是,從一個點x出發,向下移動一點,即delta h,並將位置更新為x-delta h,繼續向下移動,直到達到底部,同時考慮最低成本點。

在數學上,為了找到函式的區域性最小值,應採取與函式的梯度的負數成比例的步長。

11.學習速率

學習速率被定義為每一次迭代中成本函式中最小化的量。簡單來說,我們下降到成本函式最小值的速率就是學習速率。學習速率選擇起來要仔細,不能非常高,也不能很低,而且不能非常低,這樣才能使網路永遠收斂。

12. 反向傳播

當我們定義一個神經網路時,可以將隨機權重和偏置值分配給每一個節點。一旦獲取了單次迭代的輸出值,就可以計算網路的錯誤。把這個錯誤反饋給網路,以及成本函式的梯度來更新網路的權重。權重更新後可以減少後續迭代中的錯誤。使用成本函式梯度來進行權重的更新被稱為反向傳播。

在反向傳播中,網路的運動是向後的,誤差隨梯度從外層流入,穿過隱含層,權重被更新。

13. 批次

在訓練神經網路時,並非把所有資料一次性輸入進去,而是把資料分成幾個大小相等的塊。對資料進行批量訓練的模型比整個資料集一次性輸入的模型更加廣義化。

14. 訓練週期

訓練週期指的是前向傳播和反向傳播中所有批次的單一訓練迭代。這意味著1個訓練週期是所有輸入資料的單次向前和向後傳遞。

你可以選擇用來訓練你的網路的訓練週期的數量。更多的訓練週期可能會顯示出更高的網路精度,但是也需要耗費更長的時間。另外,你必須注意,如果訓練週期過多,網路容易出現過擬合現象。

15. 丟棄

這是一種正則化技術,可防止網路過擬合。顧名思義,在訓練期間,隱含層中的一定數量的神經元被隨機丟棄。即訓練會發生在神經網路的不同組合的幾個神經網路架構上。可以把丟棄視為一種綜合技術,然後把多個網路的輸出用於產生最終輸出。

來源:Original paper

16. 批量標準化

批量標準化可以被看作是在河中設定的特定檢查點。批量標準化確保資料的分佈和下一層希望得到的一樣。當我們訓練神經網路時,每一步梯度下降後,權重會改變,這也改變了被髮送到下一層的資料的形狀。

但是,下一層會預計這種分佈與之前看到的類似。因此,我們在將資料傳送到下一層之前應明確地將資料標準化。

卷積神經網路篇

17. 過濾器

卷積神經網路的一個過濾器就像一個加權矩陣,我們將輸入影象的一部分相乘,生成一個複雜的輸出。假設我們有一個28*28大小的影象。我們隨機分配一個大小為3*3的過濾器,然後用不同的3*3部分的影象相乘,形成一個複雜的輸出。過濾尺寸通常小於原始影象尺寸。在成本最小化的反向傳播過程中,過濾器的權重值不斷更新。這個過濾器是一個3*3矩陣

。它與影象的每3*3部分相乘以形成卷積特性。

18. CNN(卷積神經網路)

卷積神經網路大部分用於處理影象資料。假設我們有一個大小為(28*28*3)的輸入,如果我們使用一個正常的神經網路,就會有2352(28*28*3)個引數。隨著影象的大小增加,引數的數量變得非常大。我們“卷積”影象來減少引數的數量(如17所示的過濾器)。當我們在輸入資料的寬度和高度上滑動過濾器時,會產生一個二維的啟用對映,在每一個位置都輸出經過過濾器後的輸出。我們將在深層維度上堆疊這些啟用對映,並生成輸出資料。你可以在下圖中看到更清晰的圖片。

19. 池化

在卷積層之間引入池層是很常見的。這基本上是為了減少一些引數和防止過擬合。最常見的池型別是使用MAX操作的過濾大小(2*2)的池層。它用來選取原始影象的每4*4矩陣中的最大值。

還可以使用其他操作(如平均池)進行池化,但是最大池在實踐中表現更好。

20. 填充

填充是指在影象中新增額外的零層,這樣輸出影象的大小與輸入影象的大小相同。這就是同樣的填充。

在過濾器的應用中,相同填充的情況下的卷積層的大小與實際影象大小相等。有效填充是指將影象儲存為具有實際或“有效”的影象的所有畫素。在這種情況下,經過過濾器後,每個卷積層輸出的長度和寬度不斷減小。

21.資料增強

資料增強是指在給定資料基礎上新增新資料,幫助預測。例如,增加影象亮度可以更容易看到較暗的影象中的貓,或者識別數字9時可以選擇稍微傾斜或旋轉。在這種情況下,旋轉能夠解決問題,並提高模型的準確性。通過旋轉或增亮,我們可以提高資料的質量。這就是資料增強。

遞迴神經網路篇

22. 迴圈神經元

神經元的輸出在T時間內被髮送回輸入。如下圖中輸出值被作為輸入值經過T次傳送回來。展開的神經元就像連在一起的T個不同的神經元。這種神經元的基本優點是,它給出了一個更廣義的輸出。

來源:cs231n

23. RNN(迴圈神經網路)

迴圈神經網路用於連續的資料,上一個輸出被用來預測下一個。在這種情況下,網路內部有迴圈。隱含神經元內的迴圈可以在一段時間記憶體儲關於前幾個單詞的資訊,從而能夠預測輸出。隱含層的輸出在T時間戳內再次被髮送到隱含層。展開的神經元看起來像22條中的圖。在完成所有的時間戳後,迴圈神經元輸出到下一層。傳送的輸出更廣泛,而先前的資訊將保留較長時間。

最後根據展開的網路對誤差進行反向傳播以更新權重,這被稱為通過時間的反向傳播(BPTT)。

24.梯度消失

梯度消失問題出現在啟用函式的梯度很小的情況下。當權重與這些低梯度相乘,逐層經過神經網路時,會變得非常小,甚至“消失”。這使得神經網路忘記了長期依賴。在迴圈神經網路中這通常是一個問題,因為長期依賴關係對網路的記憶非常重要。

梯度消失問題可以通過使用像ReLu這種沒有小梯度的啟用函式來解決。

25.梯度爆炸問題

和梯度消失問題正好相反,梯度爆炸問題指的是啟用函式的梯度太大。在反向傳播過程中,梯度爆炸令特定節點的權重非常高,而其他節點的權重顯得微不足道。

梯度爆炸可以通過剪下梯度來解決,這樣就不會超過某個值。

--------------------- 本文來自 AcceptedWilson 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/JerryWisdom666/article/details/78238992?utm_source=copy