深度学习(27)随机梯度下降五: 单输出感知机梯度
深度學習(27)隨機梯度下降五: 單輸出感知機梯度
- 1. Perceptrnon with Sigmoid + MSE
- 2. Derivative
- 3. 代碼
Recap
- y=XW+by=XW+by=XW+b
- y=∑xi?wi+by=∑x_i*w_i+by=∑xi??wi?+b
1. Perceptrnon with Sigmoid + MSE
注:
(1) xi0x_i^0xi0?: xxx表示輸入層的元素,上角標表示第幾層(0表示第0層),下角標表示第幾個元素(nnn表示第nnn個元素);
(2) wij1w_{ij}^1wij1?: www表示權值,上角標表示第幾個隱藏層(1表示第1個隱藏層),下角標i表示連接上一層的第i個元素,jjj表示連接下一層的第jjj個元素(由于上圖中第1層共有1個元素,所以連接第0層和第1層的權重的下角標中的jjj值都為0,代表第0個元素);
(3) x01x_0^1x01?: 上角標1表示第1層,xxx表示經過第0輸入xxx和第1層隱藏層得到的輸出值,下角標0表示第0個元素,因為這節課討論單輸出,所以只有1個元素;
(4) O01O_0^1O01?: OOO表示xxx經過激活函數的輸出值,上角標表示第幾層,1表示第1層的xxx經過激活函數得到OOO,下角標0表示第0個元素;
(5) ttt: targettargettarget,即目標值,標簽值,label值;
(6) EEE: 即losslossloss,E=〖(O_01-t)〗2;
2. Derivative
- 損失函數losslossloss為:
E=12(O01?t)2E=\frac{1}{2} (O_0^1-t)^2E=21?(O01??t)2
注: 這里的12\frac{1}{2}21?是為了求導的時候和平方抵消掉,寫不寫不影響結果(梯度的單調性不會改變); - 對wj0w_{j0}wj0?求偏導數:
?E?wj0=(O01?t)?O0?wj0\frac{?E}{?w_{j0}}=(O_0^1-t)\frac{?O_0}{?w_{j0}} ?wj0??E?=(O01??t)?wj0??O0?? - O0=σ(x0)O_0=σ(x_0)O0?=σ(x0?):
?E?wj0=(O01?t)?σ(x0)?wj0\frac{?E}{?w_{j0}}=(O_0^1-t)\frac{?σ(x_0)}{?w_{j0}} ?wj0??E?=(O01??t)?wj0??σ(x0?)? - ?σ(x0)?wj0=?σ(x0)?x0??x0?wj0\frac{?σ(x_0)}{?w_{j0}}=\frac{?σ(x_0)}{?x_0 }\cdot\frac{?x_0}{?w_{j0}}?wj0??σ(x0?)?=?x0??σ(x0?)???wj0??x0??,其中?σ(x0)?x0=σ(x0)(1?σ(x0))\frac{?σ(x_0)}{?x_0 }=σ(x_0)(1-σ(x_0))?x0??σ(x0?)?=σ(x0?)(1?σ(x0?)),這個在前面的激活函數的梯度部分講解過了:
?E?wj0=(O01?t)σ(x0)(1?σ(x0))?x01?wj0\frac{?E}{?w_{j0}}=(O_0^1-t)σ(x_0)(1-σ(x_0))\frac{?x_0^1}{?w_{j0}} ?wj0??E?=(O01??t)σ(x0?)(1?σ(x0?))?wj0??x01?? - O0=σ(x0)O_0=σ(x_0)O0?=σ(x0?):
?E?wj0=(O01?t)O0(1?O0)?x01?wj0\frac{?E}{?w_{j0}}=(O_0^1-t)O_0 (1-O_0)\frac{?x_0^1}{?w_{j0}} ?wj0??E?=(O01??t)O0?(1?O0?)?wj0??x01?? - 因為x01=x00w001+x10w101+x20w201+?+xj0wj01+?+xn0wn01x_0^1=x_0^0 w_{00}^1+x_1^0 w_{10}^1+x_2^0 w_{20}^1+?+x_j^0 w_{j0}^1+?+x_n^0 w_{n0}^1x01?=x00?w001?+x10?w101?+x20?w201?+?+xj0?wj01?+?+xn0?wn01?,所以:
?E?wj0=(O01?t)O0(1?O0)?x01?wj0=(O01?t)O0(1?O0)xj0\frac{?E}{?w_{j0}}=(O_0^1-t)O_0 (1-O_0)\frac{?x_0^1}{?w_{j0}} =(O_0^1-t)O_0 (1-O_0)x_j^0?wj0??E?=(O01??t)O0?(1?O0?)?wj0??x01??=(O01??t)O0?(1?O0?)xj0?
綜上所述,單輸出感知機梯度為:
?E?wj0=(O01?t)O0(1?O0)xj0\frac{?E}{?w_{j0}}=(O_0^1-t)O_0 (1-O_0)x_j^0?wj0??E?=(O01??t)O0?(1?O0?)xj0?
3. 代碼
(1) x=tf.random.normal([1, 3]): 創建一個1個樣本3個維度的Tensor;
(2)w=tf.ones([3, 1]): 權重www,將輸出維度變為[1];
(3) 上述過程為求單輸出感知機梯度。
參考文獻:
[1] 龍良曲:《深度學習與TensorFlow2入門實戰》
總結
以上是生活随笔為你收集整理的深度学习(27)随机梯度下降五: 单输出感知机梯度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 出口关税怎么计算
- 下一篇: 深度学习(28)随机梯度下降六: 多输出