模型集成

集成学习(ensemble learning)是机器学习中一类学习算法,值训练多个学习器并将它们组合起来使用的方法。这类算法通常在实践中会取得比单个学习器更好的预测结果。

  1. 基于数据的集成
    在训练阶段的数据扩充在测试阶段仍然适用。 诸如图像多尺度, 随机剪裁等。以随机剪裁为例, 对某张测试图片随机剪裁可得到n 张图像,测试阶段只需要用训练好的深度网络模型对n张图分别做预测, 之后将预测的各类置信度平均作为该测试图像最终预测结果即可。
    数据扩充具体操作方法见前文:https://blog.csdn.net/weixin_41940752/article/details/106360763
    数据增广部分

  2. 多层特征融合
    深度卷积神经网络特征具有层次性的特点, 不同层特征富含的语义信息可以相互补充,可以对多种不同尺度的目标进行识别。对于特征融合应选取哪些网络层,一个实践经验是:最好使用靠近目标函数的几层卷积特征。因为越深层特征包含的高层语义越强,分辨力也会越强。相反, 网络较浅层的特征较普使, 用于特征融合可能起不到作用,或者甚至会起到相反作用。

  3. 多模型集成
    (1)同一模型不同的初始化: 由于神经网络的训练机制是基于随机梯度下降, 故不同的网络参数初始化会导致不同的训练结果。对同一模型进行不同初始化,之后得到的网络模型进行结果集成会大幅度缓解其随机性,提升最终任务的预测结果。

(2)不同目标函数:选择将不同的损失函数作为目标函数分别训练模型。在预测阶段,可以直接对不同模型预测结果做“置信度级别”的平均或投票,也可以做“特征级别”的模型集成:将不同网络得到的深度特征抽出后级联作为最终特征。

(3)不同的网络结构:可以在使用如VGG, 深度残差等不同网络架构的网络上训练模型,最后将不同架构网络得到的结果做集成。

你可能感兴趣的:(深度学习)