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

DNN網路(二)反向傳播演算法

本文摘自:

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、根據上述過程就可以得到同一隱藏層的所有引數。