為什麼神經網路在考慮梯度下降的時候,網路參數的初始值不能設定為全0,而是要採用隨機初始化思想?
其中涉及的權重對稱問題怎麼理解?
設想你在爬山,但身處直線形的山谷中,兩邊是對稱的山峰。由於對稱性,你所在之處的梯度只能沿著山谷的方向,不會指向山峰;你走了一步之後,情況依然不變。結果就是你只能收斂到山谷中的一個極大值,而走不到山峰上去。
詳見:
UFLDL 筆記 02 Backpropagation Algorithm
反向傳導演算法以一個三層網路為例:首先看下結構它的表達式為:好了,看到這裡基本就瞭然了,如果每個權重都一樣,那麼在多層網路中,從第二層開始,每一層的輸入值都是相同的了也就是a1=a2=a3=....,既然都一樣,就相當於一個輸入了,為啥呢??
如果是反向傳遞演算法(如果這裡不明白請看上面的連接),其中的偏置項和權重項的迭代的偏導數計算公式如下$delta$的計算公式如果用的是sigmoid函數把後兩個公式代入,可以看出所得到的梯度下降法的偏導相同,不停的迭代,不停的相同,不停的迭代,不停的相同......,最後就得到了相同的值(權重和截距)。----------------------------------------------
在CS231n Convolutional Neural Networks for Visual Recognition也有提到那麼,訓練出來的所有權重將會是一樣的
NG的課後作業是這樣說的。
在神經網路中,我們知道輸入層的節點個數在就是輸入數據個特徵(feature)個數,在隱藏層,節點的個數也代表著數據在經過處理之後新」提取「出來的數據特徵(feature),一個隱藏層的節點個數越多,意味著這一層所提取的新特徵越多。用下面這個圖片說明
上圖中輸入層的有兩個節點,表示只有兩個特徵輸入神經網路中,經過第一個隱藏層處理之後,變成了四個新特徵(因為隱藏層有四個節點),最後再對這四個新特徵處理判斷最終的結果作為最終的預測結果輸出。
再比如下面這張圖片,它是用於人臉識別的模型CNN。在layer1的時候,有24個特徵,每一個特徵基本都是表示一個不同形狀和方向的斑點。在layer2中,有32個新特徵,每一個新特徵表示人臉的不同部位。
而在上面的layer1和layer2中,這些小格子之所以能夠表示不同的特徵,也就是它們之所以不同,是因為它們的參數不同(W和b),我們知道,訓練神經網路模型,其實就是在不斷調整模型的參數(對於簡單的模型,就只有W和b了),也就是這些參數表述著每一層的特徵。那麼,回到題主的問題,如果一個layer中的參數完全一樣,那麼就相當於在該layer中它們表述的特徵是相同的,即使在這個layer有多個節點,這跟在這個layer中只用一個節點沒有差別。如果每一個layer中的參數都是一樣的,這個極端就使得模型退化為線性的了(不再是網路,而是一條點線點線相連的形狀了)。
到目前為止,還沒有回答完題主的問題哈!
我們來假設,如果在每一層(layer)中的參數W初始化為相同的值,使用反向傳播來訓練該模型。而參數W的更新規則是按照下面的公式進行的:(本人寫了一篇反向傳播的博客,歡迎訪問)
其中i表示第i個layer,a表示learning rate。
那麼在前向傳播(forward propageate)時,每一層的輸出都將是一樣的,下面是對應上圖的前向傳播的公式。這將導致,在反向傳播的時候,每一層的dW都一樣,進而使得每一層的W一樣。這樣就回到了上面所講的模型退化問題了。
結束!如有出入的地方,歡迎指正,謝謝!
- [神經網路權重初始化問題 - marsggbo - 博客園]
- CS231n Convolutional Neural Networks for Visual Recognition
推薦閱讀:
※傳統的RCNN可以大致框出定位物體在圖片中的位置,但是如何將這個圖片中的位置轉化為物理世界的位置?
※深度學習(DNN)是逆向模擬了人類視覺皮層結構嗎? 還是訓練過程中自然演變成類似視覺皮層的結構?
※雙目視覺感測器和神經網路能否逼近人眼視覺?