多元线性回归的引入
之前我们介绍过房价预测问题,当时我们只使用了一个特征:房子的大小,来对房价进行预测,并且我们得到了该线性回归模型的假设函数:hθ(x)=θ0+θ1xh_\theta(x)=\theta_0+\theta_1xhθ(x)=θ0+θ1x,如上图所示。但是在实际问题中,能够决定房价的因素(特征 / 变量)肯定不只有一个,所以我们要将之前介绍的线性回归模型推广到更一般的情况,即多元线性回归模型,它更符合实际情况。
如上图所示,我们在原来的基础上,添加了三个特征 / 变量来描述房子,即房间卧室的数量、房屋的楼层以及房子的年龄。
需要注意的是,我们现在开始使用 nnn 来表示特征的数量,上述问题中,显然 n=4n=4n=4;使用 xix^ixi来表示第 iii 个训练样本的输入特征值,并不是表示 xxx 的 iii 次方,对应于上述问题,即表格中的第 iii 行,比如,当 i=1i=1i=1 时,则有 x1=[2104,5,1,45]x^1=[2104,5,1,45]x1=[2104,5,1,45](注:PricePricePrice为房价真实值,不属于输入特征),习惯上,我们更愿意把 x1x^1x1 表示成一个向量的形式,即 x1=[21045145]x^1=\begin{bmatrix} 2104\\5\\1\\45 \end{bmatrix}x1=21045145,很显然,x1x^1x1是一个444维向量,更一般来说,xix^ixi会是一个nnn维向量;使用xjix^i_jxji来表示第 iii 个训练样本中第 jjj 个特征量的值,比如,对应到上述问题,就有x31=1x^1_3=1x31=1,就相当于索引向量 x1x^1x1 中的第 333 个元素。
多元线性回归的假设函数
那么,我们现在的假设函数会是什么形式呢?
之前我们线性回归模型的假设函数是hθ(x)=θ0+θ1xh_\theta(x)=\theta_0+\theta_1xhθ(x)=θ0+θ1x,现在我们考虑多个因素对房价带来的影响,那么,对应的假设函数应该改写成hθ(x)=θ0+θ1x1+θ2x2+…+θnxnh_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+…+\theta_nx_nhθ(x)=θ0+θ1x1+θ2x2+…+θnxn,其中,xix_ixi表示第 iii 个输入特征值,为了表示方便,我们会再添加一个输入特征值 x0x_0x0,并且令 x0=1x_0=1x0=1,即对于每一组训练样本,都有 x0i=1x^i_0=1x0i=1,现在,我们再将特征和参数表示成向量的形式,则有 x=[x0x1x2…xn]∈Rn+1x=\begin{bmatrix} x_0\\x_1\\x_2\\…\\x_n \end{bmatrix}\in\R^{n+1}x=x0x1x2…xn∈Rn+1,θ=[θ0θ1θ2…θn]∈Rn+1\theta=\begin{bmatrix} \theta_0\\\theta_1\\\theta_2\\…\\\theta_n \end{bmatrix}\in\R^{n+1}θ=θ0θ1θ2…θn∈Rn+1
现在我们可以将假设函数表示为hθ(x)=θT⋅x=[θ0,θ1,…,θn]⋅[x0x1x2…xn]=θ0+θ1x1+θ2x2+…+θnxnh_\theta(x)=\theta^T \cdot x=[\theta_0,\theta_1,…,\theta_n] \cdot \begin{bmatrix} x_0\\x_1\\x_2\\…\\x_n \end{bmatrix}=\theta_0+\theta_1x_1+\theta_2x_2+…+\theta_nx_nhθ(x)=θT⋅x=[θ0,θ1,…,θn]⋅x0x1x2…xn=θ0+θ1x1+θ2x2+…+θnxn,这就是多特征量情况下假设函数的形式,也就是所谓的多元线性回归。
多元线性回归的代价函数与梯度下降
上图所示是我们多元线性回归中的一些表达式,其中代价函数J(θ0,θ1,…,θn)=J(\theta_0,\theta_1,…,\theta_n)=J(θ0,θ1,…,θn)= 12m\,\Large1\over {2m}2m1 ∑i=1m\large\sum_{i=1}^m∑i=1m (hθ(xi)−yi)2(h_\theta(x^i)-y^i)^2(hθ(xi)−yi)2与之前的代价函数表达式一致,只不过参数的数量增加到了 nnn 个,当然,上面的表达式中,我们也可以把θ0,θ1,…,θn\theta_0,\theta_1,…,\theta_nθ0,θ1,…,θn写成向量 θ\thetaθ 的形式,使表达式看起来更加简洁,即J(θ)=J(\theta)=J(θ)= 12m\,\Large1\over {2m}2m1 ∑i=1m\large\sum_{i=1}^m∑i=1m (hθ(xi)−yi)2(h_\theta(x^i)-y^i)^2(hθ(xi)−yi)2
更新梯度下降算法
上图就是多元线性回归中梯度下降的样子。
上图是之前只有一个特征时的梯度下降算法对应的参数更新方程,即 n=1n=1n=1 时
现在,我们将梯度下降算法更新,即将参数更新方程推广到更加一般的情况,即 n≥1n\ge1n≥1时,对于每一个训练样本 xix^ixi,我们在更新参数 θj\theta_jθj时,对应偏导数的在括号外的乘积项应该变为 xjix^i_jxji,即第 iii 个训练样本中第 jjj 个特征量的值。
现在,我们介绍完了多元线性回归模型,很显然,相比于单特征的情况,特征数量的增多会使得模型变得复杂,同样也会降低我们训练模型的效率,比如在进行梯度下降时,所以之后我们会来谈谈如何提高多元梯度下降收敛的速度。