简介
非监督版bp网络: 梯度下降 + 链式求偏导
介绍
信息前向传播, 误差反向传播
推导
忽略delta规则.
以包含一层隐藏层的bp网络为例, 设输入层为x⃗ , 隐藏层为y⃗ , 输出层为z⃗ .
其中, 隐藏层中第i个神经元的输出为:
yi=sigmoid(∑j=0Vijpj)
输出层中第k个神经元的输出为:
zk=sigmoid(∑i=0Wkiyi)
对于非监督版而言, 输入为x⃗ , 输出结果的期望也为x⃗ ,
那么对于交叉熵误差:
E(V,W)=−1n∑(xkln(zk)+(1−xk)ln(1−zk))
训练过程中需要使用随机梯度下降的方式, 不断优化矩阵V额矩阵
Vj+1=Vj−α∇E1
其中, α为学习速率, ∇E1为梯度.
Wj+1=Wj−β∇E2
其中, β为学习速率, ∇E2为梯度.
对于隐藏层到输出层的梯度:
∂E∂wki=∂E∂zk∂zk∂wki
等号左边的式子可以转变为求解等号右边的式子.
其中, ∂E∂zk是对公式(3)对zk求偏导,
∂zk∂wki是公式(2)对wki求偏导.
对于输入层到隐藏的梯度:
∂E∂vij=∂E∂zk∂zk∂yi∂yi∂vij
需要计算等号左边的值, 只需要计算等号右边的式子即可.
式子∂E∂zk为公式(3)对zk求偏导,
式子∂zk∂yi 为公式(2)对yi求偏导,
式子∂yi∂vij 为公式(1)对vij求偏导.
接着上面求偏导的过程就成为一个链.
代码
后补

2万+

被折叠的 条评论
为什么被折叠?



