数学基础之微积分

数学极限与算法优化:从魏尔斯得拉斯到梯度下降与牛顿法

极限

直观定义中的“无限趋近”是个含糊不清的概念,为了更精准地用数学语言表达这个概念,很多数学家都做了努力,包括法国数学家朗贝尔(D’Alembert),法国数学家柯西(Cauchy),但最终系统的引入 ϵδ 语言的是德国数学家魏尔斯得拉斯(Weierstrass)。

f(x) 定义在 x0 的某个去心领域 N(x0) ,若存在常数 A ,对于任意给定的 ϵ>0 ,存在 δ>0 ,使得对于任意的 xN(x0,δ) ,即当 0<xx0<δ 时,恒有 f(x)A<ϵ ,则称 A f(x) xx0 时的极限,记作 limxx0f(x)=A


常数 e

limxx0(1+x)1x=e

有很多人写过关于这个常数的博客,都把这个常数跟银行利息挂钩了,其中比较有意思的一篇在 这里这里


梯度下降法(Gradient Descent)

梯度下降法是一种迭代算法。选取适当的初值 x0 ,不断迭代,更新 x 的值,直到收敛。由于梯度方向是函数值增长最快的方向,负梯度方向是函数值下降最快的方向,所以梯度下降法很自然地选择了负梯度方向为搜索方向。所以迭代公式变为:

xk+1=xkλkf(xk)

其中, f(xk) f(x) xk 的梯度,记为 gk
梯度下降法
1. 给定初值 x0 和精度阈值 ϵ ,并令 k:=0
2. 计算 f(xk)
3. 计算 gk ,如果 gk<ϵ ,停止迭代,令 x=xk ,否则求步长 λk
4. 计算新的迭代点 xk+1=xkλkgk ,计算 f(xk+1) ,如果 f(xk+1)f(xk)<ϵ ,或者 xk+1xk<ϵ ,停止迭代,令 x=xk
5. 否则,令 k:=k+1 ,转步骤3


牛顿法(Newton’s method)

f(x) xk 附近做二阶泰勒展开:

f(x)=f(xk)+gk(xxk)+12(xxk)TH(xk)(xxk)

其中 gk f(x) xk 处的梯度值, H(xk) 是海森矩阵在 xk 处的值。

对上式两边求导,得到

f(x)=gk+Hk(xxk)

由多元函数极值的必要条件可知,如果函数在 x=xk+1 处取得极值,必有
f(xk+1)=0

x=xk+1 代入整理
gk+Hk(xxk)=0

所以
xk+1=xkH1kgk

其中, H1kgk 称为 牛顿方向
牛顿法
1. 给定初值 x0 和精度阈值 ϵ ,并令 k:=0
2. 计算 gk,Hk
3. 如果 gk<ϵ ,停止迭代。否则,确定牛顿方向 dk=H1kgk ,计算步长 λk
4. 计算新的迭代点 xk+1=xk+λkdk
5. 否则,令 k:=k+1 ,转步骤2

A comparison of gradient descent (green) and Newton's method (red) for minimizing a function (with small step sizes). Newton's method uses curvature information to take a more direct route.

Wikipedia上的一张图(绿色的线代表梯度下降法,红色的线代表牛顿法),很形象地说明了梯度下降法和牛顿法的区别,梯度下降法仅仅考虑了当前函数值在迭代点附近的变化,而牛顿法还考虑了函数值变化的趋势(会往等高线越来越密的方向靠),也就是二阶导数,梯度下降法相当于用一个平面不断逼近,而牛顿法师用一个曲面不断逼近,所以牛顿法收敛得更快。


参考

数学基础之微积分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值