摘要:但是由于神經網絡的許多細節并未過分深入比如層數和每層神經元數的設定,過擬合等,初建的網絡實際上和真實的網絡還是有一定差距的。和神經網絡中其他層不同,輸出層的神經元一般不會有激活函數,最后的輸出層大多用于表示分類評分值。
【DL-CV】激活函數及其選擇<前篇---后篇>【DL-CV】卷積神經網絡
在介紹了線性分類器,激活函數,損失函數,反向傳播這些基礎的原理后,已經可以嘗試自行搭建像樣的神經網絡了。但是由于神經網絡的許多細節并未過分深入(比如層數和每層神經元數的設定,過擬合等),初建的網絡實際上和真實的網絡還是有一定差距的。本篇將對這些細節知識點進行補充,以便更好地理解和使用神經網絡。
神經網絡的結構經典的神經網絡由輸入層,隱藏層和輸出層組成;其中隱藏層可以多層,輸入輸出層只能各一層;通常輸入層和輸出層的神經元(也可叫“單元”)個數是定的,隱藏層的神經元個數由權重W的大小決定。
和神經網絡中其他層不同,輸出層的神經元一般不會有激活函數,最后的輸出層大多用于表示分類評分值。
這些層也叫全連接層(fully-connected layer),因為前后兩層的神經元是完全成對連接的,但是在同一層內的神經元之間沒有連接。
所謂神經網絡的層數n不計輸入層。
輸出層的結果輸入到損失函數計算損失。
一個具體例子如下圖
左圖是一個2層神經網絡,輸入層有3個神經元,隱藏層由4個神經元組成,輸出層由2個神經元組成。右圖是一個3層神經網絡,有兩個含4個神經元的隱藏層,輸入層有3個神經元,輸出層只有一個神經元
網絡的尺寸:衡量神經網絡的尺寸的標準有兩個——神經元個數(不計輸入層),和參數個數。繼續以上圖為例
左圖網絡有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層神經網絡好,但繼續增加層數只會增加計算量而性能變化不大。
要設多少個隱藏層,每個隱藏層的大小怎樣?探討這個問題,我們用一個比較實驗引入。這是一個平面二分類問題,我們訓練三個不同的神經網絡來跑一下,每個神經網絡都只有一個隱藏層,但每個隱藏層的神經元數不一樣(分別3,6,20個)
上圖中點表示數據,顏色代表不同的類別。由圖可知,神經元越多,決策邊界越復雜越分散(嘗試把所有數據都分好),這看起來是個優勢,畢竟這樣可以分類更復雜的數據;但這也可能潛藏著一個致命的缺陷——對訓練數據的過擬合(overfitting),即網絡對數據中的噪聲有很強的擬合力,導致訓練集上表現得很好,但是在測試集中表現不理想;過擬合的出現使得網絡的泛化能力(generalization)降低。相反的,神經元較少的網絡會用比較寬泛的方式去分類數據,它將數據看做是兩個大塊,并把個別在綠色區域內的紅點看做噪聲,但這樣可以獲得更好的泛化能力。
通過實驗這樣看來大網絡小網絡各有利弊啊!但是在這里我拋出結論——不要因過擬合的風險而對更大網絡抱有擔憂,就大膽的使用吧。深度學習中有許多抑制過擬合的方法(正則化,噪音輸入,dropout等),使用大網絡配合這些方法遠比單純減少網絡尺寸好得多。
不減少網絡尺寸的原因是小網絡很難用梯度下降法進行有效訓練,往往訓練出來的參數都不太好;梯度下降法更適合深度較大網絡的訓練
之前提到的正則化就是一個抑制過擬合的好方法(當然前提是設置得當),對于同一個網絡結構,正則化強度越大,決策邊界越平滑,抑制過擬合能力越強。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42234.html
摘要:但是由于神經網絡的許多細節并未過分深入比如層數和每層神經元數的設定,過擬合等,初建的網絡實際上和真實的網絡還是有一定差距的。和神經網絡中其他層不同,輸出層的神經元一般不會有激活函數,最后的輸出層大多用于表示分類評分值。 【DL-CV】激活函數及其選擇【DL-CV】卷積神經網絡 在介紹了線性分類器,激活函數,損失函數,反向傳播這些基礎的原理后,已經可以嘗試自行搭建像樣的神經網絡了。但是由...
摘要:每傳遞一層,就相當于執行一次線性分類器和激活函數,其輸出可作為下一個線性分類器的輸入繼續往下傳遞。像這樣多個線性分類器疊加起來,那種網絡結構就成型了。 【DL-CV】計算機視覺前置了解【DL-CV】損失函數,SVM損失與交叉熵損失 神經網絡的變種很多,各種模型滿天飛,但是相信大家見得最多的是這種showImg(https://segmentfault.com/img/bVbeWOO?w...
閱讀 977·2021-11-22 09:34
閱讀 2161·2021-11-11 16:54
閱讀 2196·2021-09-27 14:00
閱讀 940·2019-08-30 15:55
閱讀 1525·2019-08-29 12:46
閱讀 599·2019-08-26 18:42
閱讀 639·2019-08-26 13:31
閱讀 3183·2019-08-26 11:52