1.介绍
梯度下降法的目标是:,要找到一个使得目标成立,一般选取初值然后不断迭代,更新x的值,直到收敛,那更新的方向就是函数的负梯度方向,因为这样函数下降的最快,这也就是为什么较梯度下降算法的原因。
必须具备一个条件,就是一阶连续可导,我们把它在第k次迭代方向上进行泰勒一节展开:
此时就是函数在此点的梯度,然后可以求出k+1次的迭代值,其中lamda是步长,pk是负梯度方向。
2.流程
输入:目标函数f(x),梯度函数g(x),精度e
输出:f(x)的极小点;
(1).取初始值,k=0;
(2).计算;
(3).计算梯度值,当梯度值的绝对值小于精度或者迭代次数达到最大停止迭代,否则按 更新,k=k+1。
注意:一般当目标函数为凸函数时,梯度下降法为全局最优解,对于复杂函数并不一定。
3.实现
对于梯度下降有两种实现方法:
批量梯度下降:每次遍历所有的样本取最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小,但是对于大规模样本问题效率低下。
随机梯度下降:每次遍历选取一个样本,最小化这个样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近,适用于大规模训练样本情况。