技巧 | 模型集成 (CNN)
2020-09-12 本文已影响0人
biogeeker
一般性方法
-
cross-validation
采用10折交叉验证,10个 CNN 模型可以使用如下方式进行集成:- 对预测的结果的概率值进行平均,然后解码为具体字符
- 对预测的字符进行投票,得到最终字符
-
dropout
可以有效的缓解模型过拟合的情况,也可以在预测时增加模型的精度 -
TTA (Test Time Augmentation)
- 数据扩增不仅可以在训练时使用,同样可以在预测时使用
- 可以预测多次,然后对结果进行投票或平均
-
snapshot
模型集成 - 只训练了一个 CNN 模型-
使用 cyclical learning rate 训练模型,并保存精度比较好的一些 checkpoint,最后将多个 checkpoint 进行模型集成
- Single model (Left), Ensemble model (Right)
-
由于 cyclical learning rate 的学习率周期性地增大和减少,因此 CNN 模型很有可能跳出当前的局部最优或全局最优进入另一个局部最优或全局最优
-
snapshot
可以在一定程度上提高模型精度,但需要更长的训练时间
-
简单总结
-
dropout
和TTA
在所有场景中都可以发挥作用 -
集成学习只能在一定程度上提高精度,并需要耗费较多的训练时间,建议先提高单模型精度,再考虑集成学习