美文网首页
CV-模型集成

CV-模型集成

作者: 一技破万法 | 来源:发表于2020-05-21 10:21 被阅读0次

    集成学习方法

    集成学习能够提高预测精度,常见的集成学习方法有stacking、bagging和boosting,同时这些集成学习算法与具体验证集划分联系密切。

    10折交叉验证
    截屏2020-05-21上午9.27.59.png

    这十个模型可以通过如下方式集成:

    • 对预测的结果的概率值进行平均,然后解码为具体字符;
    • 对预测的字符进行投票,得到最终字符。
    TTA

    测试集数据扩增(Test Time Augmentation,简称TTA)也是常用的集成学习技巧,数据扩增不仅可以在训练时候用,而且可以同样在预测时候进行数据扩增,对同一个样本预测三次,然后对三次结果进行平均。

    def predict(test_loader, model, tta=10):
       model.eval()
       test_pred_tta = None
       # TTA 次数
       for _ in range(tta):
           test_pred = []
       
           with torch.no_grad():
               for i, (input, target) in enumerate(test_loader):
                   c0, c1, c2, c3, c4, c5 = model(data[0])
                   output = np.concatenate([c0.data.numpy(), c1.data.numpy(),
                      c2.data.numpy(), c3.data.numpy(),
                      c4.data.numpy(), c5.data.numpy()], axis=1)
                   test_pred.append(output)
           
           test_pred = np.vstack(test_pred)
           if test_pred_tta is None:
               test_pred_tta = test_pred
           else:
               test_pred_tta += test_pred
       
       return test_pred_tta
    
    Snapshot

    在论文Snapshot Ensembles中,作者提出使用cyclical learning rate进行训练模型,并保存精度比较好的一些checkpoint,最后将多个checkpoint进行模型集成。


    截屏2020-05-21上午10.15.28.png

    由于在cyclical learning rate中学习率的变化有周期性变大和减少的行为,因此CNN模型很有可能在跳出局部最优进入另一个局部最优。在Snapshot论文中作者通过使用表明,此种方法可以在一定程度上提高模型精度,但需要更长的训练时间。

    相关文章

      网友评论

          本文标题:CV-模型集成

          本文链接:https://www.haomeiwen.com/subject/pzrgohtx.html