拉风小宇 2018-11-04
在训练机器学习模型时,常常会遇到训练集(training set)的准确性高,但在测试集(testing set)上时表现却不如预期。以下图为例,为了让训练集的error rate降至最低,因此训练出的模型(蓝线)极其复杂,但其实所需的模型仅为一条简单的线性回归(绿线),而这种情况便是模型过度拟合(model overfitting)。
Overfitting的原因多为采用过多参数,因此机器学习模型面的调整方式有下列几种
模型归一化主要针对回归模型(regression model)的损失函数(loss function)作调整,避免模型受到权重系数较高的参数影响,进而导致过度拟合。
当模型训练出来后用来预测目标值,预测值和实际值之间必定存在差异,而衡量预测差异程度的方式便称为loss function,最佳化目标则视情况追求loss function的最小值或最大值。以最小平方法(ordinary least squares, OLS)为例,其loss function如下:
为了避免机器学习模型在过程中一昧追求训练资料的最佳化,因此在loss function加入惩罚项作为对参数权重的限制,通过归一化让模型忽略不重要的参数,进而降低模型的复杂度。而之前的loss function也可改写如下:
其中λ表示预测误差与惩罚项的取舍。当λ值越大,模型会越降低参数权重的影响力。
在模型的归一化上分作L1-norm和L2-norm两种。L1-norm(Lasso)计算方式采参数权重绝对值的和,其loss function如下:
而之前例子则采L2-norm方式作归一化。在防止机器学习模型过度拟合上主要使用L2-norm,而L1-norm则主要用来作特征选取。原因可参考下图,红点为加入惩罚项后得到的最佳解,L1-norm产生的图形为黑色方形,与原本的loss function相交处多为边角,而在此会有许多参数的权重值为零,因此产生的稀疏矩阵可用来做特征选取。L2-norm所产生的函数图形则为黑色圆形,因此权重值为零的机率小很多,也因而不具稀疏性。