梯度下降(Gradient Descent)
什么是梯度下降
梯度下降法的基本思想可以类⽐为⼀个下⼭的过程。
假设这样⼀个场景:
⼀个⼈被困在⼭上,需要从⼭上下来(i.e. 找到⼭的最低点,也就是⼭⾕)。但此时⼭上的浓雾很⼤,导致可视度很低。
因此,下⼭的路径就⽆法确定,他必须利⽤⾃⼰周围的信息去找到下⼭的路径。这个时候,他就可以利⽤梯度下降算法来帮助⾃⼰下⼭。
具体来说就是,以他当前的所处的位置为基准
,寻找这个位置最陡峭
的地⽅,然后朝着⼭的⾼度下降的地⽅⾛,(同理,如果我们的⽬标是上⼭,也就是爬到⼭顶,那么此时应该是朝着最陡峭的⽅向往上⾛)。然后每⾛⼀段距离,都反
复采⽤同⼀个⽅法,最后就能成功的抵达⼭⾕。
梯度下降的基本过程就和下⼭的场景很类似。
⾸先,我们有⼀个可微分
的函数。这个函数就代表着⼀座⼭。
我们的⽬标
就是找到这个函数的最⼩值
,也就是⼭底。
根据之前的场景假设,最快的下⼭的⽅式就是找到当前位置最陡峭的⽅向,然后沿着此⽅向向下⾛,对应到函数中,就是找到给定点的梯度 ,然后朝着梯度相反的⽅向,就能让函数值下降的最快!
因为梯度的⽅向就是函数值变化最快的⽅向。
所以,我们重复利⽤这个⽅法,反复求取梯度,最后就能到达局部的最⼩值
,这就类似于我们下⼭的过程。⽽
求取梯度就确定了最陡峭的⽅向,也就是场景中测量⽅向的⼿段。