定义
- 定义第 j个神经元激活函数的输入值为 vj,则 yj=φj(vj),诱导局部域 vj=∑i=1Nk(wjiyi),Nk 是作用于神经元 j的所有输入个数,权值 ωj0等于神经元 j的偏置 bj
- 定义误差信号,ej=dj−yj,第 j个神经元输出预期值与实际值的差值。
- 定义瞬时误差能量,εj=21ej2,全部瞬时误差能量为,ε=21∑j∈Cej2
- 定义平均误差能量,εav=2N1∑n=1N∑j∈Cej2
随机方式的权值调整是以样例-样例(example)为基础的,最小化代价函数为全部瞬时误差能量 ε
批量方式的权值调整是以回合-回合(epoch)为基础的,最小化代价函数为平均误差能量 εav
随机方式
计算权值关于代价函数的偏导数,使用链式法则如下
∂ωji∂ε=∂ej∂ε∂yj∂ej∂vj∂yj∂ωji∂vj=ej⋅(−1)⋅φj′(vj)⋅yi=−ejφj′(vj)yi
定义局域梯度 δj,可以上式改写
δj=−∂vj∂ε=−∂ej∂ε∂yj∂ej∂vj∂yj=ejφj′(vj)
∂ωji∂ε=−δjyi
可以得到修正 Δωji,η 是反向传播算法的学习率
Δωji=−η∂ωji∂ε=ηδjyi
当神经元 j是输出节点时,可以直接得出局域梯度如下:
δj=ejφj′(tj)
当神经元 j是隐藏节点时,重新定义局域梯度
δj=−∂yj∂ε∂vj∂yj=−∂yj∂εφj′(vj)
∂yj∂ε=k∑ek∂yj∂ej=k∑ek∂vj∂ej∂yj∂vj
由于 en=dn−yn=dn−φn(vn) 以及 vj=∑i=1Nk(wjiyi)
∂yj∂ε=k∑ek∂vj∂ej∂yj∂vj=k∑ek(−φk′vk)(wkj)=−k∑δkwkj
故可得局域梯度为
δj=−∂yj∂εφj′(vj)=φj′k∑δkwkj
批量方式
对于批量方式,我们采用的是平均误差能量εav=2N1∑n=1N∑j∈Cej2,故
∂ej∂ε=N1n=1∑Nej
将其带入随机方式推导过程中,计算权值关于代价函数的偏导数:
∂ωji∂ε=∂ej∂ε∂yj∂ej∂vj∂yj∂ωji∂vj=N1n=1∑Nej⋅(−1)⋅φj′(vj)⋅yi=−N1n=1∑Nejφj′(vj)yi
∂ωji∂ε=−N1n=1∑Nδjyi
当神经元 j是输出节点时,可以直接得出局域梯度如下:
δj=ejφj′(tj)
当神经元 j是隐藏节点时,重新定义局域梯度
δj=−∂yj∂ε∂vj∂yj=−∂yj∂εφj′(vj)
∂yj∂ε=N1n=1∑Nk∑ek∂yj∂ej=N1n=1∑Nk∑ek∂vj∂ej∂yj∂vj
由于 en=dn−yn=dn−φn(vn) 以及 vj=∑k(wjiyi)
∂yj∂ε=N1n=1∑Nk∑ek∂vj∂ej∂yj∂vj=N1n=1∑Nk∑ek(−φk′vk)(wkj)=−N1n=1∑Nk∑δkwkj
故可得局域梯度为
δj=−∂yj∂εφj′(vj)=φj′N1n=1∑Nk∑δkwkj