理解梯度下降法(Gradient Descent)

最近看了CMU的凸优化,里面对梯度下降的原理讲的比较清楚,这里将自己对梯度下降的理解做一个总结,如果有不对的地方希望大家指正。

1.梯度下降法

考虑无约束的最小化问题:

minxf(x)(1)

优化目标 f(x) 是可微的凸函数。

使用梯度下降法求解上述问题的最优解 x ,迭代过程为:

xk=xk1αf(xk1)(2)

为什么使用上述迭代可以从下面的角度考虑。

2.解释1

f(x) xk1 处进行一阶泰勒展开(第二步实际应该为 )

f(x)=f(xk1+Δx)=f(xk1)+f(xk1)TΔx(3)

  (3)式约等于号中的第二项是关于两个向量的内积,为了使 f(xk)<f(xk1) ,显然 Δx 应该取为负梯度方向 αf(xk1) ,此时两个向量夹角为180度,目标函数下降最快,其中 α 用来控制目标函数下降的步长,此时(3)式变为
f(x)=f(xk1)αf(xk1)Tf(xk1)(4)

  可以发现,减号右侧是大于0的, f(x) 较上一次更新有所下降,所以沿用负梯度方向不断更新变量,也就是公式(2)可以不断使 f(x) 减小,因为 f(x) 是凸函数,因此变量会更新到 f(x) 全局最优的位置。

3.解释2

考虑 f(x) 的二阶泰勒展开

f(x)f(xk1)+f(xk1)T(xxk1)+12(xxk1)T2f(xk1)(xxk1)(5)

不过不同的是我们使用 1tI 替换Hessian矩阵 2f(x)
f(x)f(xk1)+f(xk1)T(xxk1)+12t||xxk1||22(6)

我们使用(6)式最小化 f(x) ,令(6)式梯度等于0得
xk=xk1tf(xk1)(7)

对比下(7)式和(2)式,变量更新公式是一样的。

  在我们的印象里梯度下降是一阶优化方法,为什么(6)式看起来像使用了二阶信息?实际上这里还是使用的是一阶信息,我们将包含二阶信息的Hessian矩阵替换为了 1tI 。可以这样理解,(6)式包含了两部分,第一部分是原目标函数的一阶近似,如果我们直接优化一阶近似的目标函数(实际是个线性函数,一维情况下就是用曲线的切线近似),那么变量将更新到无穷远。第二部分可以看做是一个约束项,表示我们希望优化后变量的位置与变量之前的位置尽可能接近, t <script type="math/tex" id="MathJax-Element-26">t</script>的大小决定了变量更新前后的接近程度,也就是我们上面提到的梯度下降的步长。

用下面的图直观地感受一下。
这里写图片描述

参考文献

  1. 《统计学习方法》
  2. http://www.stat.cmu.edu/~ryantibs/convexopt/lectures/grad-descent.pdf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值