modelarts
/modelarts_faq/modelarts_05_0016.html
如何提升模型的泛化能力?
更新时间:2021/01/12 GMT+08:00
提升模型泛化能力有很多方法,您可以参考以下三个角度:
模型角度
- Dropout
Dropout实现过程:首先随机删掉网络中一半的隐藏神经元,输入输出神经元保持不变。输入x通过修改后的网络前向传播,得到的损失结果通过修改的网络反向传播。一小批训练样本执行完这个过程后,在没有被删除的神经元上按照随机梯度下降法更新对应的参数(w, b),然后继续重复这一过程。Dropout简单来说是是模型节点随机失活,这样使之不会太依赖数据的某些局部特征。
那么为什么这样做能提高模型返回能力呢?主要有以下两个方面:
- 取平均的作用
模型的随机失活最终相当于得到了不同的模型,然后类似于投票取各个子模型普遍认同的解,这样将更具有参考价值。与集成学习类似,最终能提高模型的泛化效果。
- 减少神经元之间复杂的共适应关系
因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况,使网络去学习更加鲁棒的特征 ,这些特征在其它的神经元的随机子集中也存在。
- 取平均的作用
- 更深的模型
- 更宽的模型
- 正则化
父主题: 模型管理
