转:梯度下降法(上升法)的几何解释

梯度下降法是机器学习和神经网络学科中我们最早接触的算法之一。但是对于初学者,我们对于这个算法是如何迭代运行的从而达到目的有些迷惑。在这里给出我对这个算法的几何理解,有不对的地方请批评指正!

梯度下降法定义

(维基百科)梯度下降法,基于这样的观察:如果实值函数  在点  处可微且有定义,那么函数 在  点沿着梯度相反的方向  下降最快。

因而,如果

                       

对于  为一个够小数值时成立,那么 

考虑到这一点,我们可以从函数  的局部极小值的初始估计  出发,并考虑如下序列  使得

                      

因此可得到

 

如果顺利的话序列  收敛到期望的极值。注意每次迭代步长  可以改变。

下面图片示例了这一过程,这里假设  定义在平面上,并且函数图像是一个形。蓝色的曲线是等高线(水平集),即函数  为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。沿着梯度下降方向,将最终到达碗底,即函数  值最小的点。

梯度下降法几何解释:

由于我们的任务是求得经验损失
函数的最小值,所以上图的过程实际上是一个“下坡”的过程。在每一个点上,我们希望往下走一步(假设一步为固定值0.5米),使得下降的高度最大,那么我
们就要选择坡度变化率最大的方向往下走,这个方向就是经验损失函数在这一点梯度的反方向。每走一步,我们都要重新计算函数在当前点的梯度,然后选择梯度的
反方向作为走下去的方向。随着每一步迭代,梯度不断地减小,到最后减小为零。这就是为什么叫“梯度下降法”。

那么,为什么梯度的方向刚好是
我们下坡的反方向呢?为什么我们不是沿着梯度的方向下坡呢?这是因为,只有沿着梯度的反方向,我们才能下坡,否则就是上坡了……举个例子,在y=f(x)
的二维平面上,规定好x轴和y轴的方向后,如果曲线f(x)的值是随着x的增加上升的,那么它在某一点的切线的数值一定是正的。反之,若曲线f(x)的值
是随着x的增加下降的,则它在下降的某一点的切线的数值一定是负数。梯度是方向导数在某一点的最大值,所以其值必然是正数。如果沿着梯度方向走,经验损失
函数的值是增加的……所以,我们要下坡,就必须沿着梯度方向的反方向了。

梯度上升法几何解释:

相对于梯度下降法,还有梯度上升法。(注意减号变成加号了)

其基本原理与下降法一致,区别在于:梯度上升法是求函数的局部最大值。因此,对比梯度下降法,其几何意义和很好理解,那就是:算法的迭代过程是一个“上坡”的过程,每一步选择坡度变化率最大的方向往上走,这个方向就是函数在这一点梯度方向(注意不是反方向了)。最后随着迭代的进行,梯度还是不断减小,最后趋近与零。

有一点我是这样认为的:所谓的梯度“上升”和“下降”,一方面指的是你要计算的结果是函数的极大值还是极小值。计算极小值,就用梯度下降,计算极大值,
就是梯度上升;另一方面,运用上升法的时候参数是不断增加的,下降法是参数是不断减小的。但是,在这个过程中,“梯度”本身都是下降的。

注:这里的梯度减小指的是梯度的数值大小,不包含方向的正负号。

时间: 2024-08-07 04:33:28

转:梯度下降法(上升法)的几何解释的相关文章

对数几率回归法(梯度下降法,随机梯度下降与牛顿法)与线性判别法(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 描述 1.1 例子 1.2 缺点 2 参阅 3 参考文献 描述[编辑] 有关梯度下降法的描述 梯度下降法,基于这样的观察:如果实值函数  在点  处可微且有定义,那么函数 在  点沿着梯度相反的方向  下降最快. 因而,如果 对于  为一个够小数值时成立,那么 . 考虑到这一点,我们可以从函数  的局部极小值的初始估计  出发,并考虑如下序列  使得 因此可得到 如果顺利的话序列 

机器学习:梯度下降法(调试、其它思考)

一.梯度下降法的调试 1)疑问 / 难点 如何确定梯度下降法的准确性? 损失函数的变量 theta 在某一点上对应的梯度是什么? 在更负责的模型中,求解梯度更加不易: 有时候,推导出公式后,并将其运用到程序中,但当程序运行时,有时对梯度的计算可能会出现错误,怎么才能发现这种错误? 2)梯度下降法的调试思路 关于导数的理解,参考:高数:关于导数: 调试思路: 如果机器学习的算法涉及到求解梯度,先使调试方式求出梯度,提前得到此机器学习算法的正确结果: 用数学推导方式(根据算法模型推导出的求解梯度的公

梯度下降法(BGD & SGD & Mini-batch SGD)

梯度下降法(Gradient Descent) 优化思想:用当前位置的负梯度方向作为搜索方向,亦即为当前位置下降最快的方向,也称“最速下降法”.越接近目标值时,步长越小,下降越慢. 如下图所示,梯度下降不一定能找到全局最优解,可能寻找到的是局部最优解.(当损失函数是凸函数时,梯度下降得到的解一定是全局最优解,因为凸函数的极小值即为最小值) 梯度下降法 批量梯度下降法(Batch Gradient Descent,BGD):在更新参数时,BGD根据batch中的所有样本对参数进行更新. θ为参数,

梯度下降法求解线性回归

梯度下降法 梯度下降法(英语:Gradient descent)是一个一阶最优化算法,通常也称为最速下降法. 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索.如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点:这个过程则被称为梯度上升法. 梯度下降的形象解释 现在有一个山谷,你想要到达山谷的最低端,你此时在A点,那么此时就可以利用梯度下降来找到最低点.你每次以你当前的方向为基准.选择一个最陡峭的方向,朝着山下

梯度下降法

梯度下降法在凸优化中应用很广泛.经常使用于求凸函数极值. 梯度是个向量.其形式为 一般是表示函数上升最快的方向.因此.我们仅仅须要每一步往梯度方向走一小步.终于就能够到达极值点,其表现形式为: 初始点为x0. 然后往梯度的反方向移动一小步r到x1. 再次往梯度反方向移动r到x2,... ....终于会越来越接近极值点min的. 迭代时的公式为X(n+1) = X(n) - r * grad(f) 以下举样例说明梯度下降法求极值点的有效性: #!/usr/bin/python # -*- codi

【统计学习】随机梯度下降法求解感知机模型

1. 感知机学习模型 感知机是一个二分类的线性分类问题,求解是使误分类点到超平面距离总和的损失函数最小化问题.采用的是随机梯度下降法,首先任意选取一个超平面w0和b0,然后用梯度下降法不断地极小化目标损失函数,极小化过程中不是一次使所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降.假设误分类点集合M是固定的,那么损失函数L(w,b)的梯度: 随机选取一个误分类点,对w和b进行更新: 其中n是步长,又称为学习率(learning rate),这样通过迭代可以使损失函数L(w,b)不

2.9 logistic回归中的梯度下降法(非常重要,一定要重点理解)

怎么样计算偏导数来实现logistic回归的梯度下降法 它的核心关键点是其中的几个重要公式用来实现logistic回归的梯度下降法 接下来开始学习logistic回归的梯度下降法 logistic回归的公式 现在只考虑单个样本的情况,关于该样本的损失函数定义如上面第三个公式,其中a是logistic回归的输出,y是样本的基本真值标签值, 下面写出该样本的偏导数流程图 假设样本只有两个特征x1和x2 为了计算Z,我们需要输入参数w1和w2和b 因此在logistic回归中,我们要做的就是变换参数w