【机器学习】正规方程

上一章——多元梯度下降法

文章目录

  • 特征选取
  • 多项式回归
  • 正规方程
    • 最小二乘估计
  • 比较梯度下降和正规方程


特征选取

在前面的章节中,我们在讲房子价格预测问题的时候,提到了房子的价格可以有很多特征
【机器学习】正规方程_第1张图片
假设现在h的式子如上所示,这是一个有两个特征的线性假设公式,不难发现有frontage(代表长)和depth(宽)两个特征,看到长和宽,我们会自然想到占地面积
那我们可不可以用占地面积来做特征呢,是否以占地面积为特征可以同时表示长和宽两个特征呢?
答案是可以的,并且将会比原来用长和宽作为特征要更好(因为现实中也是将占地面积作为重要判断标准的,而非长宽)
【机器学习】正规方程_第2张图片
(上图中用面积x作为特征,面积=长*宽)
因此,即使面对同样的特征,也可以得到不同的方案,这取决于你看待问题的角度,选择合适的方法可以得到更好的模型。


多项式回归

【机器学习】正规方程_第3张图片
依旧是住房问题,我们看看上方给出的图片。
图中有两条曲线:一条是二次函数的蓝线,一条是三次函数的绿线,根据现在给出的数据来看,二者的拟合程度是差不多的,那么我们应该选择几次项来拟合呢?
答案是三次项,首先一次项的拟合程度一定是最差的。训练集整体的走向看起来就像是二次或者三次函数。
虽然二次函数看起来比三次函数更加拟合,但是如果选择二次函数就会发现一个问题:这个二次函数是开口向下的,也就是说接下来它的price将会往下走,而这是不可能的,因为横轴代表的是房子的大小,不可能会出现房子越大,价格越低的情况,因此我们不能用二次函数来拟合。
所以,三次函数显然才是更好的选择。

h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 h_θ(x)=θ_0+θ_1x_1+θ_2x_2+θ_3x_3 hθ(x)=θ0+θ1x1+θ2x2+θ3x3
= θ 0 + θ 1 ( s i z e ) + θ 2 ( s i z e ) 2 + θ 3 ( s i z e ) 3 =θ_0+θ_1(size)+θ_2(size)^{2}+θ_3(size)^3 =θ0+θ1(size)+θ2(size)2+θ3(size)3
x 1 = ( s i z e ) x_1=(size) x1=(size)
x 2 = ( s i z e ) 2 x_2=(size)^2 x2=(size)2
x 3 = ( s i z e ) 3 x_3=(size)^3 x3=(size)3

另外还要注意,由于特征涉及指数运算的,因此特征缩放就显得尤其重要,在梯度下降算法中需要保持特征范围在可接受的范围内。

【机器学习】正规方程_第4张图片
初三次之外, h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 h_θ(x)=θ_0+θ_1x_1+θ_2\sqrt{x_2} hθ(x)=θ0+θ1x1+θ2x2 也是一种不错的假设函数,
在选择拟合的假设函数的过程中,通过对图像的理解选择更好的假设函数有助于我们拟合的效率


正规方程

【机器学习】正规方程_第5张图片在梯度下降那一章中,我们讲到了局部最小值 θ θ θ所在的点其实就是这个邻域内的驻点,因此要求出这个点只需对代价函数 J ( θ ) J(θ) J(θ) θ j θ_j θj的偏导,并使其 = 0 =0 =0再解出即可,如果你学习了微积分相关知识就能理解。

也就是说梯度下降未必需要完全迭代才能得到这个 θ θ θ的值,事实上我们完全可以通过计算把它先算出来。

【机器学习】正规方程_第6张图片
现在我们有一个四个特征的训练集,想要得出使代价函数最小的 θ θ θ,我们当然也能通过计算得出。
首先别忘了加上常数项 x 0 = 1 x_0=1 x0=1
【机器学习】正规方程_第7张图片

我们用所有的特征 x j x_j xj来构建一个特征矩阵 X X X,矩阵 X X X包含了所有训练样本中的所有特征
其中, x ( 1 ) = [ 1 2104 5 1 45 ] x^{(1)}=\begin{bmatrix} 1 \\ 2104 \\ 5 \\ 1 \\ 45 \end{bmatrix} x(1)= 121045145 x ( i ) = [ x 0 ( i ) x 1 ( i ) x 2 ( i ) x 3 ( i ) x 4 ( i ) ] x^{(i)}=\begin{bmatrix} x^{(i)}_0 \\ x^{(i)}_1 \\ x^{(i)}_2 \\ x^{(i)}_3 \\ x^{(i)}_4 \end{bmatrix} x(i)= x0(i)x1(i)x2(i)x3(i)x4(i)
最终得到的矩阵 X = [ x 0 ( 1 ) x 1 ( 1 ) x 2 ( 1 ) x 3 ( 1 ) x 4 ( 1 ) x 0 ( 2 ) x 1 ( 2 ) x 2 ( 2 ) x 3 ( 2 ) x 4 ( 2 ) x 0 ( 3 ) x 1 ( 3 ) x 2 ( 3 ) x 3 ( 3 ) x 4 ( 3 ) x 0 ( 4 ) x 1 ( 4 ) x 2 ( 4 ) x 3 ( 4 ) x 4 ( 4 ) ] X=\begin{bmatrix} x^{(1)}_0 & x^{(1)}_1 &x^{(1)}_2 &x^{(1)}_3 &x^{(1)}_4\\ x^{(2)}_0 & x^{(2)}_1 &x^{(2)}_2 &x^{(2)}_3 &x^{(2)}_4\\ x^{(3)}_0 & x^{(3)}_1 &x^{(3)}_2 &x^{(3)}_3 &x^{(3)}_4 \\ x^{(4)}_0 & x^{(4)}_1 &x^{(4)}_2 &x^{(4)}_3 &x^{(4)}_4 \\ \end{bmatrix} X= x0(1)x0(2)x0(3)x0(4)x1(1)x1(2)x1(3)x1(4)x2(1)x2(2)x2(3)x2(4)x3(1)x3(2)x3(3)x3(4)x4(1)x4(2)x4(3)x4(4)
同样地,我们将所有结果样本构建矩阵 y y y
也就是说,我们可以用两个矩阵 X y Xy Xy的关系来表示出所要求的 θ θ θ

最小二乘估计

最小二乘估计公式如下:
θ = ( X T X ) − 1 X T y θ=(X^TX)^{-1}X^Ty θ=(XTX)1XTy
以下是二乘估计公式的证明过程:
y = X ⋅ θ y=X\cdotθ y=Xθ
首先运用求驻点的公式,我们需要求出满足所有偏导都为0的矩阵 θ θ θ,
{ ∂ J ( θ ) ∂ θ 1 = 0 ∂ J ( θ ) ∂ θ 2 = 0   . . . . . . ∂ J ( θ ) ∂ θ n = 0 \begin{cases} \frac{∂J(θ)}{∂θ_1}=0 \\ \frac{∂J(θ)}{∂θ_2}=0 \\ \ ...... \\ \frac{∂J(θ)}{∂θ_n}=0 \end{cases} θ1J(θ)=0θ2J(θ)=0 ......θnJ(θ)=0 分别解出所有 θ θ θ值,得到矩阵 θ = [ θ 1 θ 2 . . . θ n ] θ=\begin{bmatrix} θ_1 \\ θ_2 \\ ... \\ θ_n \end{bmatrix} θ= θ1θ2...θn
最小二乘法的原理是通过最小化误差(真实目标对象与拟合目标对象的差)的平方和,还记得这张图吗?
【机器学习】正规方程_第8张图片
我们希望所有点 y y y到拟合曲线的距离之平方和最小,让我们用向量语言重新描述一下这张图:
【机器学习】正规方程_第9张图片
如果用向量语言来讲,我们看一下(1,1)这个点,我们将红色向量称为向量a,紫色向量称为向量b,蓝色向量称为向量c,那么很明显 ∥ c ∥ = ∥ a − b ∥ \lVert c\rVert=\lVert a-b\rVert c=ab
因此,求最小化误差的平方和,就是使得所有蓝色向量的欧几里得范数之平方和最小,并且每一个蓝色向量都可以表示为两个向量之差,而下方的红色向量,其实就是我们确定的拟合曲线 y = X ⋅ θ y=X\cdotθ y=Xθ,而上方紫色向量就是 y y y,因此,最小二乘法可以化为:
S = ∥ X ⋅ θ − y ∥ 2 S=\lVert X\cdotθ-y\rVert_2 S=Xθy2
证明过程参考Ordinary Least Square(OLS) 普通最小二乘
最终得到公式 θ = ( X T X ) − 1 X T y θ=(X^TX)^{-1}X^Ty θ=(XTX)1XTy
通过这个公式,我们可以直接计算出 θ θ θ的值


比较梯度下降和正规方程

学习了这两种方法,我们来比较一下二者的优缺点:

梯度下降 正规方程
优点 1.当特征数量n较大时工作效率高 1.不需要选择学习率
2.不需要迭代
缺点 1.需要选择适当的学习率
2.需要多次迭代,同时要保证特征缩放
1.需要求解 ( X T X ) − 1 (X^TX)^{-1} (XTX)1,而该式求解的时间复杂度是 O ( n 3 ) O(n^3) O(n3)
2.如果特征数量n较大时工作效率低

所以选择哪个方法由特征数量决定,当特征数量小于10000时,我们可以使用正规方程,当特征数量大于10000时最好使用梯度下降法。
另外 ( X T X ) (X^TX) (XTX)可能会出现不存在逆矩阵的情况,但是在计算机中并不影响计算。

你可能感兴趣的:(吴恩达机器学习课程,人工智能,深度学习)