一般训练好的CNN,会出现前面的层的权重w矩阵中的数值普遍大于后面层中w数值,即使是有BN层,这种情况依然存在。
这种情况我们先看下w更新的公式,根据梯度下降算法,w=w-dw
,其中dw表示梯度,那么只要梯度消失的问题不彻底解决,前面层的梯度就会比较小,当几个epoch更新之后,前面层梯度不再更新,而后面层的权重仍在下降,导致最后的w值域不同。(这里有个问题,如果w初始化的特别小,还会出现这个问题吗?)
而为了防止后面层的权值过小导致后面层的输出值整体过小,设计者通过增加后面层的通道数来使加权累加后的数值仍然不会太小。
网友评论