当前位置:   article > 正文

机器学习系列 | 梯度下降算法详解_梯度下降就是沿着函数的梯度方向更新自变量使得函数的取值越来越小直至达到全

梯度下降就是沿着函数的梯度方向更新自变量使得函数的取值越来越小直至达到全

1. 梯度下降法的作用

梯度下降法用来求函数的极小值,且是一种迭代算法,由于计算机效率高,在机器学习中经常使用。梯度下降法常求凸函数(如机器学习中各种代价函数)的极小值,因为凸函数只有一个极小值,使用梯度下降法求得的极小值就是最小值。与其对应的有梯度上升法,用来求函数的极大值,两种方法原理一样,只是计算的过程中正负号不同而已。

凸函数的数学定义:某个向量空间的凸子集(区间)上的实值函数,如果在其定义域上的任意两点,有 f(tx + (1-t)y) <= tf(x) + (1-t)f(y),则称其为该区间上的凸函数

并不是所有的函数都有最小值,我们需要保证是凸函数才有最小值。所以在自己构建的目标函数中,在应用任何算法之前,先确定它是凸函数。

2. 梯度下降法和梯度的介绍

梯度就是表示某一函数在该点处的方向导数沿着该方向取得最大值。这个概念比较抽象,我们拿下山做比较,一个人站在山上的某个山腰处,想要以最快的速度下山,那么该怎么最快下山呢?他只要每次沿着当前位置最陡峭最易下山的方向前进一小步,然后继续沿下一个位置最陡方向前进一小步。这样一步一步走下去,一直走到觉得我们到了山脚的位置。那么下山最陡的方向就是梯度的负方向,这种方法就是梯度下降法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZqPhtgp6-1570000040396)

那怎么求一个函数的梯度呢?那就是这个函数在当前位置的导数。如函数 f ( x , y ) f(x,y) f(x,y)的梯度就是
∇ f ( x , y ) = ( ∂ f ( x , y ) ∂ x , ∂ f ( x , y ) ∂ y ) \nabla f(x,y) = (\frac{\partial f(x,y)}{\partial x},\frac{\partial f(x,y)}{\partial y}) f(x,y)=(xf(x,y),yf(x,y))
那么对于如何使用梯度下降算法呢?就是先选择一个初始点,计算该点的梯度,然后按照梯度的方向更新自变量,直到函数的值变化很小或者达到最大迭代次数为止。拿函数 f ( x , y ) f(x,y) f(x,y)举例,若第 k k k次迭代值为 ( x k , y k ) (x^{k},y^{k}) (xk,y

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/135749
推荐阅读
相关标签
  

闽ICP备14008679号