0.摘要
本网络能够让网络层数增加的同时,识别率不下降。
神经网络没有证明,所以你看论文不能忽略作者的introduction以及related work,更重要的是实验,因为没有数学证明,实践证明又不严谨的话,就是一个笑话。所以产业化也不容易。(所以要学习大牛们是怎么做试验的)
图片来自论文,版权归作者所有。
1.网络越深为什么错误率上升了
首先我们有个浅层网络训练好的,然后我们往上增加层数,假设这个层是identity mapping,这里翻译成恒等mapping,wiki说是恒等映射,一模一样,x=I(x),那么识别率不应该下降,也就是说浅层网络的错误率一定比更多层的网络高。这个原论文解释,还差点火候,因为还有一篇论文他们写的,专门用来解释,不是一两句说的清楚的。最后面有论文连接。等我看了再更一篇。所以理解大概意思就好。
以上网络构建的过程说是最好的。作者决定使用跳层,shortcut connection作为identity mapping。
我觉得吧,这个说不好啊,只能说越深错误率不会上升,却不能说明,错误率会下降,有可能不变,所以怎么说是最好的呢,留个问号
梯度是链式的。简而言之就是前一层梯度,等于后一层的梯度,乘以后一层对前一层的梯度,所以你可以递归求梯度。所以让这个文章解释可用性还是有点意思。
可是,本文的作者在实验的时候明确的指出,不,我们看了下用了BN(batch normalization)的plain net的梯度,并没出现梯度消失。
2.卷积相当于用非线性函数拟合理想特征提取复杂函数
我是没听说过,积累一下。这是来自这一段:
Relu(Wx+b)就相当于这个隐含层H(x)(由很多层叠在一起组成)非线性函数,我们可以用这个函数来拟合论文中提到的functions2,不过本论文要用这个函数F(x)来拟合残差函数(隐含层的输出减去输入F(x)=H(x)-x)。不过由于残差函数更好优化,所以我们借助残差函数来优化H(x).
3.干货
- 引入的identity mapping也就是x不会带入时间复杂度,以及参数,也就是说我的网络没有变胖。
- 网络依旧是End to End,而且依旧可以使用随即梯度下降。
- 现有的架构就能实现,比方说caffe
- 应用了两个数据库,证明普适性。对多种类型的高端问题比方说分类,分割,都取得了第一名当时。
- 增加网络深度,不会增加错误率
- identity mapping来自于前两层网络,一般跳两层,三层。你可以选择很多层。
4.网络
这个网络最右侧的是残差网络,实现是这样的:
两层举个例子:函数是Relu
注意还得加上X: y=F+x
如果跳三层: y=W3r(W2r(W1(x)))+X
示意图:
三层就是256通道过多,所以先下降到64,卷积,然后再还原回去。
于是网络图严格写下来是这样的:
我说下怎么看:
- 每次下采样网络变小都会改一次名,conv2_x 到conv3_x。
- 后面用[]括起来表示这个结构将重复多少次,所以你可以算一下,比如第二列的34层网络,1+1+2*3+2*4+2*6+2*3=34。
- 每两层或者每三层括起来表示跳层,也就是第一层的网络的输入,跳到第二层网络的输出上。
事实上只有这里似乎是解释了我这个网络为什么好使,还有related work介绍了下残差函数残差向量。之后他们又写了一篇论文,可能会解释。
名词解释
degradation problem: 按理说增加网络深度应该增加识别率,但是并没有。就是1 解释的。
好了完。