梯度下降算法总结
觉得CSDN这块有用的很少,于是写下自己的一些感悟,下降梯度结合精度对于算法其实非常有帮助,在上非线性规划这门课中,老师的讲得很仔细,自己又有一些数值分析得基础,于是相对来说能悟出来一点,希望大家能够支持一下,我也能认真一点写下去!
精确一维搜索
在数值分析中非线性规划方程求根的方法:牛顿法,割线法和简单迭代法。其实改进的牛顿法是我目前学到比较精确的一个求根方法了。
精确的一维搜索其实定义如下:
由极值的必要条件可知,alpha[k]是函数对alpha求导为零的等式的非负根:
因为不可能在有限步内求得方程的精确解,只能得到满足一定精度的近似解,取最小正根作为方程的解:
在此情况下,我们可以利用直接搜索法和插值法,实现知道包含解的区间。
进退法
在进退法中,从一点出发按一定的步长确定函数值呈“高-低-高”的三点,如果一个方向不成功,就退回来,再沿相反的方向寻找。即确定0<=a<c<b,f(a)>f©<f(b)。
0.618法
0.618法只能用在单峰函数中,对于单峰函数的定义就是形如f=x^2的图像,可以自行想象。
0.618法由来是一元二次方程x**2+x-1=0的近似解为0.618。0.618的算法实现如下:
其中,我们可以根据0.618特殊的性质x**2+x-1=0,得到切断右边的端点后,左边的点变为之后右边的点:
在这里,你只需计算一个端点处的函数值/区间,这是0.618法独特的地方。
既上述实现可改进为: