深度学习基础 多层感知器&反向传播算法

定义:
1. W ( l ) W^{(l)} W(l)为第 ( l − 1 ) (l-1) (l1)层至第l层的权重矩阵, w j , k ( l ) w^{(l)}_{j,k} wj,k(l) W ( l ) W^{(l)} W(l)中的第行第 k k k列的一项,表示第 ( l − 1 ) (l-1) (l1)层第 k k k个节点到第 l l l层第 j j j个节点的权重(注意这里 j , k j,k j,k的对应)。
2. b ( l ) b^{(l)} b(l)为第 l l l层的偏置向量, b j ( l ) b^{(l)}_{j} bj(l)为第 l l l层第 k k k个节点的偏置。
3. σ ( . . . ) \sigma(...) σ(...)代表激活函数。
4. a ( l ) = σ ( z ( l ) ) a^{(l)}=\sigma(z^{(l)}) a(l)=σ(z(l)),其中 a j ( l ) = σ ( z j ( l ) ) a^{(l)}_{j}=\sigma(z^{(l)}_{j}) aj(l)=σ(zj(l))
5. z ( l ) = W ( l ) a ( l − 1 ) + b ( l ) z^{(l)}=W^{(l)}a^{(l-1)}+b^{(l)} z(l)=W(l)a(l1)+b(l),其中 z j ( l ) = ( ∑ k w j , k ( l ) a k ( l − 1 ) ) + b j ( l ) z^{(l)}_{j}=(\sum_{k}{w^{(l)}_{j,k}a^{(l-1)}_{k}})+b^{(l)}_{j} zj(l)=(kwj,k(l)ak(l1))+bj(l)
6. C ( . . . ) C(...) C(...)代表损失函数。
7. α \alpha α代表学习速率

反向传播

假设这里多层感知器层数为 L L L,权重及偏移的更新采用随机梯度下降法。
Δ w j , k ( l ) = − α ∂ C ∂ w j , k ( l ) , Δ b j ( l ) = − α ∂ C ∂ b j ( l ) \Delta{w^{(l)}_{j,k}}=-\alpha\frac{\partial{C}}{\partial{w^{(l)}_{j,k}}},\Delta{b^{(l)}_{j}}=-\alpha\frac{\partial{C}}{\partial{b^{(l)}_{j}}} Δwj,k(l)=αwj,k(l)C,Δbj(l)=αbj(l)C
δ j ( l ) = ∂ C ∂ z j l \delta^{(l)}_{j}=\frac{\partial{C}}{\partial{z^{l}_{j}}} δj(l)=zjlC,我们首先对最后一层的更新进行讨论:
∂ C ∂ w j , k ( L ) = ∑ i ∂ C ∂ z i ( L ) ∂ z i ( L ) ∂ w j , k ( L ) \frac{\partial{C}}{\partial{w^{(L)}_{j,k}}}=\sum_{i}{\frac{\partial{C}}{\partial{z^{(L)}_{i}}}\frac{\partial{z^{(L)}_{i}}}{\partial{w^{(L)}_{j,k}}}} wj,k(L)C=izi(L)Cwj,k(L)zi(L)
w h i l e while while i ≠ j , ∂ z i ( L ) ∂ w j , k ( L ) = 0 i\neq{j},\frac{\partial{z^{(L)}_{i}}}{\partial{w^{(L)}_{j,k}}}=0 i=j,wj,k(L)zi(L)=0,所以
∂ C ∂ w j , k ( L ) = ∂ C ∂ z j ( L ) ∂ z j ( L ) ∂ w j , k ( L ) = δ j ( L ) a k ( L − 1 ) \frac{\partial{C}}{\partial{w^{(L)}_{j,k}}}={\frac{\partial{C}}{\partial{z^{(L)}_{j}}}\frac{\partial{z^{(L)}_{j}}}{\partial{w^{(L)}_{j,k}}}}=\delta^{(L)}_{j}a^{(L-1)}_{k} wj,k(L)C=zj(L)Cwj,k(L)zj(L)=δj(L)ak(L1)
同理
∂ C ∂ b j ( L ) = δ j ( L ) a k ( L − 1 ) \frac{\partial{C}}{\partial{b^{(L)}_{j}}}=\delta^{(L)}_{j}a^{(L-1)}_{k} bj(L)C=δj(L)ak(L1)
在这里
δ j ( l ) = ∂ C ∂ z j l = ∂ C ∂ a j l σ ′ ( z j l ) \delta^{(l)}_{j}=\frac{\partial{C}}{\partial{z^{l}_{j}}}=\frac{\partial{C}}{\partial{a^{l}_{j}}}\sigma'(z^{l}_{j}) δj(l)=zjlC=ajlCσ(zjl)
对其他的 l < L ll<L,我们可以用第 ( l + 1 ) (l+1) (l+1)层上的结果逆推得到第 l l l层上的结果,也就是一个反向传播的过程。
和上边第 L L L层类似,有
∂ C ∂ w j , k ( l ) = δ j ( l ) a k ( l − 1 ) , ∂ C ∂ b j ( l ) = δ j ( l ) \frac{\partial{C}}{\partial{w^{(l)}_{j,k}}}=\delta^{(l)}_{j}a^{(l-1)}_{k},\frac{\partial{C}}{\partial{b^{(l)}_{j}}}=\delta^{(l)}_{j} wj,k(l)C=δj(l)ak(l1),bj(l)C=δj(l)
现在只要得到 δ j ( l ) \delta^{(l)}_{j} δj(l)即可算出第 l l l层的更新式。
δ j ( l ) = ∂ C ∂ z j l = ∑ i ∂ C ∂ z i l + 1 ∂ z i l + 1 ∂ z j l = ∑ i δ i ( l + 1 ) w i , j ( l + 1 ) σ ′ ( z j ( l ) ) \delta^{(l)}_{j}=\frac{\partial{C}}{\partial{z^{l}_{j}}}=\sum_{i}{\frac{\partial{C}}{\partial{z^{l+1}_{i}}}\frac{\partial{z^{l+1}_{i}}}{\partial{z^{l}_{j}}}}=\sum_{i}{\delta^{(l+1)}_{i}w^{(l+1)}_{i,j}\sigma'(z^{(l)}_{j})} δj(l)=zjlC=izil+1Czjlzil+1=iδi(l+1)wi,j(l+1)σ(zj(l))
而在上边我们得到了最后一层的所有 δ j ( L ) \delta^{(L)}_{j} δj(L),我们可以由此得到第 ( L − 1 ) , ( L − 2 ) , . . . , 1 (L-1),(L-2),...,1 (L1),(L2),...,1层的更新式,完成整个网络的更新过程。

你可能感兴趣的:(机器学习,机器学习,神经网络)