过拟合和欠拟合
什么是过拟合和欠拟合
过拟合:模型在训练集上效果好,在测试集上效果差
欠拟合:在训练集上效果就不好
产生过拟合的原因
- 参数太多,模型复杂度太高
- 数据量少,训练轮次过多
- 样本中噪声较大,模型拟合了噪声特征
过拟合解决方法
- 降低模型复杂度,使用小模型
- 增加样本数量,数据增强,减少训练轮次
- 使用正则项
正则项
正则化目的
平衡训练误差与模型复杂度,避免过拟合
L2正则项
L2正则就是在代价函数
后面加上一个正则化项:
表示原始代价函数,
就是L2正则项,是所有参数的平方和除以训练集样本数。
迭代时,代价函数对参数求导:
可以看出L2正则化对偏置
是没有影响的,只对参数
有影响
每一次迭代过程中,参数
都要先乘以
,因为
都是大于零的,所以
,效果是减小参数
, 我们把这一项成为权重衰减项weight_decay,每次进行参数更新时都要先乘这一项,也就会导致L2正则项得到的权重更加的
平滑。平滑也就意味着在一些困难样本处,模型不会因为这些样本导致自己过分的扭曲,从而避免过拟合。L1正则项
L1正则就是在代价函数
后面加上一个正则化项:
求导得
,
其中
为符号函数,则参数的更新规则为:
比不使用正则项的更新规则多减了
。当
时,更新后的参数比不使用正则项的更小,当
时,更新后的参数比不使用正则项的更大,效果就是比不使用正则项的更加靠近0。当参数中的0变多,也就意味着模型更加的
稀疏,同时表明值为0的参数所对应的特征被过滤掉,具有特征选择的作用。为什么L1正则具有稀疏性
- 解空间角度
等值线表示损失函数,等值线越小的表示损失越小,交点处是优化后的参数情况。可以看出,正则项是对参数取值设置了约束条件,使得损失值不能超过约束范围。
L1正则有棱有角,更容易在顶点处相交(原因可以参考上一节的L1更新规则),此时
为0,只保留了
,因此L1具有稀疏性和特征选择性。
- 贝叶斯先验角度
参数模型表示为,数据样本.则极大似然估计MLE可表示为后验概率为取对数后,,我们在优化过程中,一般是求最小值,因此对求最小值即可。将MLE表达式代入到后验概率中
假设
满足拉普拉斯分布,
,
优化函数相当于
假设
满足高斯分布,
,
优化函数相当于
由图中可以看出,如果满足拉普拉斯分布,相比于高斯分布来说,参数
会有更大的概率取到0,即具有稀疏性。