## 反向傳播方向更新w和b的值:
反向傳播的目的:求損失函數w和b的偏導數,其實也就是求損失函數在w和b方向上的梯度分量,然后用在梯度方向上更新w和b最后是損失函數降到最小。是不是很繞口,你也可以這樣理解其實反向傳播就是去更新參數的一種方法。二話不說先上例子一看就明白:
> 此例子出自:https://zhuanlan.zhihu.com/p/23270674
> 注意:每一個小圓圈相當于上面圖像中的一個灰度值
來簡單告訴讀者推導過程吧(其實就是鏈式)!

先初始化權重和偏置量,得到如下效果:

**因為計算向后傳播必須現有向前傳播所以我們先來計算向前傳播:**
1. 先計算h1 的輸入:**net_h1 =w1 \* i1 + w2 \* i2 +b1 * 1**,代入數據可得:net_h1 =0.15\*0.05 +0.2\* 0.1+0.35\* 1=0.3775;
2. 然后利用logistic函數計算得h1 的輸出:out_h1=1 / {1+e^-net_h1 } =1/{1+e^-0.3775 }=0.593269992;
3. 用同樣的方法得out_h2=0.596884378;
4. 對輸出層神經元重復這個過程,使用隱藏層神經元的輸出作為輸入。這樣就能給出o_{1} 的輸出:

5. 開始統計所有的誤差:

**計算反向傳播**:
1. 輸出層 對于w5,想知道其改變對總誤差有多少影響,于是得:dEtotal / dw5
2. 隱藏層
**最后,更新了所有的權重! 當最初前饋傳播時輸入為0.05和0.1,網絡上的誤差是0.298371109。 在第一輪反向傳播之后,總誤差現在下降到0.291027924。 它可能看起來不太多,但是在重復此過程10,000次之后。例如,錯誤傾斜到0.000035085。
在這一點上,當前饋輸入為0.05和0.1時,兩個輸出神經元產生0.015912196(相對于目標為0.01)和0.984065734(相對于目標為0.99)。很接近了O(∩_∩)O~~**
- 序言
- 第一章 機器學習概述
- 第二章 機器學習環境搭建
- 環境搭建
- 第三章 機器學習之基礎算法
- 第一節:基礎知識
- 第二節:k近鄰算法
- 第三節:決策樹算法
- 第四節:樸素貝葉斯
- 第五節:邏輯斯蒂回歸
- 第六節:支持向量機
- 第四章 機器學習之深度學習算法
- 第一節: CNN
- 4.1.1 CNN介紹
- 4.1.2 CNN反向傳播
- 4.1.3 DNN實例
- 4.1.4 CNN實例
- 第五章 機器學習論文與實踐
- 第一節: 語義分割
- 5.1 FCN
- 5.1.1 FCN--------實現FCN16S
- 5.1.2 FCN--------優化FCN16S
- 5.2 DeepLab
- 5.2.1 DeepLabv2
- 第六章 機器學習在實際項目中的應用