前言:
今天同学们对“反向传播算法简单例题”大致比较关心,朋友们都想要剖析一些“反向传播算法简单例题”的相关文章。那么小编也在网上汇集了一些关于“反向传播算法简单例题””的相关文章,希望大家能喜欢,兄弟们一起来学习一下吧!以如下神经网络图为例:
PS1:计算公式应该加上偏移量,但偏移量是常数,导数皆为0,为了行文方便,下面都不加偏移量。
PS2:下面的值都是我用程序生成的随机值,并计算的,为了行文方便,仅保留小数点后四位。
正向传播
设:
真实值(T):t1=0.5434、t2=0.2784输入值(I):i1=0.4245、i2=0.8448权重1(W1):wa=0.0047、wb=0.6707、wc=0.1216、wd=0.8259结果1(N1):n11=0.1047、n12=0.9824激活函数1(O1):o11=0.5262、o12=0.7276权重2(W2):we=0.1367、wf=0.8913、wg=0.5751、wh=0.2092结果2(N2):n21=0.4904、n22=0.6212激活函数2(O2):o21=0.6202、o22=0.6505总误差值:Et=0.0722
程序计算结果:
正向传播的计算公式:
N1=W1*IO1=sigmoid(N1)N2=W2*O1O2=sigmoid(N2)Et=MSE(T,O2)
这里多说几句误差函数,现在的资料有三种说法:
1、和方差(SSE):Σ(t-o)²。
2、均方差(MSE):Σ(t-o)²/n,n是预测值的数量。
3、和方差的一半:Σ(t-o)²/2,2是为了后面反向传播方便求导用。
反向传播
以更新we为例:
we(new)=we(old)+ΔweΔwe=-η*(δEt/δwe)δEt/δwe=δEt/δo21*δo21/δn21*δn21/δweδEt/δo21=1/2*2*(t1-o21)*-1+0=-(t1-o21)δo21/δn21=o21*(1-o21)δn21/δwe=1*we*o11+0=o11
综合可得:
δEt/δwe=-(t1-o21)*o21*(1-o21)*o11δEt/δwg=-(t1-o21)*o21*(1-o21)*o12δEt/δwf=-(t2-o22)*o22*(1-o22)*o11δEt/δwh=-(t2-o22)*o22*(1-o22)*o12
接着更新隐藏层的wa,这里有点不同,当我们求Δwe时,反向路线是:
Et-->o21-->n21-->we
而Δwa则是
所以其公式
δEt/δwa=δEt/δo11*δo11/δn11*δn11/δwa中的δEt/δo11=δE1/δo11+δE2/δo11
δE1/δo11=δE1/δo21*δo21/δn21*δn21/δo11δE1/δo21=1/2*2*(t1-o21)=t1-o21δo21/δn21=o21*(1-o21)δn21/δo11=o11*we+o12*wg=we
可得:
δE1/δo11=(t1-o21)*o21*(1-o21)*weδE2/δo11=(t2-o22)*o22*(1-o22)*wg
且:
δo11/δn11=o11*(1-o11)δn11/δwa=i1*wa+i2*wc=i1
所以:
δEt/δwa=[(t1-o21)*o21*(1-o21)*we+(t2-o22)*o22*(1-o22)*wg]*o11*(1-o11)*i1
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #反向传播算法简单例题