深度学习(30)随机梯度下降七: 多层感知机梯度(反向传播算法)

深度学习(30)随机梯度下降八: 多层感知机梯度(反向传播算法)


tens
Recap
Chain Rule
在这里插入图片描述

Multi-output Perceptron
在这里插入图片描述

∂ E ∂ w j k = ( O k − t k ) O k ( 1 − O k ) x j 0 \frac{∂E}{∂w_{jk}} =(O_k-t_k)O_k (1-O_k)x_j^0 wjkE=(Oktk)Ok(1Ok)xj0
Multi-Layer Perception

1. 多层感知机模型

在这里插入图片描述
在这里插入图片描述

∂ E ∂ w j k = ( O k − t k ) O k ( 1 − O k ) x j 0 \frac{∂E}{∂w_{jk}}=(O_k-t_k)O_k (1-O_k)x_j^0 wjkE=(Oktk)Ok(1Ok)xj0 → \to ∂ E ∂ w j k = ( O k − t k ) O k ( 1 − O k ) x j J \frac{∂E}{∂w_{jk}}=(O_k-t_k)O_k (1-O_k)x_j^J wjkE=(Oktk)Ok(1Ok)xjJ设: δ k K = ( O k − t k ) O k ( 1 − O k ) δ_k^K=(O_k-t_k)O_k (1-O_k) δkK=(Oktk)Ok(1Ok)注: 这里可以将 δ k K δ_k^K δkK理解为是k节点的一个属性; ∂ E ∂ w j k = δ k K x j J \frac{∂E}{∂w_{jk}} =δ_k^K x_j^J wjkE=δkKxjJ

2. 多层感知机梯度

在这里插入图片描述

∂ E ∂ w i j = ∂ ∂ w i j 1 2 ∑ k ∈ K ( O k − t k ) 2 \frac{∂E}{∂w_{ij}} =\frac{∂}{∂w_{ij} } \frac{ 1}{2} ∑_{k∈K}(O_k-t_k)^2 wijE=wij21kK(Oktk)2 ∂ E ∂ w i j = ∑ k ∈ K ( O k − t k ) ∂ ∂ w i j O k \frac{∂E}{∂w_{ij}} =∑_{k∈K}(O_k-t_k ) \frac{ ∂}{∂w_{ij}} O_k wijE=kK(Oktk)wijOk
∂ E ∂ w i j = ∑ k ∈ K ( O k − t k ) ∂ ∂ w i j σ ( x k ) \frac{∂E}{∂w_{ij}} =∑_{k∈K}(O_k-t_k ) \frac{ ∂}{∂w_{ij}} σ(x_k ) wijE=kK(Oktk)wijσ(xk) ∂ E ∂ w i j = ∑ k ∈ K ( O k − t k ) ∂ σ ( x k ) ∂ x k ∂ x k ∂ w i j \frac{∂E}{∂w_{ij}} =∑_{k∈K}(O_k-t_k ) \frac{∂σ(x_k )}{∂x_k } \frac{∂x_k}{∂w_{ij} } wijE=kK(Oktk)xkσ(xk)wijxk ∂ E ∂ w i j = ∑ k ∈ K ( O k − t k ) σ ( x k ) ( 1 − σ ( x k ) ) ∂ x k ∂ w i j \frac{∂E}{∂w_{ij}} =∑_{k∈K}(O_k-t_k ) σ(x_k )(1-σ(x_k ))\frac{∂x_k}{∂w_{ij} } wijE=kK(Oktk)σ(xk)(1σ(xk))wijxk ∂ E ∂ w i j = ∑ k ∈ K ( O k − t k ) O k ( 1 − O k ) ∂ x k ∂ w i j \frac{∂E}{∂w_{ij}} =∑_{k∈K}(O_k-t_k )O_k (1-O_k)\frac{∂x_k}{∂w_{ij} } wijE=kK(Oktk)Ok(1Ok)wijxk ∂ E ∂ w i j = ∑ k ∈ K ( O k − t k ) O k ( 1 − O k ) ∂ x k ∂ O j ∂ O j ∂ w i j \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}} wijE=kK(Oktk)Ok(1Ok)OjxkwijOj ∵ x k K = O 0 J w 0 k J + O 1 J w 1 k J + ⋯ + O j J w j k J + ⋯ + O n J w n k J \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=O0Jw0kJ+O1Jw1kJ++OjJwjkJ++OnJwnkJ ∴ ∂ E ∂ w i j = ∑ k ∈ K ( O k − t k ) O k ( 1 − O k ) w j k ∂ O j ∂ w i j \therefore\frac{∂E}{∂w_{ij}} =∑_{k∈K}(O_k-t_k )O_k (1-O_k)w_{jk} \frac{∂O_j}{∂w_{ij}} wijE=kK(Oktk)Ok(1Ok)wjkwijOj ∂ E ∂ w i j = ∂ O j ∂ w i j ∑ k ∈ K ( O k − t k ) O k ( 1 − O k ) w j k \frac{∂E}{∂w_{ij}} = \frac{∂O_j}{∂w_{ij}}∑_{k∈K}(O_k-t_k )O_k (1-O_k)w_{jk} wijE=wijOjkK(Oktk)Ok(1Ok)wjk ∵ ∂ O j ∂ w i j = ∂ O j ∂ x j ∂ x j ∂ w i j = O j ( 1 − O j ) ∂ x j ∂ w i j \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}} wijOj=xjOjwijxj=Oj(1Oj)wijxj ∴ ∂ E ∂ w i j = O j ( 1 − O j ) ∂ x j ∂ w i j ∑ k ∈ K ( O k − t k ) O k ( 1 − O k ) w j k \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} wijE=Oj(1Oj)wijxjkK(Oktk)Ok(1Ok)wjk ∂ E ∂ w i j = O j ( 1 − O j ) O i ∑ k ∈ K ( O k − t k ) O k ( 1 − O k ) w j k \frac{∂E}{∂w_{ij}} =O_j (1-O_j)O_i ∑_{k∈K}(O_k-t_k ) O_k (1-O_k)w_{jk} wijE=Oj(1Oj)OikK(Oktk)Ok(1Ok)wjk ∵ ( O k − t k ) O k ( 1 − O k ) = δ k \because (O_k-t_k ) O_k (1-O_k )=δ_k (Oktk)Ok(1Ok)=δk ∴ ∂ E ∂ w i j = O i O j ( 1 − O j ) ∑ k ∈ K δ k w j k \therefore \frac{∂E}{∂w_{ij}}=O_i O_j (1-O_j)∑_{k∈K}δ_k w_{jk} wijE=OiOj(1Oj)kKδkwjk设: δ j J = O j ( 1 − O j ) ∑ k ∈ K δ k w j k δ_j^J=O_j (1-O_j)∑_{k∈K}δ_k w_{jk} δjJ=Oj(1Oj)kKδkwjk则: ∂ E ∂ w i j = δ j J O i I \frac{∂E}{∂w_{ij}}=δ_j^J O_i^I wijE=δjJOiI注: 可以把 δ k K δ_k^K δkK理解为当前连接w_ij对误差函数的贡献值;

3. 传播规律小结

  • 输出层
    ∂ E ∂ w j k = δ k ( K ) O j \frac{∂E}{∂w_{jk}}=δ_k^{(K)} O_j wjkE=δk(K)Oj δ k ( K ) = O k ( 1 − O k ) ( O k − t k ) δ_k^{(K)}=O_k (1-O_k)(O_k-t_k) δk(K)=Ok(1Ok)(Oktk)
  • 倒数第二层
    ∂ E ∂ w i j = δ j ( J ) O i \frac{∂E}{∂w_{ij}}=δ_j^{(J)} O_i wijE=δj(J)Oi δ j ( J ) = O j ( 1 − O j ) ∑ k δ k ( K ) w j k δ_j^{(J)}=O_j (1-O_j)∑_kδ_k^{(K)} w_{jk} δj(J)=Oj(1Oj)kδk(K)wjk
  • 倒数第三层
    ∂ E ∂ w n i = δ i ( I ) O n \frac{∂E}{∂w_{ni}}=δ_i^{(I)} O_n wniE=δi(I)On δ i ( I ) = O i ( 1 − O i ) ∑ j δ j ( J ) w i j δ_i^{(I)}=O_i (1-O_i)∑_jδ_j^{(J)} w_{ij} δi(I)=Oi(1Oi)jδj(J)wij其中 O n O_n On为倒数第三层的输入,即倒数第四层的输出。

依照此规律,只需要循环迭代计算每一层每个节点的 δ k ( K ) δ_k^{(K)} δk(K) δ j ( J ) δ_j^{(J)} δj(J) δ i ( I ) δ_i^{(I)} δi(I)等值即可求得当前层的偏导数,从而得到每层权值矩阵W的梯度,再通过梯度下降算法迭代优化网络参数即可。

参考文献:
[1] 龙良曲:《深度学习与TensorFlow2入门实战》

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值