梯度下降

slamforwindows slamforwindows     2022-11-11     125

关键词:

       梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。

简介

      梯度:对于可微的数量场 技术分享图片 

,以技术分享图片 为分量的向量场称为f的梯度或斜量。 [1] 梯度下降法(gradient descent)是一个最优化算法,常用于机器学习和人工智能当中用来递归性地逼近最小偏差模型。

 

求解过程

 

顾名思义,梯度下降法的计算过程就是沿梯度下降的方向求解极小值(也可以沿梯度上升方向求解极大值)。其迭代公式为
 技术分享图片 
,其中 技术分享图片 代表梯度负方向,
 技术分享图片 
表示梯度方向上的搜索步长。梯度方向我们可以通过对函数求导得到,步长的确定比较麻烦,太大了的话可能会发散,太小收敛速度又太慢。一般确定步长的方法是由线性搜索算法来确定,即把下一个点的坐标看做是ak+1的函数,然后求满足f(ak+1)的最小值的 即可。
因为一般情况下,梯度向量为0的话说明是到了一个极值点,此时梯度的幅值也为0.而采用梯度下降算法进行最优化求解时,算法迭代的终止条件是梯度向量的幅值接近0即可,可以设置个非常小的常数阈值。

例如

举一个非常简单的例子,如求函数

 技术分享图片 

的最小值。利用梯度下降的方法解题步骤如下:

1、求梯度,
 技术分享图片
 
2、向梯度相反的方向移动技术分享图片 
,如下技术分享图片 ,其中,
技术分享图片 
为步长。如果步长足够小,则可以保证每一次迭代都在减小,但可能导致收敛太慢,如果步长太大,则不能保证每一次迭代都减少,也不能保证收敛。
 
3、循环迭代步骤2,直到技术分享图片 的值变化到使得
 技术分享图片 
在两次迭代之间的差值足够小,比如0.00000001,也就是说,直到两次迭代计算出来的
 技术分享图片 
基本没有变化,则说明此时
 技术分享图片 
已经达到局部最小值了。
 
4、此时,输出 技术分享图片 ,这个
 技术分享图片 
就是使得函数
 技术分享图片 
最小时的
 技术分享图片 
的取值 。
MATLAB如下。

%% 最速下降法图示
% 设置步长为0.1,f_change为改变前后的y值变化,仅设置了一个退出条件。
syms x;f=x^2;
step=0.1;x=2;k=0; %设置步长,初始值,迭代记录数
f_change=x^2; %初始化差值
f_current=x^2; %计算当前函数值
ezplot(@(x,f)f-x.^2) %画出函数图像
axis([-2,2,-0.2,3]) %固定坐标轴
hold on
while f_change>0.000000001 %设置条件,两次计算的值之差小于某个数,跳出循环
x=x-step*2*x; %-2*x为梯度反方向,step为步长,!最速下降法!
f_change = f_current - x^2 %计算两次函数值之差
f_current = x^2; %重新计算当前的函数值
plot(x,f_current,‘ro‘,‘markersize‘,7) %标记当前的位置
drawnow;pause(0.2);
k=k+1;
end
hold off
fprintf(‘在迭代%d次后找到函数最小值为%e,对应的x值为%e\\n‘,k,x^2,x)

技术分享图片

 

 

 

缺陷

  • 靠近极小值时收敛速度减慢。
  • 直线搜索时可能会产生一些问题。
  • 可能会“之字形”地下降。



















week10——随机梯度下降,批量梯度下降小批量梯度下降

批量梯度下降对于一个数据量非常大的模型,采用批量梯度下降,意味着每一次迭代计算都需要将所有样本数据导入并计算,这是计算量、计算时间消耗非常严重的一步。随机梯度下降随机梯度下降法每次迭代更新θ\... 查看详情

梯度下降法

...自:http://www.cnblogs.com/Sinte-Beuve/p/6164689.html本文主要讲了梯度下降法的两种迭代思路,随机梯度下降(Stochasticgradientdescent)和批量梯度下降(Batchgradientdescent)。以及他们在python中的实现。梯度下降法梯度下降是一个最优化算法... 查看详情

梯度下降法随机梯度下降法小批量梯度下降法

本文以二维线性拟合为例,介绍批量梯度下降法、随机梯度下降法、小批量梯度下降法三种方法,求解拟合的线性模型参数。 需要拟合的数据集是$(X_1,y_1),(X_2,y_2)...,(X_n,y_n)$,其中$X^i=(x_1^i,x_2^i)$,表示2个特征,$y^j$是对应的... 查看详情

梯度下降

梯度下降机器学习优化什么是梯度下降法梯度下降(GradientDescent)是最基础的优化算法。在微积分中,梯度表示函数增长速度最快的方向。在机器学习问题中,我们的目标常常是求极大值或者极小值。梯度下降法就是沿着梯度... 查看详情

梯度下降

梯度下降梯度下降(GD)是最小化风险函数、损失函数的一种常用方法,随机梯度下降和批量梯度下降是两种迭代求解思路。随机梯度下降Stochasticgradientdescent)随机梯度下降是通过每个样本来迭代更新一次,如果样本量很大的情... 查看详情

梯度下降算法vs正规方程算法

梯度下降算法的大家族:①批量梯度下降:有N个样本,求梯度的时候就用了N个样本的梯度数据  优点:准确  缺点:速度慢②随机梯度下降:和批量梯度下降算法原理相似,区别在于求梯度时没有用所有的N歌样本数据,而... 查看详情

最速梯度下降

参考技术A梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,... 查看详情

梯度下降法和随机梯度下降法的区别

梯度下降和随机梯度下降之间的关键区别:  1、标准梯度下降是在权值更新前对所有样例汇总误差,而随机梯度下降的权值是通过考查某个训练样例来更新的。  2、在标准梯度下降中,权值更新的每一步对多个样例求和,... 查看详情

机器学习梯度下降法(超详解)

线性回归-梯度下降法前言1.全梯度下降算法(FG)2.随机梯度下降算法(SG)3.小批量梯度下降算法(mini-batch)4.随机平均梯度下降算法(SAG)5.梯度下降法算法比较和进一步优化5.1算法比较5.2梯度下... 查看详情

梯度下降法介绍-黑马程序员机器学习讲义

学习目标知道全梯度下降算法的原理知道随机梯度下降算法的原理知道随机平均梯度下降算法的原理知道小批量梯度下降算法的原理上一节中给大家介绍了最基本的梯度下降法实现流程,常见的梯度下降算法有:全梯度... 查看详情

随机梯度下降算法

...:预测函数为:代价函数:重复:  当数据量过大时,梯度下降的算法会变得很慢,因为要对所有的数据进行求和。因为每次重复梯度下降都是所有数据全部求和,所以梯度下降算法又称之为批量梯度下降(BatchGradientDescent)... 查看详情

梯度下降算法(gradientdescent)

简述梯度下降法又被称为最速下降法(Steepestdescendmethod),其理论基础是梯度的概念。梯度与方向导数的关系为:梯度的方向与取得最大方向导数值的方向一致,而梯度的模就是函数在该点的方向导数的最大值。现在假设我们要求... 查看详情

梯度下降和梯度上升有啥区别?

】梯度下降和梯度上升有啥区别?【英文标题】:Whatisthedifferencebetweengradientdescentandgradientascent?梯度下降和梯度上升有什么区别?【发布时间】:2014-04-3021:42:09【问题描述】:我无法找到有关梯度上升的任何信息。任何关于梯度... 查看详情

常见优化器

SGD    梯度下降法根据每次更新参数时使用的样本数量分为StochasticGradientDescent(随机梯度下降法,SGD)、mini-batchGradirntDescent(小批量梯度下降法,mBGD)和BatchGradientDescent(批量梯度下降法,BGD)三种。通常所说的SGD指的是... 查看详情

nn优化方法对比:梯度下降随机梯度下降和批量梯度下降

...经常出现的方法,主要是应用迭代的思想来逼近。在梯度下降算法中,都是围绕以下这个式子展开:其中在上面的式子中hθ(x)代表,输入为x的时候的其当时θ参数下的输出值,与y相减则是一个相对误差,之后再平方乘以1... 查看详情

梯度下降是什么

梯度是一个偏微分向量,有大小、有方向   【梯度下降-探寻最优解】深度学习梯度下降法可视化讲解高中生都说懂!激活函数与Loss的梯度(深度学习/感知机/链式法则/随机梯度下降)_哔哩哔哩_bilibili  查看详情

梯度下降(gradientdescent)

在求解机器学习算法的优化问题时,梯度下降是经常采用的方法之一。梯度下降不一定能够找到全局最优解,有可能是一个局部最优解。但如果损失函数是凸函数,梯度下降法得到的一定是全局最优解。梯度下降的相关概念:1... 查看详情

为啥随机梯度下降方法能够收敛

参考技术A梯度下降法是一个一阶最优化算法,通常也称为最速下降法。要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。梯度下降法的... 查看详情