在机器学习回归问题中,为什么为衍生函数而不是实际函数计算局部最小值?
示例: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))。
答案 0 :(得分:3)
原因是因为函数是凹的(或者如果你正在进行最大化则是凸的 - 这些问题是等价的),你知道有一个最小值(最大值)。这意味着有一个点,其中梯度等于零。有一些技术可以使用函数本身,但是如果你可以计算渐变,你可以更快地收敛,因为你可以想到渐变为你提供有关远你是如何从最佳状态的信息。
除了Gradient Descent之外,还有一种称为Newton's method的优化方法,它需要计算二阶导数(多变量优化中的Hessian)。这种收敛速度甚至更快,但要求你能够反转Hessian,如果你有很多参数,这是不可行的。所以有一些方法来解决这个问题,计算limited memory approximation of the Hessian。这些方法的收敛速度更快,因为它们使用的是有关渐变曲率的信息:这是一个简单的权衡,您对要优化的函数了解得越多,找到解决方案的速度就越快。
答案 1 :(得分: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
一点处的导数等于该点处函数图形的切线斜率。这正是您在下降时所需要的。以非正式的观点来看,维基百科文章将为您提供更深入,更准确的知识......