1. 程式人生 > >DNN網絡(二)反向傳播算法

DNN網絡(二)反向傳播算法

通過 圖片 center 微分方程 log ext 部分 算法 輸入

本文摘自:

https://www.cnblogs.com/pinard/p/6422831.html

http://www.cnblogs.com/charlotte77/p/5629865.html

一、DNN求解參數的方法

在監督學習中,優化參數的方法

  • 首先我們都會定義一個目標函數,一般來講都是損失函數
  • 通過最小化損失函數,求得最優參數
  • 不斷叠代上一個步驟直到收斂,也就是損失函數基本不再變化

在DNN神經網絡中,前向傳播算法,主要是用來計算一層接著一層的輸入值,通過計算出來的最後一層的輸出值與真實值相計算就可以得到損失函數的值,然後通過反向傳播,就可以優化參數。不斷叠代前向傳播與反向傳播這個過程,就可以優化出最優參數。

二、DNN的反向傳播,輸出層

假設有網絡,結構如下圖所示,以w7為例子,優化其參數。

技術分享圖片

1、由上述介紹,首先前向傳播算法第i層的輸出oi為(現行變換通過激勵函數):

技術分享圖片

2、定義損失函數為(不唯一):

技術分享圖片

3、定義sigma激勵函數為sigmoid。

技術分享圖片

其中,z為線性變換

技術分享圖片

4、在初始化了所有參數之後,首先由前向傳播算法,可以得到每一層的輸入。在最後一層,可以得總誤差:

技術分享圖片

5、由微分方程可以得到:

技術分享圖片

6、各部分:

技術分享圖片

7、sigmoid導數是h(x)(1-h(x)), 因此:

技術分享圖片

8、

技術分享圖片

9、因此

技術分享圖片

技術分享圖片

其中eta是學習率。對於同層的其他omega方法耶是一樣的。

三、DNN的反向傳播,隱藏層

1、更新隱藏層的參數。以w1

為例。

技術分享圖片

2、

技術分享圖片

3、

技術分享圖片

4、

技術分享圖片

5、

技術分享圖片

6、因此得:

技術分享圖片

8、

技術分享圖片

9、根據上述過程就可以得到同一隱藏層的所有參數。

DNN網絡(二)反向傳播算法