梯度的方向总是函数值越来越大的方向,如果是求极大值,沿着梯度的方向迭代接口;如果是求极小值,沿着梯度相反的方向迭代即可,即梯度下降法。
梯度下降法(梯度上升法应该也适用)迭代结束的条件,常用的有两种:
一、定义一个合理的阈值,当两次迭代之间的差值小于该阈值时,迭代结束。
二、设置一个大概的迭代步数,比如1000或500,梯度下降法最终的迭代肯定会收敛,只要达到相应迭代次数,多了也没关系。因为迭代次数多了后,在
到达极值点时,函数对变量的导数已近乎为0,即使过了极值点,导数就变为正数了,之前的导数为负数。这个时候,变量x的值减去步长与导数的乘
积反倒变小了。所以即使步数多了,结果也基本上就在极值点处左右徘徊,几乎等于极值点,因此没有问题。