参考论文
SNAPSHOT ENSEMBLES: TRAIN 1, GET M FOR FREE
解决的问题
多个分类器集成可以获得超过单个分类器的效果,但集成分类器就要求有多个分类器,在训练速度和测试速度方面不占优势。本文提出的方法可以提高集成学习的训练速度,通过一次训练,获得多个分类器,解决了集成学习训练速度慢的问题。
解决方法
深度学习训练过程中,只有经历足够长的epoch后,test loss才会随着lr的降低而降低,这说明loss空间中存在的局部最小值点是稳定的,这些局部最小值点的模型从不同方面描述了特征空间,可以用于集成学习。本文提出的方法主要有以下两点
-
周期性学习率策略
和常规学习率策略不同,本文把整个训练过程平均划分成M个阶段,每个阶段内学习率lr都从一个固定初始值开始,逐步降低。每个阶段结束后都保留一个snapshot,训练结束后一共获得M个snapshot,从后面抽取m个组成集成分类器。如此在一次训练中,获得M个模型,训练速度和常规训练方法一样。
-
利用前一阶段的结果初始化当前阶段模型