• Stanford机器学习(Andrew Ng)Lecture2(一)


    Lecture2 梯度下降,最小二乘

    Part I   梯度下降方法(gradient descent)

    我们首先介绍一种求解多元函数极值的方法。梯度下降法是求解函数极小值的数值解法之一,它的优点是原理易懂,计算简单,但是易于陷入函数的局部极小值点(local optimum),受初始值影响较大。

    梯度下降法的原理很简单。想象自己站在山顶,如何下山才能尽快地达到山脚呢?我们可以环视四周,看看沿着各个方向的下降陡峭程度。我们始终沿着下降最陡峭的方向走,这样在不出意外的情况下,我们就能到达山脚,而且速度也比较快。但是显而易见的一个问题便是:我们这样走的话,很容易跑偏。很有可能我们最后来到的不是山脚,而是被困在了一个局部的盆地里,始终不能出去。

    这个日常生活中的常识便是梯度下降法的雏形,用数学公式表示的梯度下降法如下:

    这样,通过一步一步迭代,我们就能使目标函数值收敛到极小值。在这里,符号表示的含义为第i个参数。上式即为对第i个参数的更新。表示前进的步长,在机器学习中可以被理解为学习速率。要注意,学习速率过大,可能使得结果不收敛;学习速率过慢,可能使得结果更易陷入局部极小值点,并且收敛速度不够快。在实际应用时,该参数需要结合问题来具体分析。

    我们常常要求残差平方的极小值,也就是使得下面的式子取得极小值:

    我们首先考虑的线性函数,举个例子:。或者我们把它写成向量形式:

    对于m(m>=1)个训练样本,我们所考察的函数变为残差的平方和。也就是定义如下的代价函数(Cost Function):

    这个函数便是一种最小二乘的思想。这个时候,有:

    所以对于参数的更新可以按照如下的式子进行:

    这样,就能够取得代价函数的最小值,这时候的参数便是模型的参数。要注意的一点是,梯度下降法是一种求解函数极值的方法,这种方法的关键点就是计算当前点的梯度方向,朝这个方向走向下一个点,不停迭代,直到收敛。

    Part I   最小二乘(gradient descent)

    在前面的梯度下降法中,已经介绍了最小二乘法的思想,总之就是使得残差的平方和最小,认为是损失最小,所以形象地把这个函数叫做代价函数。在上一节中,我们给出了最小二乘的一种数值解法,即梯度下降法。在这一节中,我们将使用矩阵微分的几个定理,推导出最小二乘的公式解。首先我们有必要引进一些符号:

    上面的符号便表示对一个向量的每个分量求导,那么我们在上一节对参数的迭代更新公式可以写成下面的形式:

    接下来我们引进一个叫做“迹”(trace)的概念:

    矩阵迹的几个性质:

  • 相关阅读:
    使用 Hudson 进行持续集成
    hudson中的ftp插件
    Tomcat i18n 对 URL 进行 UTF8 解码
    Product deploy using NAnt and NSIS [技术点滴]
    切身体会到对微软的无语——关于VS2008的配置项
    How to create your own home SVN repository with Xampp/Apache
    CVS+VS2003+SetupFactory建设每日构建(Daily build)
    期待 JDK、Tomcat和MySQL的绿色安装方法
    FolderBrowserDialog 使用时路径问题
    无敌删除命令
  • 原文地址:https://www.cnblogs.com/xmfbit/p/3872184.html
Copyright © 2020-2023  润新知