Shallow Learning —Bias and Variance

训练出的模型的error的来源:bias(偏差)和 variance(方差)

直观表现是更复杂的模型在testing data上并不总是会有比较好的表现。

1.   关于bias和variance对最终结果的影响用下图能较好说明。

Shallow Learning —Bias and Variance

Shallow Learning —Bias and Variance是最准确的模型,Shallow Learning —Bias and Variance是目标模型,这两个之间产生的是初始的bias,Shallow Learning —Bias and Variance是实际生成的模型,与我们的目标模型之间产生的误差是variance。

2.   使用相同的模型,采用不同的训练数据会得到不同的Shallow Learning —Bias and Variance,越简单的模型被训练数据影响的程度越小。

Shallow Learning —Bias and Variance

Shallow Learning —Bias and Variance

Shallow Learning —Bias and Variance

可以看到,模型越复杂,variance可能越大,但bias越小,与实际的模型的拟合程度越高。模型太简单,会出现欠拟合(underfitting),模型太复杂,会出现过拟合(overfitting)。

3.   

解决underfitting:redesign model

1)增加特征(w的数量)

2)使用更复杂的模型(x的次数)

解决overfitting

1)采用更多数据(并不总是有效)

2)Regularization(正则化,简单理解就是惩罚高次项,在误差函数中加入惩罚项,然后再使用梯度下降法求偏导时会降低惩罚项的影响,直观效果相当于减少了feature,因此可能会增大bias,这里还不是很懂

模型选择:在bias和variance之间要有一个权衡,其实这里是假设有几个模型,针对某个模型通过交叉验证得到一个打分情况,经过几轮打分后得到当前模型的总成绩,然后再比较几个模型之间的打分选择最合适的模型,对最终选定的模型再用全部的数据进行训练得到最后的结果,对testing data进行预测。

不能直接将训练得到的模型直接用于testing data,需要有一个validation的过程

使用Cross Validation(交叉验证),将训练集的一部分拿出来当做validation data,可以充分利用现有数据去修正误差。

Shallow Learning —Bias and Variance

关于validation更详细的介绍见:https://zhuanlan.zhihu.com/p/24825503?utm_source=tuicool&utm_medium=referral

评论区有一段比较好的解释:

Shallow Learning —Bias and Variance