zoukankan      html  css  js  c++  java
  • 吴恩达机器学习17:正规方程

    1.对某些线性回归问题,正规方程给出了更好的解决方法,来求得参数θ,截止到目前我们一直使用线性回归算法是梯度下降法,为了最小化代价函数J(θ),我们使用梯度下降多次迭代,来收敛得到全局的最小值。与此相反的正规方程提供了一种求θ的解析方法,我们不需要再去运用迭代的方法,而是可以直接一次性的求解θ最优值。只需要一步就可以求得最小值

      (1)例1:假设有个简单的代价函数J(θ),它是实数θ的函数,所以现在假设θ是一个标量或者θ是一个实数值,只是一个数字,不是矢量,假设代价函数J是这个实参数θ的二次函数,所以J(θ)看起来是这样的:  

            

      怎么最小化一个二次函数呢?如果你了解微积分,你知道最小化一个函数的方法就是对它进行求导,并且将导数置为0,所以对J求关于θ的导数, ,然后直接将导数置为0,这样就可以求得使得J(θ)最小的θ值,这是θ为实数的一个比较简单额例子。在机器学习问题中,θ不是一个实数,而是一个n+1维的参数向量,而代价函数J(θ)是向量(即θ0到θm的函数),这个代价函数看起来就是这样的。

      那怎么最小化代价函数J呢?微积分告诉我们,逐级的对参数θ_j求J的偏导数,然后将他们全部置为0,如果这样做并且求出θ0到θn的值,这样就能得到最小化代价函数θ的值 ,如果真的做完微积分, 并且求出θ0到θn,这个偏微分最终可能很复杂。接下来要做的不是遍历所有的偏微分,因为这个太费事了。 我们要做的是使得代价函数J(θ)最小化的θ值。

      (2)example:m=4

        假设我们有4个训练样本m=4,为了实现正规方程的方法,假设这四个训练集就是我们所有的数据,我们需要做的是在数据集中加上一列,对应额外特征变量的x0,它的取值永远是1:

        接下来需要做的是构建一个矩阵X,这个矩阵包含了训练样本所有的特种额变量,具体来说下图中绿色框框就是我们特征变量,我们要把这些数字全部放进矩阵中X去,只是赋值每一列数据到下面的矩阵中去

        我们对y值进行类似的操作,我们将预测值构建一个向量,如下图所示:

      

        并称之为向量y,所以X是一个m x (n+1)维的矩阵,y是一个m维的向量,其中m是训练样本数量,n是特征变量数,其实是n+1列,因为我们在前面加上了这个额外的特张变量x0。最终如果用矩阵X和向量y来计算θ,,这样就能够求得使代价函数最小化的θ值,

        (3)m个样本,n个特征向量:,所以得到的每一个训练样本xi,都可能是n+1维的特征向量:

        

        构建矩阵X的方法,也被称为设计矩阵,如下图所示,每个训练样本给出这样的特征向量,比如这里的n+1维向量,构建设计矩阵的方法,就是构建这样的矩阵,我们要做的是取第一个训练样本,也就是一个向量,取出它的转置,最后长成的样子是这样扁长的样子,来作为矩阵的第一行,然后将第二个样本进行转置加进来,把它作为第二行以此类推,直到最后一个样本,取出其转置,并将其作为X矩阵的最后一行,这就是矩阵X,是一个m*(n+1)维的矩阵。举出一个简单的例子,加入我们只有一个特征变量,除了x0之外只有一个特征变量,

  • 相关阅读:
    移动前端webApp开发点滴积累20140524
    做业务系统与公众产品的区别
    浅谈浏览器兼容性问题-(4)工具及调试
    浅谈浏览器兼容性问题-(3)他山之石整理
    浅谈浏览器兼容性问题-(2)本人解决方案理解与积累
    使用Using的注意事项
    [转]VMPlayer的Briged网络配置
    [转]移动互联网应用技术架构简介-Restful服务
    理解WCF中的Contracts
    [翻译]在ASP.NET Web API中通过OData支持查询和分页
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/10304588.html
Copyright © 2011-2022 走看看