梯度下降法和牛顿法优化原理

本文解析了机器学习中两种常用的优化方法——梯度下降法与牛顿法。通过对比这两种方法的原理及实现过程,阐述了它们在损失函数优化中的应用。

我们假设任何规律都是一个函数,机器学习要做的就是设计模型来拟合这个函数,如何使自己的模型更能贴近这个函数就是我今天要讲的优化问题。
首先假设我们的模型为函数f(x),给定一个输入x,得到预测结果f(x),而真实的结果为y,我们优化的目的就是使f(x)和y贴近。一般我们会定义一个损失函数,来衡量这个差距。此时我们优化的目标就是使损失函数最小。当然优化损失函数的方法有很多,我今天就列举两个使用迭代的优化方法。
本文参考文章

梯度下降法

先列出泰勒公式的一阶展开式(一维变量)

f(x)=f(x0)+f(x0)(xx0)

或者
f(x+Δx)=f(x)+f(x)Δx

首先我们每次迭代,修改weight的目的是使损失一次比一次低,用数学式表达就是
min(f(W+ΔW)

(W是权重weight向量(N*1的向量)
利用上述的泰勒公式一阶展开(向量形式)
f(W+ΔW)=f(W)+f(W)TΔW

若要使 f(W+ΔW) 最小,则要使 f(W)TΔW 最小
由柯西不等式得
|f(W)TΔW|||f(W||||ΔW||

当且仅当 f(W)=ΔW
所以当 f(W)=ΔW 时, f(W)TΔW 最小
也即下一次迭代 W=W+ΔW=Wf(W)

牛顿法

先列出泰勒公式的二阶展开式

f(x)=f(x0)+f(x0)(xx0)+12f′′(x0)(xx0)2

或者
f(x+Δx)=f(x)+f(x)Δx+12f′′(x)Δx2

首先我们每次迭代,修改weight的目的是使损失一次比一次低,用数学式表达就是
min(f(W+ΔW)

(W是权重weight向量(N*1的向量)
利用上述的泰勒公式一阶展开
f(W+ΔW)=f(W)+f(W)TΔW+12ΔWT2f(W)TΔW

若要使 f(W+ΔW) 最小,则要使 f(W)TΔW+12ΔWT2f(W)TΔW 最小
令:
g(ΔW)=f(W)TΔW+12ΔWT2f(W)TΔW

g(ΔW)=f(W)+2f(W)ΔW

g(ΔW)=0 时, g(ΔW) 取得极值点,
ΔW=2f(W)1f(W)

也即下一次迭代 W=W+ΔW=W2f(W)1f(W)

总结

由上面可知,梯度下降法只需要损失函数满足一阶可导就行,而牛顿法需要二阶导数,无论条件还是计算难度都提高了,但是由于牛顿法是泰勒展开式的二阶形式,所以是二阶收敛的,而梯度下降法是一阶收敛的,相对于牛顿法收敛速度较慢些。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值