计算机视觉论文阅读二:弄懂残差网络ResNet Deep Residual Learning for Image Recognition

版权声明:原创禁止转载 https://blog.csdn.net/u013249853/article/details/79977380

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 解释的。

好了完。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页