一般的图是把residual(残余"学习"层)放到中心的地方,所以可能会比较让人困惑。这里把residual放到一旁,以虚线表示, 因为就是表示"残余"。residual 残余层一般以 f(x) - x 表示; f(x) 其实就是最后往下一层的输出, 在我这里是 x+z; 所以 f(x) - x = z; z 就是这个残余层的输出。如果这个额外添加的残余层没用的话,那么z就往0靠,或者说x+z还是会往 x靠。
为什么这样可行?因为f(x) = x 这个identity函数很容易学, 只需要让残余层接近0,或者说让残余层的参数都调成0 就可以。 有了residual layer(残余层), 就可以有非常非常deep的神经网络了。100个层基本上随便加; 以前的话,100 个层,你梯度会很快消失,根本无法学习。