3

在机器学习回归问题中,为什么要为导函数而不是实际函数计算局部最小值?

示例:http ://en.wikipedia.org/wiki/Gradient_descent

梯度下降算法用于寻找函数$$的局部最小值

f(x)=x^4−3x^3+2, ----(A)

带导数

f'(x)=4x^3−9x^2. ----(B)

在这里,为了使用函数 (A) 的梯度下降算法找到局部最小值,他们使用了 (A) 的导数函数,即函数 (B)。

4

2 回答 2

3

原因是因为函数是凹的(如果你正在做最大化,或者是凸的——这些问题是等价的),你知道有一个最小值(最大值)。这意味着存在一个梯度为零的点。有一些使用函数本身的技术,但是如果您可以计算梯度,则可以更快地收敛,因为您可以考虑梯度为您提供有关离最优值有多远的信息。

除了梯度下降,还有一种称为牛顿法的优化方法,它需要计算二阶导数(多变量优化中的 Hessian)。这收敛得更快,但需要你能够反转 Hessian,如果你有很多参数,这是不可行的。所以有一些方法可以解决这个问题,计算Hessian 的有限内存近似值。这些方法收敛得更快,因为它们使用的是关于梯度曲率的信息:这是一个简单的权衡,您对要优化的函数了解得越多,找到解决方案的速度就越快。

于 2013-02-12T11:11:13.657 回答
2

我不是数学家 - 所以我不能给你确切的答案,但是,你需要了解推导的作用,例如:

http://en.wikipedia.org/wiki/Derivative http://en.wikipedia.org/wiki/Differential_of_a_function

这就是你所需要的(区分做什么): http ://en.wikipedia.org/wiki/File:Graph_of_sliding_derivative_line.gif

某点的导数等于该点函数图形的切线斜率。这正是您在寻找血统时想要的。把它当作非常非正式的观点,维基百科的文章会给你更深入和准确的知识......

于 2013-02-12T10:21:56.800 回答