首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >梯度下降法

梯度下降法
EN

Data Science用户
提问于 2021-06-11 13:39:11
回答 1查看 43关注 0票数 1

如果我们假设这是梯度下降法的公式:

x_{n+1}=x_n-\lambda\cdot{{df(x)}\over{dx}},\ n=0,1,2,3,...

由于我们没有精确的值,而不是导数,这是否意味着我们减去导数的值,并且只用于控制x的下一个位置的方向?为什么我们要减去导数,而不减去依赖于x的任何其他值?

EN

回答 1

Data Science用户

回答已采纳

发布于 2021-06-11 15:08:06

假设我想找到函数f(x)x_m附近的最小值。然后我有三个选择:

  1. x_m在一定精度内最小(程序结束)
  2. 最小值在x_m的右边(并适当地更新我最初的猜测)
  3. 最小值在x_m的左边(并适当地更新我最初的猜测)

所以:

  1. 如果x_m接近最小(在期望的精度范围内),那么此时的导数将是(大约)零(基本分析)。
  2. 如果最小值在x_m的右边(例如x_{m'}),那么f'(x_m)将具有负斜率(导数点指向最小方向的负斜率)。
  3. 如果最小值位于x_m的左侧(例如x_{m'}),那么f'(x_m)将具有正斜率(导数点指向最小方向的负值)。

到目前为止,衍生品似乎是一个很好的选择,可以用来更新我最初的猜测。如果也考虑到震级,我们有:

  1. 如果x_m接近最小值(在期望的精度范围内),那么此时的导数将(大约)为零。
  2. 如果最小值位于x_m的右侧或左侧(比如x_{m'}),那么f'(x_m)的非零震级将随着x_m离最小值最远而变得更大。

因此,导数震级也可以使用。

到目前为止,我们已经观察和推断:x_{m'}-x_m = \Delta x \sim -f'(x_m)或:x_{m'} = x_m - \lambda f'(x_m)是一个很好的方案来更新我的猜测。

学习速率( \lambda )是满足以下两项条件的必要参数:

  1. 如果xf'(x)具有不同的物理维数,则适当地缩放导数以匹配x的维数。
  2. 它允许调整学习速率,以避免超过期望的最小值或太慢,在导数有一些临界点。

参考文献:

  1. 梯度下降
  2. 为什么坡度的迹象不足以找到最陡峭的坡度
票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/96515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档