讲得很好的防止过拟合的方法博客地址:
http://www.jb51.cc/article/p-wuohknap-bq.html
几种方法归纳:
- early stop,当模型训练到一定规模时提前停止。
- 正则化方法 修改代价函数
- 数据集扩增 可减少过拟合,训练更好的模型.
- 各种剪枝方法
-悲观剪枝 不需额外数据集
-代价复杂度剪枝 需要另外的数据集
L1正则化
所有权重ω 绝对值之和乘以λn
λ 是正则项系数,n是训练集样本大小。
C=C0+λn∑ωsgn(ω)
L1使各个元素趋近于0,所以产生的参数比较稀疏,具有稀疏性。L2正则化 (权重衰减)
所有参数ω 平方的和除以训练集样本大小n ,乘以正则项系数λ ,λ 权衡正则项与原代价函数的大小。
C=C0+λn∑ωω2
L2正则化是二阶惩罚项,参数比较平滑。
L2正则化项有让w“变小”的效果,但是还没解释为什么w“变小”可以防止overfitting?一个所谓“显而易见”的解释就是:更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好(这个法则也叫做奥卡姆剃刀),而在实际应用中,也验证了这一点,L2正则化的效果往往好于未经正则化的效果。当然,对于很多人(包括我)来说,这个解释似乎不那么显而易见,所以这里添加一个稍微数学一点的解释(引自知乎):