1 梯度下降介绍
我们首先随机一个点,然后沿着梯度方向的反方向寻找最低点
迭代多次,直到找到局部最优(也有可能是全局最优)【线性回归问题里面,局部最优就是全局最优了】多个参数同理,分别进行梯度下降
2.1 梯度与Hessian矩阵
梯度为0的时候,不一定是local minimum。他还可能是local maxinum 和鞍点,那么,怎么判断是不是local minimum呢?
我们类比一元二次方程a的正负和上下开口的问题,考虑二阶导(hessian矩阵)
local min | hessian矩阵半正定 | |
local max | hessian矩阵半负定 | |
鞍点 | hessian矩阵既不半正定也不半负定 |
2 梯度下降可能存在的问题
我们可能会找到鞍点,可能会找到局部最优,而且从不同位置出发,可能最终梯度下降的结果会有很大的区别
3 梯度下降小tips
3.1 合理调整学习率
pytorch笔记:调整学习率(torch.optim.lr_scheduler)_UQI-LIUWJ的博客-CSDN博客
3.2 特征缩放
当我们面对多维度特征问题的时候,我们需要保证这些特征都有相近的尺度,这样会帮助梯度下降更快地收敛。
以上图为例,图像非常扁平,梯度下降算法需要非常多次的迭代才能够收敛
为了更快地收敛,我们将所有特征的尺度放缩到-1~1之间:
4 梯度下降原理
4.1 泰勒级数
我们可以用这种方式来近似函数f(x)
用求和的方式来写,有:
4.1.1 用于函数近似的泰勒级数
换言之,泰勒级数越靠后的项,越小。
因此,出于近似考虑,我们可以只考虑最初的两项:
4.1.2 多变量的泰勒近似
4.2 梯度下降的理论,
||v||是一样的,所以我们的目标就是找
的最小值
可以看成是向量
和向量v的内积。那么什么时候内积的结果最小呢?就是v=
的时候