新聞中心

EEPW首頁 > 智能計算 > 設計應用 > 深度學習入門必須理解這25個概念

深度學習入門必須理解這25個概念

作者: 時間:2017-10-17 來源:網(wǎng)絡 收藏

  基礎

本文引用地址:http://butianyuan.cn/article/201710/370123.htm

  1、神經(jīng)元(Neuron)——就像形成我們大腦基本元素的神經(jīng)元一樣,神經(jīng)元形成的基本結構。想象一下,當我們得到新信息時我們該怎么做。當我們獲取信息時,我們一般會處理它,然后生成一個輸出。類似地,在的情況下,神經(jīng)元接收輸入,處理它并產(chǎn)生輸出,而這個輸出被發(fā)送到其他神經(jīng)元用于進一步處理,或者作為最終輸出進行輸出。

    

 

  2、權重(Weights)——當輸入進入神經(jīng)元時,它會乘以一個權重。例如,如果一個神經(jīng)元有兩個輸入,則每個輸入將具有分配給它的一個關聯(lián)權重。我們隨機初始化權重,并在模型訓練過程中更新這些權重。訓練后的神經(jīng)網(wǎng)絡對其輸入賦予較高的權重,這是它認為與不那么重要的輸入相比更為重要的輸入。為零的權重則表示特定的特征是微不足道的。

  讓我們假設輸入為 a,并且與其相關聯(lián)的權重為 W1,那么在通過節(jié)點之后,輸入變?yōu)?nbsp;a *W1。

    

 

  3、偏差(Bias)——除了權重之外,另一個被應用于輸入的線性分量被稱為偏差。它被加到權重與輸入相乘的結果中?;旧咸砑悠畹哪康氖莵砀淖儥嘀嘏c輸入相乘所得結果的范圍的。添加偏差后,結果將看起來像 a* W1 偏差。這是輸入變換的最終線性分量。

  4、激活函數(shù)(Activation Function)——一旦將線性分量應用于輸入,將會需要應用一個非線性函數(shù)。這通過將激活函數(shù)應用于線性組合來完成。激活函數(shù)將輸入信號轉換為輸出信號。應用激活函數(shù)后的輸出看起來像 f(a *W1+ b),其中 f()就是激活函數(shù)。

  在下圖中,我們將"n"個輸入給定為 X1 到 Xn 而與其相應的權重為 Wk1 到 Wkn。我們有一個給定值為 bk 的偏差。權重首先乘以與其對應的輸入,然后與偏差加在一起。而這個值叫做 u。

  U =ΣW*X +b

  激活函數(shù)被應用于 u,即 f(u),并且我們會從神經(jīng)元接收最終輸出,如 yk = f(u)。

    

 

  常用的激活函數(shù)

  最常用的激活函數(shù)就是 Sigmoid,ReLU 和 softmax

  (a)Sigmoid——最常用的激活函數(shù)之一是 Sigmoid,它被定義為:

  sigmoid(x)=1/(1+e -x )

    

 

  Sigmoid 變換產(chǎn)生一個值為 0 到 1 之間更平滑的范圍。我們可能需要觀察在輸入值略有變化時輸出值中發(fā)生的變化。光滑的曲線使我們能夠做到這一點,因此優(yōu)于階躍函數(shù)。

  (b)ReLU(整流線性單位)——與 Sigmoid 函數(shù)不同的是,最近的網(wǎng)絡更喜歡使用 ReLu 激活函數(shù)來處理隱藏層。該函數(shù)定義為:

  f(x)=max(x,0)

  當 X>0 時,函數(shù)的輸出值為 X;當 X<=0 時,輸出值為 0。函數(shù)圖如下圖所示:

    

 

  使用 ReLU 函數(shù)的最主要的好處是對于大于 0 的所有輸入來說,它都有一個不變的導數(shù)值。常數(shù)導數(shù)值有助于網(wǎng)絡訓練進行得更快。

  (c) Softmax——Softmax 激活函數(shù)通常用于輸出層,用于分類問題。它與 sigmoid 函數(shù)是很類似的,唯一的區(qū)別就是輸出被歸一化為總和為 1。Sigmoid 函數(shù)將發(fā)揮作用以防我們有一個二進制輸出,但是如果我們有一個多類分類問題,softmax 函數(shù)使為每個類分配值這種操作變得相當簡單,而這可以將其解釋為概率。

  以這種方式來操作的話,我們很容易看到——假設你正在嘗試識別一個可能看起來像 8 的 6。該函數(shù)將為每個數(shù)字分配值如下。我們可以很容易地看出,最高概率被分配給 6,而下一個最高概率分配給 8,依此類推……

    

 

  5、神經(jīng)網(wǎng)絡(Neural Network)——神經(jīng)網(wǎng)絡構成了的支柱。神經(jīng)網(wǎng)絡的目標是找到一個未知函數(shù)的近似值。它由相互聯(lián)系的神經(jīng)元形成。這些神經(jīng)元具有權重和在網(wǎng)絡訓練期間根據(jù)錯誤來進行更新的偏差。激活函數(shù)將非線性變換置于線性組合,而這個線性組合稍后會生成輸出。激活的神經(jīng)元的組合會給出輸出值。

  一個很好的神經(jīng)網(wǎng)絡定義:

  "神經(jīng)網(wǎng)絡由許多相互關聯(lián)的概念化的人造神經(jīng)元組成,它們之間傳遞相互數(shù)據(jù),并且具有根據(jù)網(wǎng)絡"經(jīng)驗"調整的相關權重。神經(jīng)元具有激活閾值,如果通過其相關權重的組合和傳遞給他們的數(shù)據(jù)滿足這個閾值的話,其將被解雇;發(fā)射神經(jīng)元的組合導致"學習"。

  6、輸入/輸出/隱藏層(Input / Output / Hidden Layer)——正如它們名字所代表的那樣,輸入層是接收輸入那一層,本質上是網(wǎng)絡的第一層。而輸出層是生成輸出的那一層,也可以說是網(wǎng)絡的最終層。處理層是網(wǎng)絡中的隱藏層。這些隱藏層是對傳入數(shù)據(jù)執(zhí)行特定任務并將其生成的輸出傳遞到下一層的那些層。輸入和輸出層是我們可見的,而中間層則是隱藏的。

    

 

  7、MLP(多層感知器)——單個神經(jīng)元將無法執(zhí)行高度復雜的任務。因此,我們使用堆棧的神經(jīng)元來生成我們所需要的輸出。在最簡單的網(wǎng)絡中,我們將有一個輸入層、一個隱藏層和一個輸出層。每個層都有多個神經(jīng)元,并且每個層中的所有神經(jīng)元都連接到下一層的所有神經(jīng)元。這些網(wǎng)絡也可以被稱為完全連接的網(wǎng)絡。

    

 

  8、正向傳播(Forward Propagation)——正向傳播是指輸入通過隱藏層到輸出層的運動。在正向傳播中,信息沿著一個單一方向前進。輸入層將輸入提供給隱藏層,然后生成輸出。這過程中是沒有反向運動的。

  9、成本函數(shù)(Cost Function)——當我們建立一個網(wǎng)絡時,網(wǎng)絡試圖將輸出預測得盡可能靠近實際值。我們使用成本/損失函數(shù)來衡量網(wǎng)絡的準確性。而成本或損失函數(shù)會在發(fā)生錯誤時嘗試懲罰網(wǎng)絡。

  我們在運行網(wǎng)絡時的目標是提高我們的預測精度并減少誤差,從而最大限度地降低成本。最優(yōu)化的輸出是那些成本或損失函數(shù)值最小的輸出。

  如果我將成本函數(shù)定義為均方誤差,則可以寫為:

  C= 1/m ∑(y–a)^2,

  其中 m 是訓練輸入的數(shù)量,a 是預測值,y 是該特定示例的實際值。

  學習過程圍繞最小化成本來進行。

  10、梯度下降(Gradient Descent)——梯度下降是一種最小化成本的優(yōu)化算法。要直觀地想一想,在爬山的時候,你應該會采取小步驟,一步一步走下來,而不是一下子跳下來。因此,我們所做的就是,如果我們從一個點 x 開始,我們向下移動一點,即Δh,并將我們的位置更新為 x-Δh,并且我們繼續(xù)保持一致,直到達到底部??紤]最低成本點。

    

 

  在數(shù)學上,為了找到函數(shù)的局部最小值,我們通常采取與函數(shù)梯度的負數(shù)成比例的步長。

  11、學習率(Learning Rate)——學習率被定義為每次迭代中成本函數(shù)中最小化的量。簡單來說,我們下降到成本函數(shù)的最小值的速率是學習率。我們應該非常仔細地選擇學習率,因為它不應該是非常大的,以至于最佳解決方案被錯過,也不應該非常低,以至于網(wǎng)絡需要融合。

    

 

  12、反向傳播(Backpropagation)——當我們定義神經(jīng)網(wǎng)絡時,我們?yōu)槲覀兊墓?jié)點分配隨機權重和偏差值。一旦我們收到單次迭代的輸出,我們就可以計算出網(wǎng)絡的錯誤。然后將該錯誤與成本函數(shù)的梯度一起反饋給網(wǎng)絡以更新網(wǎng)絡的權重。 最后更新這些權重,以便減少后續(xù)迭代中的錯誤。使用成本函數(shù)的梯度的權重的更新被稱為反向傳播。

  在反向傳播中,網(wǎng)絡的運動是向后的,錯誤隨著梯度從外層通過隱藏層流回,權重被更新。

  13、批次(Batches)——在訓練神經(jīng)網(wǎng)絡的同時,不用一次發(fā)送整個輸入,我們將輸入分成幾個隨機大小相等的塊。與整個數(shù)據(jù)集一次性饋送到網(wǎng)絡時建立的模型相比,批量訓練數(shù)據(jù)使得模型更加廣義化。

  14、周期(Epochs)——周期被定義為向前和向后傳播中所有批次的單次訓練迭代。這意味著 1 個周期是整個輸入數(shù)據(jù)的單次向前和向后傳遞。

  你可以選擇你用來訓練網(wǎng)絡的周期數(shù)量,更多的周期將顯示出更高的網(wǎng)絡準確性,然而,網(wǎng)絡融合也需要更長的時間。另外,你必須注意,如果周期數(shù)太高,網(wǎng)絡可能會過度擬合。

  15、丟棄(Dropout)——Dropout 是一種正則化技術,可防止網(wǎng)絡過度擬合套。顧名思義,在訓練期間,隱藏層中的一定數(shù)量的神經(jīng)元被隨機地丟棄。這意味著訓練發(fā)生在神經(jīng)網(wǎng)絡的不同組合的神經(jīng)網(wǎng)絡的幾個架構上。你可以將 Dropout 視為一種綜合技術,然后將多個網(wǎng)絡的輸出用于產(chǎn)生最終輸出。

    

 

  16、批量歸一化(Batch Normalization)——作為一個概念,批量歸一化可以被認為是我們在河流中設定為特定檢查點的水壩。這樣做是為了確保數(shù)據(jù)的分發(fā)與希望獲得的下一層相同。當我們訓練神經(jīng)網(wǎng)絡時,權重在梯度下降的每個步驟之后都會改變,這會改變數(shù)據(jù)的形狀如何發(fā)送到下一層。

    

 

  但是下一層預期分布類似于之前所看到的分布。 所以我們在將數(shù)據(jù)發(fā)送到下一層之前明確規(guī)范化數(shù)據(jù)。

    

 

  卷積神經(jīng)網(wǎng)絡

  17、濾波器(Filters)——CNN 中的濾波器與加權矩陣一樣,它與輸入圖像的一部分相乘以產(chǎn)生一個回旋輸出。我們假設有一個大小為 28 28 的圖像,我們隨機分配一個大小為 3 3 的濾波器,然后與圖像不同的 3 * 3 部分相乘,形成所謂的卷積輸出。濾波器尺寸通常小于原始圖像尺寸。在成本最小化的反向傳播期間,濾波器值被更新為重量值。

  參考一下下圖,這里 filter 是一個 3 * 3 矩陣:

    

 

  與圖像的每個 3 * 3 部分相乘以形成卷積特征。

    

 

  18、卷積神經(jīng)網(wǎng)絡(CNN)——卷積神經(jīng)網(wǎng)絡基本上應用于圖像數(shù)據(jù)。假設我們有一個輸入的大小(28 28 3),如果我們使用正常的神經(jīng)網(wǎng)絡,將有 2352(28 28 3)參數(shù)。并且隨著圖像的大小增加參數(shù)的數(shù)量變得非常大。我們"卷積"圖像以減少參數(shù)數(shù)量(如上面濾波器定義所示)。當我們將濾波器滑動到輸入體積的寬度和高度時,將產(chǎn)生一個二維激活圖,給出該濾波器在每個位置的輸出。我們將沿深度尺寸堆疊這些激活圖,并產(chǎn)生輸出量。

  你可以看到下面的圖,以獲得更清晰的印象。

    

 

  19、池化(Pooling)——通常在卷積層之間定期引入池層。這基本上是為了減少一些參數(shù),并防止過度擬合。最常見的池化類型是使用 MAX 操作的濾波器尺寸(2,2)的池層。它會做的是,它將占用原始圖像的每個 4 * 4 矩陣的最大值。

    

 

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

  20、填充(Padding)——填充是指在圖像之間添加額外的零層,以使輸出圖像的大小與輸入相同。這被稱為相同的填充。

    

 

  在應用濾波器之后,在相同填充的情況下,卷積層具有等于實際圖像的大小。

  有效填充是指將圖像保持為具有實際或"有效"的圖像的所有像素。在這種情況下,在應用濾波器之后,輸出的長度和寬度的大小在每個卷積層處不斷減小。

  21、數(shù)據(jù)增強(Data Augmentation)——數(shù)據(jù)增強是指從給定數(shù)據(jù)導出的新數(shù)據(jù)的添加,這可能被證明對預測有益。例如,如果你使光線變亮,可能更容易在較暗的圖像中看到貓,或者例如,數(shù)字識別中的 9 可能會稍微傾斜或旋轉。在這種情況下,旋轉將解決問題并提高我們的模型的準確性。通過旋轉或增亮,我們正在提高數(shù)據(jù)的質量。這被稱為數(shù)據(jù)增強。

    

 

  循環(huán)神經(jīng)網(wǎng)絡

    

 

  22、循環(huán)神經(jīng)元(Recurrent Neuron)——循環(huán)神經(jīng)元是在 T 時間內將神經(jīng)元的輸出發(fā)送回給它。如果你看圖,輸出將返回輸入 t 次。展開的神經(jīng)元看起來像連接在一起的 t 個不同的神經(jīng)元。這個神經(jīng)元的基本優(yōu)點是它給出了更廣義的輸出。

  23、循環(huán)神經(jīng)網(wǎng)絡(RNN)——循環(huán)神經(jīng)網(wǎng)絡特別用于順序數(shù)據(jù),其中先前的輸出用于預測下一個輸出。在這種情況下,網(wǎng)絡中有循環(huán)。隱藏神經(jīng)元內的循環(huán)使他們能夠存儲有關前一個單詞的信息一段時間,以便能夠預測輸出。隱藏層的輸出在 t 時間戳內再次發(fā)送到隱藏層。展開的神經(jīng)元看起來像上圖。只有在完成所有的時間戳后,循環(huán)神經(jīng)元的輸出才能進入下一層。發(fā)送的輸出更廣泛,以前的信息保留的時間也較長。

  然后根據(jù)展開的網(wǎng)絡將錯誤反向傳播以更新權重。這被稱為通過時間的反向傳播(BPTT)。

  24、消失梯度問題(Vanishing Gradient Problem)——激活函數(shù)的梯度非常小的情況下會出現(xiàn)消失梯度問題。在權重乘以這些低梯度時的反向傳播過程中,它們往往變得非常小,并且隨著網(wǎng)絡進一步深入而"消失"。這使得神經(jīng)網(wǎng)絡忘記了長距離依賴。這對循環(huán)神經(jīng)網(wǎng)絡來說是一個問題,長期依賴對于網(wǎng)絡來說是非常重要的。

  這可以通過使用不具有小梯度的激活函數(shù) ReLu 來解決。

  25、激增梯度問題(Exploding Gradient Problem)——這與消失的梯度問題完全相反,激活函數(shù)的梯度過大。在反向傳播期間,它使特定節(jié)點的權重相對于其他節(jié)點的權重非常高,這使得它們不重要。這可以通過剪切梯度來輕松解決,使其不超過一定值。



評論


相關推薦

技術專區(qū)

關閉