为啥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端到端训练只做近似?的主要内容,如果未能解决你的问题,请参考以下文章