keras搬砖系列-重新理解ResNet网络
1. plain net
对于一般网络来说,他们的传导方式是这样的:
z[l+1]=w[l+1]a[l]+b[l+1] a[l+1]=g(z[l+1]) z[l+2]=w[l+2]a[l+2]+b[l+2] a[l+2]=g(z[l+2])
2.short cut
z[l+1]=w[l+1]a[l]+b[l+1] a[l+1]=g(z[l+1]) z[l+2]=w[l+2]a[l+2]+b[l+2]
a[l+2]=g(z[l+2]+a[l])
3.difference
4.why
残差网络的提出背景是因为随着网络的加深,出现了训练集准确率下降的现象,在这里残差提出了两种映射:
其中一种则是y=F(x)+x,残差映射中的差是y-x,所以残差表示是F(x).
我们采用跳跃连接:
也就是在第二个问题所说的a[l+2]=g(z[l+2]+a[l]),a[l+2]=g(w[l+2]a[l+1]+b[l+2]+a[l]).当w[l+2]=0的时候,并且b[l+2]=0,那么此时a[l+2]=a[l],也就是说此时能学到恒等映射。并且与此同时能更加采集到有用特征,也就说能扩大视野,所以当更加深层的时候也不会进行梯度消失。