梯度下降法

梯度下降法Gradient Descent是求解无约数最优化问题的一种最常见的方法。

假设f(x)f(x)f(x)RnR^nRn上具有一阶连续偏导数的函数,要求解的无约束最优化问题是:(1)minx∈Rnf(x)min_{x\in R^n}f(x)\tag{1}minxRnf(x)(1)

x∗x^*x表示目标函数f(x)f(x)f(x)的极小点

由于负梯度方向是函数值下降最快的方向,每一步迭代中,以负梯度方向更新xxx的值,从而达到减小函数值得目的

由于f(x)f(x)f(x)有一阶连续偏导数,若第kkk次迭代值为x(k)x^{(k)}x(k),则可将f(x)f(x)f(x)x(k)x^{(k)}x(k)附近进行一阶泰勒展开:(2)f(x)=f(x(k))+gkT(x−x(k))f(x)=f(x^{(k)})+g^T_k(x-x^{(k)})\tag{2}f(x)=f(x(k))+gkT(xx(k))(2)

这里,gk=g(x(k))=∇f(x(k))g_k=g(x^{(k)})=\nabla f(x^{(k)})gk=g(x(k))=f(x(k))f(x)f(x)f(x)x(k)x^{(k)}x(k)的梯度。

求出第k+1k+1k+1次迭代值x(k+1)x^{(k+1)}x(k+1): (3)x(k+1)=x(k)+λpkx^{(k+1)}=x^{(k)}+\lambda p_k\tag{3}x(k+1)=x(k)+λpk(3)

其中,pkp_kpk是搜索方向,取负梯度方向pk=−∇f(x(k))p_k=-\nabla f(x^{(k)})pk=f(x(k))λk\lambda_kλk是步长,由一维搜索确定,即λk\lambda_kλk使得(4)f(x(k)+λkpk)=minλ>=0f(x(k)+λpk)f(x^{(k)}+\lambda_kp_k)=min_{\lambda>=0} f(x^{(k)}+\lambda p_k)\tag{4}f(x(k)+λkpk)=minλ>=0f(x(k)+λpk)(4)

梯度下降法算法流程

输入:目标函数f(x)f(x)f(x),梯度函数g(x)=∇f(x)g(x)=\nabla f(x)g(x)=f(x),计算精度ϵ\epsilonϵ

输出:f(x)f(x)f(x)的极小值点x∗x^*x

(1) 取初始值x(0)∈Rnx^{(0)}\in R^nx(0)Rn,置k=0k=0k=0

(2) 计算f(x(k))f(x^{(k)})f(x(k))

(3) 计算梯度g(x)=∇f(x)g(x)=\nabla f(x)g(x)=f(x),当∣∣gk∣∣&lt;ϵ||g_k||&lt;\epsilongk<ϵ时,停止迭代,令x∗=x(k)x^*=x^{(k)}x=x(k);否则,令pk=−g(x(k))p_k=-g(x^{(k)})pk=g(x(k)),求λk\lambda_kλk使得f(x(k)+λkpk)=minλ&gt;=0f(x(k)+λpk)f(x^{(k)}+\lambda_kp_k)=min_{\lambda&gt;=0} f(x^{(k)}+\lambda p_k)f(x(k)+λkpk)=minλ>=0f(x(k)+λpk)

(4) 置x(k+1)=x(k)+λkpkx^{(k+1)}=x^{(k)}+\lambda_kp_kx(k+1)=x(k)+λkpk,计算f(x(k+1))f(x^{(k+1)})f(x(k+1))

∣∣f(x(k+1))−f(x(k))∣∣&lt;ϵ||f(x^{(k+1)})-f(x^{(k)})||&lt;\epsilonf(x(k+1))f(x(k))<ϵ∣∣x(k+1)−x(k)∣∣&lt;ϵ||x^{(k+1)}-x^{(k)}||&lt;\epsilonx(k+1)x(k)<ϵ时,停止迭代,令x∗=x(k+1)x^*=x^{(k+1)}x=x(k+1)

(5) 否则,k=k+1k=k+1k=k+1,转(3)

当目标函数是凸函数时,梯度下降法的解是全局最优解。一般情况下,其解不保证全局最优。梯度下降法的收敛速度也未必很快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值