ResNet
网络输入是x,网络的输出是F(x),网络要拟合的目标是H(x),传统网络的训练目标是F(x)=H(x)。残差网络,则是把传统网络的输出F(x)处理一下,加上输入,将F(x)+x作为最终的输出,训练目标是F(x)=H(x)-x,因此得名残差网络。现在我们要训练一个深层的网络,它可能过深,假设存在一个性能最强的完美网络N,与它相比我们的网络中必定有一些层是多余的,那么这些多余的层的训练目标是恒等变换,只有达到这个目标我们的网络性能才能跟N一样。对于这些需要实现恒等变换的多余的层,要拟合的目标就成了H(x)=x,在传统网络中,网络的输出目标是F(x)=x,这比较困难,而在残差网络中,拟合的目标成了x-x=0,网络的输出目标为F(x)=0,这比前者要容易得多。最后总结并回答题主的问题:resnet的F(x)长什么样?就是传统网络的输出F(x)加上输入x:F(x)+x为什么是x而不是其他?因为多余的层的目标是恒等变换,即F(x)+x=x,那F(x)的训练目标就是0,比较容易。如果是其他,比如x/2,那F(x)的训练目标就是x/2,是一个非0的值,比0难实现。
作者:王殊
链接:https://www.zhihu.com/question/53224378/answer/343061012
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。