本的数字x是1,而他F(x)运算之后得出的结果是-2。
那么ReLU(F(x))+x,和ReLU(F(x)+x)的结果是完全不同的。
前者为0+1,后者为ReLU(-2+1)=0。
所有的可合并分支,必须不含有非线性激活算子,才能够满足结合律和分配率。
但问题又来了,如果构造出来的几个分支都可以等价转换为一个,那为什么不从一开始就只训这一个分支呢?这不是快很多吗?
最后的效果为什么会不一样呢?
这从直觉上和数学上都是不大合理的事情。
这不就相当于小学数学分开算吗?
2x拆成x+x去训练,这怎么会有区别呢?
“我们不能这么去想,残差链接的想法也没有脱离线性变换,也只是加了一个相同形状的张量x而已呀。”孟繁岐自己也不知道具体的原理,这个世界上没人能解释得清楚。
“但是残差链接在你的实际应用当中,是跨越了非线性激活函数的,你的公式看上去很简单,但代码里却很复杂。”戴密斯无情地指出了这个说法的问题所在。
“那理论上说,是不是3x3的卷积核一定好过1x1的卷积?只要九宫格外面的八个数字都是0,那么3x3的卷积核其实就变成了一个1x1的卷积,因为外面8个数字不参与运算。”
孟繁岐想了想,又换了一个例子来尝试证明。
“呃好像确实是这个道理。”
就好像有某种物品,一定好过没有,因为再不济你也可以把它扔掉嘛,这样你现在就也没有这个东西,大家都一样了。
“那为什么我这里结果显示,同一个位置上面,1x1+3x3的性能却明显好于3x3+3x3,也就是说一个强结构加一个弱结构好于两个强结构相加,这难道不奇怪吗?”
“而且,批归一化虽然推理时是线性的,但训练时其实还是非线性的,也就是说即便没有专门的非线性函数,这种可重构的结构设计,多个分支内在训练的时候仍旧是具备非线性能力的。”
理论很美好,但实验结果很骨感。
即便席尔瓦和戴密斯的数学再扎实,也终究没法解释孟繁岐获得了提升的实验结果。
两个人能做的也只有喃喃自语同一句话。
这特么根本不数学啊!
>> --