梯度下降法与牛顿法的解释与对比

1 梯度下降法

我们使用梯度下降法是为了求目标函数最小值f(X)对应的X,那么我们怎么求最小值点x呢?注意我们的X不一定是一维的,可以是多维的,是一个向量。我们先把f(x)进行泰勒展开:

这里的α是学习速率,是个标量,代表X变化的幅度;d表示的是单位步长,是一个矢量,有方向,单位长度为1,代表X变化的方向。什么意思呢?就是说我们这里求最值,不是一下子就找到最小值对应的X,而是一点点的迭代,逼近最小值对应的X,每一次迭代新的X即X’就是X+αd(下图蓝色点都可以是X’),(注意这里的αd是矢量,这里是矢量相加,有方向的问题。)如图(以二维为例):

那么我们每一次迭代想要的X’要有什么要求呢?要求就是每次迭代新的X’使达到最小值,即在上面的所有的X’,那个红框的X’使f(X’)最小,我们就是找到那个X’,然后不断的迭代,(如果你觉得每次迭代的X幅度小,就调整那个学习速率α,幅度大,就调小)我们就找到趋近于f(X)最小的X。我们来看每次迭代中,怎么找到新的X’。

我们想找f(X+αd)的最小值,我们认为o(α)(即二次导数及以上的项)为无穷小,忽略不计。(这个决定也是梯度下降法与牛顿法的区别,下面说原因   )那么问题就变成了,我们要最小,

α是一个系数,是两个向量的内积,也就是|g|*|d|*cosθ,如图:

那么也就是梯度向量与d的向量夹角为180°的时候,取最小值:-|g|*|d|。梯度向量与d的向量夹角为180°.即如图:

所以我们的αd可取值为-αg,因此X’=X-αg.

接下来继续重复上述步骤迭代。直到收敛。

2 牛顿法

上面的最速下降法只用到了梯度信息,即目标函数的一阶导数信息,而牛顿法则用到了二阶导数信息。我们先把f(x)进行泰勒展开:

其中的g的每一维度是f(X)分别对X的每一维求一阶偏导数(所以g是一个向量),G是f(X)的每一维度分别对变量X的每一维求二阶导数(因此G是一个矩阵,叫hessian矩阵,如图(右))。这次跟上面那个公式只是形式稍微变了一下,内容都是一样的。这里的Xk表示原来的X点,X表示新的X点(就是上面的X’)。在这里我们令d=X-Xk,即每次迭代在单位向量d上进行X的变化(没有α这个幅度了,d的模也不一定是1,这里不是人为制定的步长多少,而是计算中该是多少就多少)。即我们找到了d,我们就知道了新的X,如图(左):

                      

每一次迭代中,我们依然要通过最小化每一次的f(X)找到每一次想要的红框的X。

这一次,我们通过对f(X)求导=0,那么得到的X就是每一次迭代想要的红框的X。即:

  因为我们已知X=Xk-d,所以,那么新的X就得到了。然后继续迭代,直到收敛。

时间: 2024-10-26 01:00:59

梯度下降法与牛顿法的解释与对比的相关文章

逻辑回归模型梯度下降法跟牛顿法比较

1.综述 机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解.梯度下降的目的是直接求解目标函数极小值,而牛顿法则变相地通过求解目标函数一阶导为零的参数值,进而求得目标函数最小值.在逻辑回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法. 2 梯度下降法 2.1算法描述 1.确定误差范围和下降的步长,确定函数的导函数 2.while(|新值 -旧值| >误差) 3.       旧值=新值 4.       新值=初始值-步长*导函数

常见的几种最优化方法(梯度下降法、牛顿法、拟牛顿法、共轭梯度法等)

我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题"在一定成本下,如何使利润最大化"等.最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称.随着学习的深入,博主越来越发现最优化方法的重要性,学习和工作中遇到的大多问题都可以建模成一种最优化模型进行求解,比如我们现在学习的机器学习算法,大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优

Stanford机器学习课程笔记——单变量线性回归和梯度下降法

Stanford机器学习课程笔记--单变量线性回归和梯度下降法 1. 问题引入 单变量线性回归就是我们通常说的线性模型,而且其中只有一个自变量x,一个因变量y的那种最简单直接的模型.模型的数学表达式为y=ax+b那种,形式上比较简单.Stanford的机器学习课程引入这个问题也想让我们亲近一下machine learning这个领域吧~吴恩达大神通过一个房屋交易的问题背景,带领我们理解Linear regression with one variable.如下: 不要看这个问题简答,大神就是大神

牛顿法、拟牛顿法以及与梯度下降法的对比

牛顿法.拟牛顿法相关资料: http://www.cnblogs.com/richqian/p/4535550.html https://www.codelast.com/%E5%8E%9F%E5%88%9B%E6%8B%9F%E7%89%9B%E9%A1%BF%E6%B3%95quasi-newton%EF%BC%8Cdfp%E7%AE%97%E6%B3%95davidon-fletcher-powell%EF%BC%8C%E5%8F%8Abfgs%E7%AE%97%E6%B3%95broyd

『科学计算_理论』优化算法:梯度下降法&牛顿法

梯度下降法 梯度下降法用来求解目标函数的极值.这个极值是给定模型给定数据之后在参数空间中搜索找到的.迭代过程为: 可以看出,梯度下降法更新参数的方式为目标函数在当前参数取值下的梯度值,前面再加上一个步长控制参数alpha.梯度下降法通常用一个三维图来展示,迭代过程就好像在不断地下坡,最终到达坡底.为了更形象地理解,也为了和牛顿法比较,这里我用一个二维图来表示: 懒得画图了直接用这个展示一下.在二维图中,梯度就相当于凸函数切线的斜率,横坐标就是每次迭代的参数,纵坐标是目标函数的取值.每次迭代的过程

对数几率回归法(梯度下降法,随机梯度下降与牛顿法)与线性判别法(LDA)

本文主要使用了对数几率回归法与线性判别法(LDA)对数据集(西瓜3.0)进行分类.其中在对数几率回归法中,求解最优权重W时,分别使用梯度下降法,随机梯度下降与牛顿法. 代码如下: 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Date : 2017-05-09 15:03:50 4 # @Author : whb ([email protected]) 5 # @Link : ${link} 6 # @Version : $Id$

牛顿法与梯度下降法数学公式推导过程

迭代更新数学公式推导过程 1.牛顿法 首先对于有n个变量的函数的一阶导数为:   其次对于其二阶导数为:   之后关于目标函数的包含二阶导数的泰勒展开式为:   这时将看成的函数,则根据函数的最小值性质,当偏导数等于0时出取得,从而得到,所以,根据等式的特点得到,只有两者都取0时才能使等式等于0,所以得: (最小值)    故牛顿法的迭代公式为: 2.梯度下降法 在开始推导之前,来介绍一下一个概念:梯度(当前函数位置的导数),同时它也表示某一函数在该点处的方向导数沿着该方向取得较大值.    梯

机器学习中梯度下降法和牛顿法的比较

在机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解.在逻辑斯蒂回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法.由于两种方法有些相似,我特地拿来简单地对比一下.下面的内容需要读者之前熟悉两种算法. 梯度下降法 梯度下降法用来求解目标函数的极值.这个极值是给定模型给定数据之后在参数空间中搜索找到的.迭代过程为: 可以看出,梯度下降法更新参数的方式为目标函数在当前参数取值下的梯度值,前面再加上一个步长控制参数alpha.梯度下降法通

解梯度下降法的三种形式BGD、SGD以及MBGD

原帖地址:https://zhuanlan.zhihu.com/p/25765735           在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点. 下面我们以线性回归算法来对三种梯度下降法进行比较. 一般线性回归函数的假设函数为: $$h_\theta=\sum_{j=0}^n\theta_jx_j$$   对应的损失函数为: $$J_{train}(\theta)=\frac1{2m}\s