为啥faster-rcnn端到端训练只做近似?

Posted

技术标签:

【中文标题】为啥faster-rcnn端到端训练只做近似?【英文标题】:Why faster-rcnn end to end training only makes approximation?为什么faster-rcnn端到端训练只做近似? 【发布时间】:2018-05-01 07:07:05 【问题描述】:

在更快的 rcnn (https://arxiv.org/abs/1506.01497) 中,

有两种方法可以训练网络。

一种方法是联合训练 rpn 和 fast rcnn。

另一种方式是以端到端的方式同时训练rpn和fast rcnn。

但是,作者说在端到端训练中,结果只是对联合训练的近似。

只做近似的原因是

这个解决方案忽略了 w.r.t 的导数。提议框的坐标也是网络响应,所以是近似的。

但是,从网络定义 (https://github.com/rbgirshick/py-faster-rcnn/blob/master/models/pascal_voc/VGG16/faster_rcnn_end2end/train.prototxt) 来看,rpn 的边界框回归在每次训练迭代中都会更新,因此不会被忽略。

那么,为什么它忽略了提案框坐标的导数?那是什么意思?

【问题讨论】:

这点我也很好奇,你找到解决办法了吗? 【参考方案1】:

幻灯片Training R-CNNs of various velocities 在第 40-45 页详细讨论了这一点。简而言之,这是因为损失函数对 ROI 层的导数是未定义的,所以使用了一个替代梯度,在这种情况下,这个导数是未定义的。

附言

Link to ICCV 2015 Tutorial

The Github README page guide me to the slide

【讨论】:

以上是关于为啥faster-rcnn端到端训练只做近似?的主要内容,如果未能解决你的问题,请参考以下文章

Faster RCNN近似端到端法详解

端到端训练 CNN-LSTLM?

Kaggle+SCF端到端验证码识别从训练到部署

中科大利用神经网络端到端训练

端到端E2E

使用 TensorFlow 进行端到端语音识别的 RNN