简单梯度下降算法

目录

1.梯度下降问题

2.梯度下降简单解释

3. python代码(一维)

4.python代码(二维)


 1.梯度下降问题

梯度下降是一种找到最佳拟合线的工具。

首先梯度下降和下山的过程非常相似,我们有一个可微分的函数。这个函数就代表着一座山。我们的目标就是找到这个函数的最小值,也就是山底。根据之前的场景假设,最快的下山的方式就是找到当前位置最陡峭的方向,然后沿着此方向向下走,对应到函数中,就是找到给定点的梯度 ,然后朝着梯度相反的方向,就能让函数值下降的最快!因为梯度的方向就是函数之变化最快的方向(在后面会详细解释)所以反复利用就可以找到最小值.

梯度下降法,又称最速下降法。1847年由著名的数学家柯西Cauchy给出。

基本思想

假设我们爬山,如果想最快的上到山顶,那么我们应该从山势最陡的地方上山。也就是山势变化最快的地方上山。

同样,如果从任意一点出发,需要最快搜索到函数最大值,那么我们也应该从函数变化最快的方向搜索。

函数变化最快的方向是什么呢?

函数的梯度。

如果函数为一元函数,梯度就是该函数的导数

如果为二元函数,梯度定义为:

如果需要找的是函数极小点,那么应该从负梯度的方向寻找,该方法称之为梯度下降法。

要搜索极小值C点,在A点必须向x增加方向搜索,此时与A点梯度方向相反;在B点必须向x减小方向搜索,此时与B点梯度方向相反。总之,搜索极小值,必须向负梯度方向搜索。

 数学公式     Θ1=Θ0-learning_rate▽J(Θ)→evaluatedatΘ0

1.其中 learning_rate 是一个常量,用于调节每次更新的导数的百分比。调整 Learning_rate 值主要是用于防止w更新步伐太小或太大,或者避免梯度爆炸(梯度太大)或梯度消失的问题(梯度太小)。

2.Θ0是选择的初始位置,可自行选择

3.J是对公式进行求导的,单变量函数是直接可以对其求导的,多变量函数需要分别对不同变量求导

2.梯度下降简单解释

例子:y=(x-2.5)²+3 手写计算过程,下面有代码:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值