@anboqing
2015-09-16T11:42:58.000000Z
字数 1040
阅读 7301
为什么负梯度方向是使函数值下降最快的方向
未分类
名字解释
梯度下降法又叫最速下降法,它只使用目标函数的一阶导数信息,从“梯度法”这个名字也可见一斑。并且,它的本意就是取目标函数值“最快下降”的方向作为搜索方向。于是我们就想知道这个问题的答案:沿着什么方向,目标函数 f(x) 的值下降最快呢?
为什么负梯度方向下降最快
先说结论:沿着负梯度 d=−gk,函数值下降最快
下面就来推导一下:
由于目标函数 f(x) 具有一阶连续偏导数,若第k次迭代值为 xk,则可将目标函数 f(xk) 在点 xk 处 一阶泰勒展开(由于我们讨论的是: n维空间中的一个点移动到另一个点后,目标函数值的改变情况),因此我们展开的是改变后的函数值(f(xk+ad)):
f(xk+ad)=f(xk)+gTkd+o(α)(178)
d:单位方向(一个向量),即 |d| = 1;
α: 步长(一个实数)。
gTk=∇f(xk) : 目标函数在 xk 这一点的梯度(一个向量).
显然,这个数学表达式用泰勒公式展开得到的,样子有点难看,所以对比一下自变量为一维的情况下的泰勒展开式:
f(x+h)=f(x)+f′(x)h+o(h)(179)
就知道多维情况下的泰勒展开式是怎么回事了。
在[1] 式中,高阶无穷小可以忽略,因此,要使[1]式取到最小值,应使gTkd取到最小——这是两个向量的点积(数量积),何种情况下其值最小呢?来看两向量a⃗,b⃗的夹角θ的余弦是如何定义的:
cosθ=a⋅b|a||b|
假设向量 d 与 负梯度 −gk 夹角为 θ , 我们便可以求出点积 gTk⋅d 的值为:
gTk⋅d=−|gk||d|cosθ
可见,θ为0时,上式取得最小值。也就是说,direction取negative gradient时,目标函数值下降得最快,这就是称负梯度方向为“最速下降”方向的由来了。