本讲主要看一下,在无约束的求解过程中使用的梯度技术
解决无约束问题的算法框架
1. 选定一个初始点x0,计算一些数值,例如x0的值f(x0),x0点的梯度,x0点的嗨森矩阵
2. 基于以上计算的信息,选定一个搜索方向d0
3. 沿着搜索方向找到下一个点x1,
4. 以以上的方法产生x1,x2,x3.....。
以上的方法称为逐次下降法,很多算法都是逐次下降法,只不过是确定搜索方向、确定步长的方法不同,本章主要介绍的事逐次下降法的一种-梯度下降法。
梯度,如果是一维的,那么其实就是导数,多维的,那么就是多每个变量求偏导
梯度下降法:就是以负梯度方向作为找极小值点的方向
这里就有两个问题
1. 为什么要以负梯度方向作为寻找极小值点的方向
证明如下图
第一行:根据泰勒公式得到
第二行:做了下等式变换
第三行:因为想找到最速下降的方向,也就是从当前点到下一个点的距离最大
第四行:最大化等式左边等于最小化等式右边的负值
第六行:向量相乘转化为夹角余弦跟模的乘积
最后得出dx的方向是梯度的反方向
2. 最有步长法(既然梯度的负方向是下降最快的方向,为什么实际使用的过程中用梯度下降方收敛的比较慢)
因为从局部看,也就是从当前点看,沿着负梯度的方向