网上有大量的文章对ResNet网络进行了详细的阐述,但是写的都比较模糊,没有对F(X)是什么,每一层的F(x)怎么计算给出详细的过程,因此萌新们在阅读时可能存在question,此处针对block块进行进一步的阐述,谈谈自己的见解。
1 参数理解
如图所示,整个方框表示残差模块,下面解释图中每一个参数的意义。
x:残差块的输入,整个模块的输入,就是之前层的输出
H(X):残差块的输出,就是这个模块算完的结果,就是下面的y通过激活函数的结果,H(X)=G(Y)(其中函数G为激活函数)
F(X):残差,就是我们要学习的目标
W1:第一层的权重
W2:第二层的权重
学习的目的就是找到输出到输入的映射,H(X)=F(X)+x;
F(X)=H(X)-x,即就是要不断的找到这样的F(X),而F(X)就是权重与输入的运算关系,通过不断迭代最终找到合适的权重,并且这个权重不会受到除了残差模块外其他层的过度影响,进而降低了梯度消失和爆炸问题。
2 普通网络计算
3 残差网络计算
参考文献:
这两篇文章解释的非常透彻,一篇解释了残差网络是怎么前向传导的,一篇介绍残差模块参数怎么计算的。简练。