zoukankan      html  css  js  c++  java
  • Stanford机器学习(Andrew Ng)Lecture2(一)

    Lecture2 梯度下降,最小二乘

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

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

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

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

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

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

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

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

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

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

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

    Part I   最小二乘(gradient descent)

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

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

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

    矩阵迹的几个性质:

  • 相关阅读:
    6个变态的C语言Hello World程序
    Thread和Runnable差别
    HTML5游戏开发技术基础整理
    Kruskal算法
    PHP手机获取6为不反复验证码
    怎样推断手机用户是移动,电信,联通?
    SQL Server 2012 sa 用户登录 18456 错误
    Phonegap(Cordova)3.4 + Android 环境搭建
    LCA在线算法ST算法
    Swift学习笔记八:枚举
  • 原文地址:https://www.cnblogs.com/xmfbit/p/3872184.html
Copyright © 2011-2022 走看看