我们在高中或本科时期就了解到:当函数存在解析形式且容易进行求导(f(x)在最优点x∗ 附近可微),那么 x* 是局部极小点的必要条件为:df(x∗)-0。
然而,并不是所有的函数都容易求导,或者求导之后进行计算。所以引出了一系列基于最小二乘的优化算法如:“最速下降法(很多情况下也称为梯度下降法)、牛顿法、高斯牛顿法、LM算法”。
下面简单记录一下基本的最速下降法步骤及实例。
最速下降法
简要介绍:
第一步,选取一个迭代的初始值,设置迭代终止的阈值,第一次迭代 k-0
第二步,计算函数 f ( x )在迭代 k- 0处的一阶梯度,如果 停止迭代,输出,反之,进行下一步。
第三步,找到梯度的反方向,作为下降最快的方向。
第四步,假设,在 方向前进了步长:,使得下式成立:
即:找到一个最优的步长 t k,使得最小
接着:
改变的值,。
同时, k = k + 1。
转入第二步,进行判断进入下一次迭代或输出。
实例
上述内容主要参考了大佬的知乎回答:【最优化】一文搞懂最速下降法,这里仅进行记录,巩固自己的理解。