[斯坦福大学2014机器学习教程笔记]第四章-正规方程在矩阵不可逆情况下的解决方法(选学)

    上节中,我们讲了正规方程。在这节中,我们将学习正规方程以及不可逆性。本节的概念较为深入,所以可以将它看作是选学材料。

    我们要讨论的问题如下:

        当我们计算θ=(XTX)-1XTy的时候,万一矩阵XTX是不可逆的话怎么办?

        如果懂一点线性代数的知识,我们就会知道有些矩阵可逆,而有些矩阵不可逆。我们称不可逆的矩阵称为奇异或退化矩阵。其实XTX不可逆的情况很少发生,在Octave里,如果你用pinv(X' *X) *X' *y来计算θ,事实上我们会得到正解。在Octave里有两个函数可以求解矩阵的逆,一个被称为pinv,另一个被称为inv。但是只要你使用pinv函数,它就能计算出你想要的θ值(即使矩阵XTX不可逆)。

    矩阵XTX不可逆通常有两种最常见的原因。

  1. 第一个原因是:如果由于某些原因,你的学习问题包含了多余的特征。例如,在预测住房价格时,如果x1是以平方英尺为单位的房子面积,x2是以平方米为单位的房子面积。因为1米等于3.28英尺,所以这两个特征值将始终满足x1=(3.28)2*x2。如果你在线性代数上非常熟练,你会知道这两个特征是不是可以像这样用一个线性方程联系起来。如果这样的话,矩阵XTX是不可逆的。
  2. 第二个原因是:你在运行的学习算法有很多特征值(m≤n)。例如,现在有10个训练样本(即m=10),但有100个调整数量(即n=100)。接着你要找到合适的n+1维参数向量θ,这意味着你要从10个训练样本中你要找到一个101维的参数向量,有时会成功,但这并不是一个好主意。因为我们之后将会看到要配置101个参数时,10个训练样本还是有点少。稍后我们将看到为什么配置很多参数时,这些数据会太少了。但是,当我们碰到m≤n这种情况的时候,我们会看能否删除某些特征,或者使用一种叫做正则化的方法(在后面的课程将会讲到,在这个方法中,即使你有一个相对比较小的训练样本,它可以让你使用很多的特征,配置很多参数)。

 [增加内容]θ=(XTX)-1XTy的推导过程

     J(θ)=(1/2m)Σ(hθ(xi)-yi)2  (i从1一直加到m)

    其中,hθ(x)=θT0x01x12x2+……+θnxn

    将向量表达形式转为矩阵表达形式,我们有J(θ)=(1/2)(Xθ-y)2,其中X为m行n列的矩阵,θ为n行1列的矩阵。

    下面对J(θ)进行如下变换:

          J(θ)=(1/2)(Xθ-y)T(Xθ-y)

                =(1/2)(XTθT-yT)(Xθ-y)

                =(1/2)(θTXTXθ-θTXTy-yTXθ-yTy)

    接下来对J(θ)求偏导,要用到dAB/dB=AT,dXTAX=2AX。

    所以有:对J(θ)求偏导 = (1/2)(2XTXθ-XTy-(yTX)T-0)

                                        = (1/2)(2XTXθ-XTy-yXT-0)

                                        = XTXθ-XTy

    令XTXθ-XTy=0,则有θ=(XTX)-1XTy。

或者吴恩达的斯坦福机器学习公开课cs229 第二节课后半段的推导过程如下:

 


 

总结:

    如果你发现矩阵XTX是奇异矩阵或者是不可逆的,我们可以做的是:

  1. 看特征里是否有一些多余的特征。类似我们在上面举的x1和x2,是线性相关的或者互为线性函数的。如果确实有一些多余的特征,我们可以删除其中一个,无须两个特征都保留。删除至没有多余的特征为止。
  2. 如果没有多余的特征,就要检查是不是有过多的特征。如果特征数实在太多了,在少一些不影响的情况下,我们可以删除一些特征或者考虑使用正规化方法
posted @ 2020-04-03 15:29  不爱学习的Shirley  阅读(1523)  评论(0编辑  收藏  举报