1、 深度学习或机器学习中如何防止模型过拟合和欠拟合?

小常识1 深度学习或机器学习中如何防止模型过拟合和欠拟合?

图1 过拟合和欠拟合

概念解释

过拟合:训练的模型在训练集上面的表现很好,但是在验证集上面的表现很差,即模型的泛华能力较差,如图1中的Overfitting;

欠拟合:训练的模型在训练集上面的表现很差,在验证集上面的表现也很差,如图1中的Underfitting;

 

原因分析

过拟合:

1. 最本质原因是“训练的模型太复杂,即模型记住了某些并不通用的特征,而不是学习到了通用的特征”;

2. 训练集和验证集不符合同分布的假设;

3. 训练数据中含有较多的噪声;

欠拟合:模型发生欠拟合的最本质原因是“训练的模型太简单,最通用的特征模型都没有学习到”;

 

解决方案

过拟合

方案1:清洗数据。即去除掉可能有问题的数据(减少了训练样本);

方案2:添加正则项(正则项的作用主要是通过参数来控制模型的复杂度,常用的有L1和L2正则项);

方案3采用“Early Stopping”方法。即所谓的提前停止方法。一般的做法是,在训练的过程中,记录到目前为止最好的validation accuracy,当连续10次Epoch(或者更多次)没达到最佳accuracy时,则可以认为accuracy不再提高了。此时便可以停止迭代了(Early Stopping)。

方案4:添加Dropout层。即通过修改网络本身的结构来实现的。(在训练开始时,随机得删除一些(可以设定为一半,也可以为1/3,1/4等)隐藏层神经元,即认为这些神经元不存在,同时保持输入层与输出层神经元的个数不变,这样就当于生成了很多个不同的简单网络。)

   

图2 Dropout技术

方案5增加训练集样本的个数。即给予模型提供更多的数据,这些数据中可能会包含更多的可能性,更容易让模型学习到通用的特征表示。

 

欠拟合

方案1:做特征工程,添加更多的特征项。即提供的特征不能表示出那个需要的函数;

方案2:减少正则化参数。即使得模型复杂一些;

方案3:使用更深或者更宽的模型。

方案4:使用集成方法。融合几个具有差异的弱模型,使其成为一个强模型;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值