rcnn论文疑问

rcnn进行有监督的预训练之后进行fine-tuning,我对这个fine-tuning过程很迷惑,是怎么实现的,是取IoU大于0.5的区域和IoU进行训练,还有这个fine-tuning的损失函数是用的什么,可不可以把这个过程理解为是一个分类的过程。
已邀请:

王斌_ICT - 研究领域:深度学习,目标检测

赞同来自: uestc_yang 麦兜的志愿 caney

1.fine-tuning实际上使用预训练的网络(RCNN使用的是imageNet的分类数据训练的模型作为初始化模型)进行初始化,然后在这个基础上进行训练。那么为什么要fine-tuning而不是直接train一个模型:在目标任务数据较少的情况下,直接训练一个模型收敛速度慢,甚至可能不收敛,这种情况下,使用跟目标任务类似的数据集进行预训练,然后使在预训练模型的基础上fine-tuning能够使网络快速收敛。
2.RCNN每次训练的batch是128个候选区域(Region Proposal),包含32个正例(跟groudtruth IoU>0.5的roi),96个负例(IoU<0.5),损失函数是整个网络训练的目标函数,目的是使网络的输出跟groud truth最接近(RCNN中就是使网络得到的窗口跟groud truth Bounding box直接差值最小)
最后说一句fine-tuning跟正常网络的训练一样,只不过训练一个网络一般都是采用随机初始化(例如:均值为0,方差为0.01的高斯随机),而微调一个网络是用一个已经训练好的模型初始化网络。

要回复问题请先登录注册