我们可以使用形如 y=θ0+θ1xy=\theta_0+\theta_1x 的线性模型来拟合训练数据,也可以选择拥有更多参数的 y=θ0+θ1x+θ2x2y=\theta_0+\theta_1x+\theta_2x^2 的多项式来拟合,也可以选择其它非线性模型来拟合。但不论选择何种模型,最终都要转化到如下最小化问题:

mini=1m(h(xi)yi)2\min \sum_{i=1}^m(h(x^i)-y^i)^2

对于线性模型,我们已经掌握了使用梯度下降法和正规方程法来求解这个最小化问题。对于正规方程法,矩阵 XTXX^TX 不一定是可逆的,我们可以使用 正则化 来解决这个问题。

欠拟合和过拟合

假如有 nn 个训练数据,我们可以使用 y=θ0+θ1xy=\theta_0+\theta_1x 的线性模型来拟合,也可以使用 y=θ0+θ1x++θn1xn1y=\theta_0+\theta_1x+\cdots+\theta_{n-1}x^{n-1} 的多项式模型来拟合。根据代数基本定理,nn 个测试数据训练出的多项式模型是唯一的,并且完美拟合所有的测试数据(即代价函数为0)。

前者的拟合效果可能不是很好,这是由于模型不够好,导致预测值不准确,称其为 欠拟合;后者虽然达到了测试数据的完美拟合,但是它将每个点均考虑在模型的构建过程当中,放大了错误数据的贡献,导致其它部分的拟合效果也不是很好,称其为 过拟合

pVbrR6P.png

正则化

欠拟合可以寻找更好的模型,过拟合需要用到 正则化 的方法来处理。具体做法是添加代价函数的惩罚项,防止模型对数据过拟合。

mini=1m(h(xi)yi)2+λΩ(θ)\min \sum_{i=1}^m(h(x^i)-y^i)^2+\lambda\Omega(\theta)

其中正则化项 Ω(θ)\Omega(\theta) 可以精细化每个测试数据的贡献,使之对拟合的贡献更加合理。设计一个合理的 Ω(θ)\Omega(\theta) 是机器学习的一大难点。

岭回归

岭回归的正则化项是模型参数的L2范数,