【DL-CV】神經網絡的補充

【DL-CV】激活函數及其選擇<前篇---後篇>【DL-CV】卷積神經網絡html

在介紹了線性分類器,激活函數,損失函數,反向傳播這些基礎的原理後,已經能夠嘗試自行搭建像樣的神經網絡了。可是因爲神經網絡的許多細節並未過度深刻(好比層數和每層神經元數的設定,過擬合等),初建的網絡實際上和真實的網絡仍是有必定差距的。本篇將對這些細節知識點進行補充,以便更好地理解和使用神經網絡。python

神經網絡的結構

  • 經典的神經網絡由輸入層,隱藏層和輸出層組成;其中隱藏層能夠多層,輸入輸出層只能各一層;一般輸入層和輸出層的神經元(也可叫「單元」)個數是定的,隱藏層的神經元個數由權重W的大小決定。
  • 和神經網絡中其餘層不一樣,輸出層的神經元通常不會有激活函數,最後的輸出層大多用於表示分類評分值。
  • 這些層也叫全鏈接層(fully-connected layer),由於先後兩層的神經元是徹底成對鏈接的,可是在同一層內的神經元之間沒有鏈接。
  • 所謂神經網絡的層數n不計輸入層。
  • 輸出層的結果輸入到損失函數計算損失。

一個具體例子以下圖
clipboard.png算法

左圖是一個2層神經網絡,輸入層有3個神經元,隱藏層由4個神經元組成,輸出層由2個神經元組成。右圖是一個3層神經網絡,有兩個含4個神經元的隱藏層,輸入層有3個神經元,輸出層只有一個神經元segmentfault

網絡的尺寸:衡量神經網絡的尺寸的標準有兩個——神經元個數(不計輸入層),和參數個數。繼續以上圖爲例
左圖網絡有6個神經元,3*4 + 2*4 = 20個權重(也就是多少條線),和6個偏置值(數值上等於神經元個數),共26個可學習參數。
右圖網絡有9個神經元,3*4 + 4*4 + 4*1 = 32個權重,9個偏置值,共41個可學習參數數組

全鏈接層這種網狀結構使得神經網絡算法使用矩陣向量操做變得簡單和高效,輸入數據可用矩陣存儲,每層神經元的激活值能夠用矩陣存儲,每層全部的鏈接強度(權重W)也能夠用矩陣儲存,實現正向傳播只需不斷重複矩陣乘法和激活函數便可網絡

#一個三層神經網絡的正向傳播
# 激活函數使用ReLU
def relu(x):
    x[x<0]=0
    
x = np.random.randn(100, 3072) # 假設輸入是100個樣本(32*32圖像)的數據,每行是該樣本的像素數據32*32*3
h1 = relu(np.dot(x, W1) + b1) # 計算第一個隱藏層的激活數據(二維矩陣,每行對應該樣本的激活數據)
h2 = relu(np.dot(h1, W2) + b2) # 計算第二個隱藏層的激活數據
out = np.dot(h2, W3) + b3 # 輸出(二維矩陣,每行對應該樣本的輸出得分)
# 以後把輸出餵給損失函數便可

表達能力

全鏈接層的神經網絡至關於一系列函數組成的大函數。那這個大函數的表達能力如何?
研究代表,選取了適當的非線性激活函數後,只要有一個隱藏層,神經網絡就能夠近似任何連續函數。這意味着理論上隱藏層的層數並不影響神經網絡的表達能力(它們都是同樣的)。但在實踐中表現並不如此,多層網絡會比單層網絡好;並且層數也不是越多越好,一般3層神經網絡會比2層神經網絡好,但繼續增長層數只會增長計算量而性能變化不大。dom

網絡尺寸的設置

要設多少個隱藏層,每一個隱藏層的大小怎樣?探討這個問題,咱們用一個比較實驗引入。這是一個平面二分類問題,咱們訓練三個不一樣的神經網絡來跑一下,每一個神經網絡都只有一個隱藏層,但每一個隱藏層的神經元數不同(分別3,6,20個)
圖片描述函數

上圖中點表示數據,顏色表明不一樣的類別。由圖可知,神經元越多,決策邊界越複雜越分散(嘗試把全部數據都分好),這看起來是個優點,畢竟這樣能夠分類更復雜的數據;但這也可能潛藏着一個致命的缺陷——對訓練數據的過擬合(overfitting),即網絡對數據中的噪聲有很強的擬協力,致使訓練集上表現得很好,可是在測試集中表現不理想;過擬合的出現使得網絡的泛化能力(generalization)下降。相反的,神經元較少的網絡會用比較寬泛的方式去分類數據,它將數據看作是兩個大塊,並把個別在綠色區域內的紅點看作噪聲,但這樣能夠得到更好的泛化能力。性能


經過實驗這樣看來大網絡小網絡各有利弊啊!可是在這裏我拋出結論——不要因過擬合的風險而對更大網絡抱有擔心,就大膽的使用吧。深度學習中有許多抑制過擬合的方法(正則化,噪音輸入,dropout等),使用大網絡配合這些方法遠比單純減小網絡尺寸好得多。
不減小網絡尺寸的緣由是小網絡很難用梯度降低法進行有效訓練,每每訓練出來的參數都不太好;梯度降低法更適合深度較大網絡的訓練學習

以前提到的正則化就是一個抑制過擬合的好方法(固然前提是設置得當),對於同一個網絡結構,正則化強度越大,決策邊界越平滑,抑制過擬合能力越強。

相關文章
相關標籤/搜索