Shallow Learning —Bias and Variance
训练出的模型的error的来源:bias(偏差)和 variance(方差)
直观表现是更复杂的模型在testing data上并不总是会有比较好的表现。
1. 关于bias和variance对最终结果的影响用下图能较好说明。
是最准确的模型,是目标模型,这两个之间产生的是初始的bias,是实际生成的模型,与我们的目标模型之间产生的误差是variance。
2. 使用相同的模型,采用不同的训练数据会得到不同的,越简单的模型被训练数据影响的程度越小。
可以看到,模型越复杂,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,可以充分利用现有数据去修正误差。
关于validation更详细的介绍见:https://zhuanlan.zhihu.com/p/24825503?utm_source=tuicool&utm_medium=referral
评论区有一段比较好的解释: