深度神經網路(DNN)的反向傳播
04-16
DNN前向傳播
前向傳播是利用神經網路模型的過程,而反向傳播是根據已知的輸入輸出關係,確定模型參數的過程。

在前向傳播的過程中,值從一個節點傳遞到後面是通過函數關係實現的。一般網路的傳遞關係如上圖所示。 為
層的
個節點的值,即
。
為線性變換後的結果。
為激活函數,至於激活函數有哪幾種分別有什麼功能咱們後面再說,可以先理解為激活函數就是一個可導的函數或者默認為sigmoid函數。
一、從期望的輸出獲取信息
我們知道,只要一個網路結構固定好,裡面的參數隨機生成,給一個已知的輸入就會有一個相應的輸出。那麼這個輸出和我們期望的輸出之間會有一個差別。我們用損失函數來描述這個差別。損失函數的設定也有很多種,方便起見我們這裡用平方損失函數,由輸出層與期望輸出的均方差值獲得。(二範數)
我們希望通過不斷優化 和
最小化損失函數
,優化方法我們選擇梯度下降法。
首先,我們關注第L層即輸出層的 和
與損失函數之間的梯度:
從矩陣求導維數不變原理可以推導出 ,但具體是為什麼當時卡了我很久,所以我最後能理解到的位置是先看
有
。當n=2的時候這個式子還是成立,那麼就這樣吧哈哈。
一般地,我們看一下第 層
與損失函數的梯度:
同時 ,那麼仔細看看就會發現,我們不知道的只有一系列
,
,...,
,...。
其實這個也很簡單,由於 ,則
敲黑板!
重點,我們令靈敏度 ,存在遞推關係

也就是說所有層的靈敏度都可以通過遞推關係求出,則
可以輕易的求出。
梯度求出來了,剩下的事情是梯度下降法的部分了。大家可以看看關於這方面的內容,這裡不再贅述。
推薦閱讀:
TAG:模式識別 | 神經網路 | 深度學習DeepLearning |
