梯度法的步骤,目标函数凸函数 梯度下降法的解

2025-05-08 13:07:59 函数指令 嘉兴
  1. 梯度法的步骤

梯度法的步骤

1、选定初始控制 u 0 ( t ) u^0(t)u0(t), 凭经验给定,选取时应根据u ( t ) u(t)u(t)的物理意义选择合适的u 0 ( t ) u^0(t)u0(t),允许误差ϵ > 0 \epsilon > 0ϵ>0;

2、将u 0 ( t ) u^0(t)u0(t)待人状态方程中,以x ( t 0 ) x(t_0)x(t0​)为初值,得到与u 0 ( t ) u^0(t)u0(t)对应的状态轨迹线x 0 ( t ) x_0(t)x0​(t);

梯度法的步骤,目标函数凸函数 梯度下降法的解

3、计算性能指标J [ u 0 ( t ) ] J[u_0(t)]J[u0​(t)];

4、将x 0 ( t ) x^0(t)x0(t)待人正则方程中,得到对应的l a m b d a 0 ( t ) lambda ^0 (t)lambda0(t);

5、计算性能指标在u 0 u^0u0处的梯度 ▽ J [ u 0 ( t ) ] = g 0 = ∂ H ∂ u \bigtriangledown J[u^0(t)] = g^0 = \frac{\partial H}{\partial u}▽J[u0(t)]=g0=∂u∂H​;

6、确定搜索步长,由一维搜索法确定。J [ u 0 − α g 0 ] = min ⁡ α > 0 J [ u 0 − α g 0 ] J[u^0 - \alpha g^0] = \min \limits_{\alpha > 0} J[u^0 - \alpha g^0]J[u0−αg0]=α>0min​J[u0−αg0] ;

梯度法的步骤,目标函数凸函数 梯度下降法的解

7、修正控制向量:u 1 ( t ) = u 0 ( t ) − α g 0 u ^ 1 (t) = u ^0(t) - \alpha g^0u1(t)=u0(t)−αg0

8、以u 1 u ^ 1u1代替u 0 u^0u0,重复步骤2、3、4、5、6、7,直到满足终止条件;

梯度法思想梯度法思想的三要素:出发点、下降方向、下降步长。

机器学习中常用的权重更新表达式为:,这里的λ就是学习率,本文从这个式子出发来把机器学习中的各种“梯度”下降法阐释清楚。

梯度法的步骤,目标函数凸函数 梯度下降法的解

机器学习目标函数,一般都是凸函数,什么叫凸函数?限于篇幅,我们不做很深的展开,在这儿我们做一个形象的比喻,凸函数求解问题,可以把目标损失函数想象成一口锅,来找到这个锅的锅底。非常直观的想法就是,我们沿着初始某个点的函数的梯度方向往下走(即梯度下降)。在这儿,我们再作个形象的类比,如果把这个走法类比为力,那么完整的三要素就是步长(走多少)、方向、出发点,这样形象的比喻,让我们对梯度问题的解决豁然开朗,出发点很重要,是初始化时重点要考虑的,而方向、步长就是关键。事实上不同梯度的不同就在于这两点的不同!

梯度方向是,步长设为常数Δ,这时就会发现,如果用在梯度较大的时候,离最优解比较远,W的更新比较快;然而到了梯度较小的时候,也就是较靠近最优解的时候,W的更新竟然也保持着跟原来一样的速率,这样会导致W很容易更新过度反而远离了最优解,进而出现在最优解附近来回震荡。所以,既然在远离最优解的时候梯度大,在靠近最优解的时候梯度小,我们让步长随着这个律动,于是我我们就用λ|W|来代替Δ,最后得到了我们熟悉的式子:所以说这时的λ是随着坡度的陡缓而变化的,别看它是个常数。

二、全量梯度下降法(Batch gradient descent)全量梯度下降法每次学习都使用整个训练集,因此每次更新都会朝着正确的方向进行,最后能够保证收敛于极值点,凸函数收敛于全局极值点,非凸函数可能会收敛于局部极值点,缺陷就是学习时间太长,消耗大量内存。第二、随机梯度下降法(Stochastic Gradient Descent)SGD一轮迭代只用一条随机选取的数据,尽管SGD的迭代次数比BGD大很多,但一次学习时间非常快。SGD的缺点在于每次更新可能并不会按照正确的方向进行,参数更新具有高方差,从而导致损失函数剧烈波动。

不过,如果目标函数有盆地区域,SGD会使优化的方向从当前的局部极小值点跳到另一个更好的局部极小值点,这样对于非凸函数,可能最终收敛于一个较好的局部极值点,甚至全局极值点。缺点是,出现损失函数波动,并且无法判断是否收敛。

到此,以上就是小编对于目标函数凸函数 梯度下降法的解的问题就介绍到这了,希望介绍的1点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

随机图文
    此处不必修改,程序自动调用!
  • 随机文章

  • 热门文章

  • 热评文章

sql语句自动生成(sql语句自动生成器)
2025-05-05  阅读(541)
  • B函数求解(函数b的求法)
    2025-05-05  阅读(456)
  • 周期函数,周函数的使用方法
    2025-05-05  阅读(578)
  • 用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。

    语法

    REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )

    参数

    SqlServer中REPLACE函数的使用,sql替换字符串函数

    ''string_replace1''

    待搜索的字符串表达式。string_replace1 可以是字符数据或二进制数据。

    ''string_replace2''

    待查找的字符串表达式。string_replace2 可以是字符数据或二进制数据。

    SqlServer中REPLACE函数的使用,sql替换字符串函数

    在SQL Server中,REPLACE函数用于替换字符串中出现的指定子字符串。它接受三个参数:原字符串,要被替换的子字符串和替换后的子字符串。

    该函数会查找原字符串中的所有匹配项,并将其替换为指定的字符串。如果原字符串中不存在要替换的子字符串,则不会发生任何更改。使用REPLACE函数可以轻松地进行字符串替换操作,例如将某些特定字符替换为其他字符或将一部分文本替换为其他文本。这在数据清洗和字符串处理中非常有用。

    sourceinsight怎么替换字符串

    12。replace('string" class="zf_thumb" width="48" height="48" title="SqlServer中REPLACE函数的使用,sql替换字符串函数" />

  • SqlServer中REPLACE函数的使用,sql替换字符串函数
    2025-05-06  阅读(527)
  • 一个已知的函数有几个原函数,任意原函数之间的差值是
    2025-05-05  阅读(449)
  • sql server新建表(sql如何新建数据库)
    2025-05-08  阅读(457)
  • 数行函数(数行数的函数)
    2025-05-06  阅读(458)
  • mysql数据库,指定到某一时间,它就自动执行相应的操作?sql语句该怎么写,定时执行sql语句设置
    2025-05-08  阅读(559)
  • 最新留言