深度学习(30)随机梯度下降七: 多层感知机梯度(反向传播算法)
深度學習(30)隨機梯度下降八: 多層感知機梯度(反向傳播算法)
- 1. 多層感知機模型
- 2. 多層感知機梯度
- 3. 傳播規(guī)律小結
tens
Recap
Chain Rule
Multi-output Perceptron
?E?wjk=(Ok?tk)Ok(1?Ok)xj0\frac{?E}{?w_{jk}} =(O_k-t_k)O_k (1-O_k)x_j^0?wjk??E?=(Ok??tk?)Ok?(1?Ok?)xj0?
Multi-Layer Perception
1. 多層感知機模型
?E?wjk=(Ok?tk)Ok(1?Ok)xj0\frac{?E}{?w_{jk}}=(O_k-t_k)O_k (1-O_k)x_j^0?wjk??E?=(Ok??tk?)Ok?(1?Ok?)xj0?→\to→ ?E?wjk=(Ok?tk)Ok(1?Ok)xjJ\frac{?E}{?w_{jk}}=(O_k-t_k)O_k (1-O_k)x_j^J?wjk??E?=(Ok??tk?)Ok?(1?Ok?)xjJ?設: δkK=(Ok?tk)Ok(1?Ok)δ_k^K=(O_k-t_k)O_k (1-O_k)δkK?=(Ok??tk?)Ok?(1?Ok?)注: 這里可以將δkKδ_k^KδkK?理解為是k節(jié)點的一個屬性; ?E?wjk=δkKxjJ\frac{?E}{?w_{jk}} =δ_k^K x_j^J?wjk??E?=δkK?xjJ?
2. 多層感知機梯度
?E?wij=??wij12∑k∈K(Ok?tk)2\frac{?E}{?w_{ij}} =\frac{?}{?w_{ij} } \frac{ 1}{2} ∑_{k∈K}(O_k-t_k)^2 ?wij??E?=?wij???21?k∈K∑?(Ok??tk?)2?E?wij=∑k∈K(Ok?tk)??wijOk\frac{?E}{?w_{ij}} =∑_{k∈K}(O_k-t_k ) \frac{ ?}{?w_{ij}} O_k?wij??E?=k∈K∑?(Ok??tk?)?wij???Ok?
?E?wij=∑k∈K(Ok?tk)??wijσ(xk)\frac{?E}{?w_{ij}} =∑_{k∈K}(O_k-t_k ) \frac{ ?}{?w_{ij}} σ(x_k ) ?wij??E?=k∈K∑?(Ok??tk?)?wij???σ(xk?)?E?wij=∑k∈K(Ok?tk)?σ(xk)?xk?xk?wij\frac{?E}{?w_{ij}} =∑_{k∈K}(O_k-t_k ) \frac{?σ(x_k )}{?x_k } \frac{?x_k}{?w_{ij} }?wij??E?=k∈K∑?(Ok??tk?)?xk??σ(xk?)??wij??xk???E?wij=∑k∈K(Ok?tk)σ(xk)(1?σ(xk))?xk?wij\frac{?E}{?w_{ij}} =∑_{k∈K}(O_k-t_k ) σ(x_k )(1-σ(x_k ))\frac{?x_k}{?w_{ij} }?wij??E?=k∈K∑?(Ok??tk?)σ(xk?)(1?σ(xk?))?wij??xk???E?wij=∑k∈K(Ok?tk)Ok(1?Ok)?xk?wij\frac{?E}{?w_{ij}} =∑_{k∈K}(O_k-t_k )O_k (1-O_k)\frac{?x_k}{?w_{ij} }?wij??E?=k∈K∑?(Ok??tk?)Ok?(1?Ok?)?wij??xk???E?wij=∑k∈K(Ok?tk)Ok(1?Ok)?xk?Oj?Oj?wij\frac{?E}{?w_{ij}} =∑_{k∈K}(O_k-t_k )O_k (1-O_k)\frac{?x_k}{?O_j} \frac{?O_j}{?w_{ij}} ?wij??E?=k∈K∑?(Ok??tk?)Ok?(1?Ok?)?Oj??xk???wij??Oj??∵xkK=O0Jw0kJ+O1Jw1kJ+?+OjJwjkJ+?+OnJwnkJ\because x_k^K=O_0^J w_{0k}^J+O_1^J w_{1k}^J+?+O_j^J w_{jk}^J+?+O_n^J w_{nk}^J∵xkK?=O0J?w0kJ?+O1J?w1kJ?+?+OjJ?wjkJ?+?+OnJ?wnkJ?∴?E?wij=∑k∈K(Ok?tk)Ok(1?Ok)wjk?Oj?wij\therefore\frac{?E}{?w_{ij}} =∑_{k∈K}(O_k-t_k )O_k (1-O_k)w_{jk} \frac{?O_j}{?w_{ij}} ∴?wij??E?=k∈K∑?(Ok??tk?)Ok?(1?Ok?)wjk??wij??Oj???E?wij=?Oj?wij∑k∈K(Ok?tk)Ok(1?Ok)wjk\frac{?E}{?w_{ij}} = \frac{?O_j}{?w_{ij}}∑_{k∈K}(O_k-t_k )O_k (1-O_k)w_{jk} ?wij??E?=?wij??Oj??k∈K∑?(Ok??tk?)Ok?(1?Ok?)wjk?∵?Oj?wij=?Oj?xj?xj?wij=Oj(1?Oj)?xj?wij\because\frac{?O_j}{?w_{ij}}=\frac{?O_j}{?x_j} \frac{?x_j}{?w_{ij}} =O_j (1-O_j)\frac{?x_j}{?w_{ij}} ∵?wij??Oj??=?xj??Oj???wij??xj??=Oj?(1?Oj?)?wij??xj??∴?E?wij=Oj(1?Oj)?xj?wij∑k∈K(Ok?tk)Ok(1?Ok)wjk\therefore\frac{?E}{?w_{ij}} =O_j (1-O_j) \frac{?x_j}{?w_{ij}}∑_{k∈K}(O_k-t_k ) O_k (1-O_k)w_{jk} ∴?wij??E?=Oj?(1?Oj?)?wij??xj??k∈K∑?(Ok??tk?)Ok?(1?Ok?)wjk??E?wij=Oj(1?Oj)Oi∑k∈K(Ok?tk)Ok(1?Ok)wjk\frac{?E}{?w_{ij}} =O_j (1-O_j)O_i ∑_{k∈K}(O_k-t_k ) O_k (1-O_k)w_{jk} ?wij??E?=Oj?(1?Oj?)Oi?k∈K∑?(Ok??tk?)Ok?(1?Ok?)wjk?∵(Ok?tk)Ok(1?Ok)=δk\because (O_k-t_k ) O_k (1-O_k )=δ_k∵(Ok??tk?)Ok?(1?Ok?)=δk?∴?E?wij=OiOj(1?Oj)∑k∈Kδkwjk\therefore \frac{?E}{?w_{ij}}=O_i O_j (1-O_j)∑_{k∈K}δ_k w_{jk}∴?wij??E?=Oi?Oj?(1?Oj?)k∈K∑?δk?wjk?設: δjJ=Oj(1?Oj)∑k∈Kδkwjkδ_j^J=O_j (1-O_j)∑_{k∈K}δ_k w_{jk} δjJ?=Oj?(1?Oj?)k∈K∑?δk?wjk?則: ?E?wij=δjJOiI\frac{?E}{?w_{ij}}=δ_j^J O_i^I?wij??E?=δjJ?OiI?注: 可以把δkKδ_k^KδkK?理解為當前連接w_ij對誤差函數(shù)的貢獻值;
3. 傳播規(guī)律小結
- 輸出層
?E?wjk=δk(K)Oj\frac{?E}{?w_{jk}}=δ_k^{(K)} O_j?wjk??E?=δk(K)?Oj?δk(K)=Ok(1?Ok)(Ok?tk)δ_k^{(K)}=O_k (1-O_k)(O_k-t_k)δk(K)?=Ok?(1?Ok?)(Ok??tk?) - 倒數(shù)第二層
?E?wij=δj(J)Oi\frac{?E}{?w_{ij}}=δ_j^{(J)} O_i?wij??E?=δj(J)?Oi?δj(J)=Oj(1?Oj)∑kδk(K)wjkδ_j^{(J)}=O_j (1-O_j)∑_kδ_k^{(K)} w_{jk}δj(J)?=Oj?(1?Oj?)k∑?δk(K)?wjk? - 倒數(shù)第三層
?E?wni=δi(I)On\frac{?E}{?w_{ni}}=δ_i^{(I)} O_n?wni??E?=δi(I)?On?δi(I)=Oi(1?Oi)∑jδj(J)wijδ_i^{(I)}=O_i (1-O_i)∑_jδ_j^{(J)} w_{ij} δi(I)?=Oi?(1?Oi?)j∑?δj(J)?wij?其中OnO_nOn?為倒數(shù)第三層的輸入,即倒數(shù)第四層的輸出。
依照此規(guī)律,只需要循環(huán)迭代計算每一層每個節(jié)點的δk(K)δ_k^{(K)}δk(K)?、δj(J)δ_j^{(J)}δj(J)?、δi(I)δ_i^{(I)}δi(I)?等值即可求得當前層的偏導數(shù),從而得到每層權值矩陣W的梯度,再通過梯度下降算法迭代優(yōu)化網絡參數(shù)即可。
參考文獻:
[1] 龍良曲:《深度學習與TensorFlow2入門實戰(zhàn)》
總結
以上是生活随笔為你收集整理的深度学习(30)随机梯度下降七: 多层感知机梯度(反向传播算法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 确认C浪下跌结束方法
- 下一篇: 深度学习(31)随机梯度下降九: Him