【梯度下降算法】——使用梯度下降算法解决一元和多元数学最值问题

一元最值问题


[例] 求解x为多少时,目标函数y = sinx + 5x² + 2可取得最小值?

接下来分析一下这道题,它是求最值问题,我们按照高中的思路,容易想到求导,然后让导数值为0,求得的x即为极值点,接着通过相关计算求出答案。

那我们就来试试看,首先求导得y' = cosx +10x,然而我们不知道如何求得x使得导数值为0……

这时我们就需要使用到梯度下降算法,因为我们求的是最小值,所以设置学习率为-0.1。

[解] 首先随机初始化x,假设x= 0。梯度为▽y= cosx + 10x

循环x梯度更新x
10cos0 + 10 * 0 = 10 - 0.1 * 1 = -0.1
2-0.1cos0.1 + 10 * 0.1 = -0.0050-0.1 + 0.1 * 0.0050 = -0.0995
3-0.0995cos(-0.0995) - 10 * 0.0995 = -0.00005 ≈ 0无更新

梯度为-0.00005时,已经接近为0了,也就意味着偏导数为0,意味着此时已经到达极小值了。

当 x = -0.0995 时,ymin = 1.95,问题得解!

多元最值问题


[例] 利用梯度下降法,计算y = (x1 - 1)² + (x2 - 3)²的极小值

[解] 先计算梯度

因为求解最小值,所以设置学习率为-0.4

循环[x1 x2]梯度更新 [x1 x2]
1[0 0][2 * 0 - 2 2 * 0 - 6] = [-2 -6][0 0] - 0.4 * [-2 -6] = [0.8 2.4]
2[0.8 2.4][-0.4 -1.2][0.96 2.88]
3[0.96 2.88][-0.08 -0.24][0.99 2.98]
4[0.99 2.98][-0.02 -0.05]≈ [1.00 3.00],不再更新
当 [x1 x2] = [1.00 3.00] 时,ymin = 0,问题得解!
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值