预训练 fine-tuning 冻结https://zhuanlan.zhihu.com/p/35890660
“不论是最初的region proposal,还是后来的anchor box,不可避免的一个问题就是对于同一个物体,会预测出多个bounding box“
NMS、bbox回归https://zhuanlan.zhihu.com/p/60794316
具体过程是测试图片输入后通过selective search生成2000个proposal区域,各通过训练好的模型获得分类置信度,然后NMS会根据置信度筛掉图里每个物品上多余的proposal box,剩下的proposal再通过对应类别的回归器得到四个平移缩放量来计算出最终的预测box
给小白简单解释下epoch和iter的差别,比如训练数据是1000张图片,Mini-batch是10,那么训练1个epoch就是训练100次,也就是100个iter。所以如果你打算训练1w个iter的话等价于训练100个epoch。
有用的githhub合集https://zhuanlan.zhihu.com/p/60245227
对mmdetection源码架构的理解https://zhuanlan.zhihu.com/p/238130913

loss值大小不重要,只要看出它下降就行,因为不同模型计算单位不同
预训练
应该是在特征提取过程中吧 学习速度快&质量高效果好
在上面这个例子中,如果我们直接让A去学习这样的任务,这就对应了传统的直接训练方法。如果我们先让A变成B,再让他去学习同样的任务,那就就对应了“预训练+微调”的思路。
预训练方式表现在模型参数上,就是我之前已经拿一个合适的任务(这个任务可能是和很多任务有共同之处的任务)提前训练好了所有的模型参数(预训练)。我们不需要再从0开始训练所有参数了,但是针对我们目前这个任务,有些参数可能不合适,我们只需要在当前参数的基础上稍加修改(微调)就可以得到比较好的效果,这样学习时间必然会大大减小。而且,由于预训练过程和我们当前的任务不是同时进行的,所以可以提前花很长时间把几千亿乃至万万亿参数(现在应该还没)提前预训练好,以求和更多的具体任务都有重合,从而只需要我们微调就可以在各项任务达到不错的效果。
但微调究竟调的啥呢
预训练 就是指预先训练的一个模型或者指预先训练模型的过程;微调 就是指将预训练过的模型作用于自己的数据集,并使参数适应自己数据集的过程。
模型评估
判别是否为正例只需要设一个概率阈值T,预测概率大于阈值T的为正类,小于阈值T的为负类,默认就是0.5。如果我们减小这个阀值T,更多的样本会被识别为正类,这样可以提高正类的召回率,但同时也会带来更多的负类被错分为正类。如果增加阈值T,则正类的召回率降低,精度增加。如果是多类,比如ImageNet1000分类比赛中的1000类,预测类别就是预测概率最大的那一类。
学习率和batchsize
不考虑其他任何因素,学习率的大小和迭代方法本身就是一个非常敏感的参数。如果经验不够,还是考虑从Adam系列方法的默认参数开始,如果经验丰富,可以尝试更多的实验配置。