梯度下降算法

梯度下降算法

今天我们来谈谈梯度下降算法,首先梯度下降算法是干什么的?
学习机器学习的应该都接触过它,梯度下降算法其实也是求解最优化问题的,前面,我们讲过的牛顿法,拉格朗日对偶函数也是求解最优化问题的,不过,拉格朗日对偶函数是求解有约束最优化问题,而牛顿法与梯度下降法是解决无约束最优化问题。
话不多说先给出其数学表达式
在这里插入图片描述
在梯度下降算法中原本每迭代一次都要计算一次步长,如果这样的化又变成了一个最优化优化问题,回增加计算开销,所以现在使用梯度下降算法时,一般都将步长设为定值,这样也可以达到收敛的目的,但是这个步长设置也是有要求的。不能太大,否则可能会发散。

其实它本身就是利用了梯度这个特性,梯度的方向会使函数值往大的方向去,那我们就沿跟它相反的方向去改变x。
牛顿法与梯度下降法其实真正的原理在于,我们知道当f(x)导数为零时说明这是极值点,那么现在我们对f(x)进行太累展开,我们知道当泰勒展开x越接近展开的那个点时展开的函数图像在那一点附近与原函数图像越接近,而且也可以认为他们的导数越接近,现在问题来了,如果以x0展开且展开函数h(x),有h’(x0)=0,说明什么?说明在这一点函数图像与原函数很接近几乎重合,且导数为零,那么这一点就应该是原函数的极值点。
所以在迭代的时候抓住两个要求,每次迭代是导数更趋近于零,且X(k+1)更接近Xk.

原文地址:https://www.cnblogs.com/gaoxing2580/p/12423427.html