AdvancedMachineLearning结课报告专用
前置知识
海森矩阵
是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。在工程实际问题的优化设计中,所列的目标函数往往很复杂,为了使问题简化,常常将目标函数在某点邻域展开成泰勒多项式来逼近原函数,此时函数在某点泰勒展开式的矩阵形式中会涉及到黑塞矩阵。
对于一个函数
如果f的所有二阶导数都存在,那么f的海森矩阵为:
将二元函数的泰勒展开式推广到多元函数,则在一点处的泰勒展开的矩阵形式为:
其中
是函数在X0点的梯度,G(X0)就是海森矩阵。
海森矩阵是由目标函数在x点处的二阶偏导数组成的n*n阶对称矩阵
- 如果海森矩阵是一个正定矩阵,则临界点是一个局部极小值
- 如果海森矩阵是一个负定矩阵,则临界点是一个局部极大值
- 如果是不定矩阵,则临界点处不是极值
牛顿法优化问题
牛顿法的基本思想是利用迭代点Xk处的一阶导数(梯度)和二阶导数(Hessen矩阵)对目标函数进行二次函数近似,然后把二次模型的极小点作为新的迭代点,并不断重复这一过程,直至求得满足精度的近似极小值。牛顿法的速度相当快,而且能高度逼近最优值。
将一个需要求解的损失函数函数f(x)进行泰勒展开到二阶,得到
对上式求关于x的导数并令其等于0
那么求得极值点的x坐标为
这就是牛顿法的更新公式
牛顿法的精髓就是二阶收敛,不仅利用了损失函数的一阶偏导数,也用到了损失函数的二阶偏导数,即梯度变化的趋势,因此比梯度下降法更快的确定合适的搜索方向,具有二阶收敛速度。
牛顿法的缺点:
- 计算复杂
- 对函数有较为严格的要求,必须具有连续的一阶和二阶偏导数,海森矩阵必须是正定的
LBFGS优化算法
在一些经典的优化算法中,比如梯度下降,SGD,Adam等都是在一阶法的基础上进行改进,加快收敛的速率。而牛顿法则是利用二阶法,在收敛速度上远快于一阶,但如果目标函数非凸时,二阶法可能收敛到鞍点。针对二阶法存在的问题提出了BFGS和低存储的LBFGS方法