梯度下降浅析

我个人看来,梯度下降可以理解为我们生活中如何最快下山的问题。

如何最快的下到山底,需要解决两个问题:1.每走一步时,应该朝哪个方向迈出步子。

                                                                     2.每一步应该迈多大。

 

每次朝哪个方向迈出步子,即是要找到一个最陡峭的方向。如果我们每迈出一步都是朝着最陡峭的方向,则最终会以最快的速度到达山底。

 

现在问题的关键就是如何找到这个最陡峭的方向。

首先讲讲梯度。

梯度实际上就是多变量微分的一般化。

梯度就是分别对每个变量进行微分,然后用逗号分割开,梯度是用<>包括起来,说明梯度其实一个向量。

梯度是微积分中一个很重要的概念

  • 在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率
  • 在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向

梯度的方向是函数在给定点上升最快的方向,那么梯度的反方向就是函数在给定点下降最快的方向,这正是我们所需要的。所以我们只要沿着梯度的方向一直走,就能走到局部的最低点。

 

来张图,会更加形象:

 

下面看看梯度下降中最重要的数学公式:

公式的理解:

J是关于Θ的一个函数,我们当前所处的位置为Θ0点,要从这个点走到J的最小值点,也就是山底。首先我们先确定前进的方向,也就是梯度的反向,然后走一段距离的步长,也就是α,走完这个段步长,就到达了Θ1这个点!

α在梯度下降算法中被称作为学习率或者步长,我们可以通过α来控制每一步走的距离,每一步走的太大或者太小都不好,太小的话,可能导致迟迟走不到最低点,太大的话,会导致错过最低点。

梯度前加一个负号,表示朝着梯度相反的方向前进。梯度的方向实际是函数在此点上升最快的方向,而我们需要朝着下降最快的方向走,自然就是负的梯度的方向,所以需要加上负号。

 

下面举几个实例来更好的理解梯度下降算法。

假设一个单变量函数:

导数为:

假设起始位置:\Theta0 = 2    \alpha = 0.2

根据梯度下降的计算公式:

假设一个多变量函数:

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值