为了防止过拟合,可以为损失函数加上一个惩罚项对复杂的模型进行惩罚,即强制让模型的参数值尽可能小。加上正则化项的目标是让它的值尽可能小,即参数等于0或者接近于0。\(\lambda\)为惩罚项系数,是人工设定的大于0的参数。
剪枝是决策树类算法防止过拟合的方法。如果决策树的结构过于复杂,可能会导致过拟合问题,此时需要对树进行剪枝,消掉某些节点让它变得更简单。剪枝的关键问题是确定减掉哪些树节点以及减掉它们之后如何进行节点合并。决策树的剪枝算法可以分为两类,分别称为预剪枝和后剪枝。前者在树的训练过程中通过停止分裂对树的规模进行限制;后者先构造出一棵完整的树,然后通过某种规则消除掉部分节点,用叶子节点替代。
数据增广是解决过拟合中思想比较朴素的方法。训练集越多,过拟合的概率越小,数据增广是一个比较方便有效屡试不爽的方法,但各类领域的增广方法都不同。
Dropout是神经网络中防止过拟合的方法。dropout的做法是在训练时随机的选择一部分神经元进行正向传播和反向传播,另外一些神经元的参数值保持不变,以减轻过拟合。dropout机制使得每个神经元在训练时只用了样本集中的部分样本,这相当于对样本集进行采样,即bagging的做法。最终得到的是多个神经网络的组合。
提前停止的策略是在验证集误差出现增大之后,提前结束训练;而不是一直等待验证集 误差达到最小。提前停止策略十分简单,执行效率高,但需要额外的空间备份参数。
集成学习算法也可以有效的减轻过拟合。Bagging通过平均多个模型的结果,来降低模型的方差。Boosting不仅能够减小偏差,还能减小方差。