牛顿法和拟牛顿法

一。两种方法本质:


和梯度下降法的本质一样都是为了找到一个合适的最快的下降方向,然后以一定步长一步一步走到极值点


二。牛顿法:



1、传统牛顿法(数学中)




2、传统牛顿法在机器学习的推广:


机器学习中需要做的是,参考‘回归分析’


注意,上面需要重复若干次直到两次的参数相差不大


3、传统牛顿法的问题:



***********************************************************
关于上面Hessian矩阵正定时,才可以保证J()有极值的分析:

***********************************************************

4、牛顿法的优势:


收敛快,意味着2中循环不需要太多步,就可以达到极值


三。修正牛顿法:


1、牛顿法不稳定


也即当hessian矩阵出问题时,很可能算出来的‘牛顿方向’和曲线切向(梯度方向)差别很大,此时这个方向不应该作为下降方向,而应该使用梯度方向

2、方法:


每到一个点计算其‘牛顿方向’和‘梯度方向’,二者夹角过大,则使用梯度方向,否则使用牛顿方向



四。拟牛顿法:


由二 3 可知,hessian矩阵是最大的麻烦(求对向量二阶导),我们可以想办法找一个‘替代矩阵B’

这样B可以近似取代H(相当于割线代替切线)

但是,我们在不知道第k个点牛顿方向之前,不会直到第k+1个点是什么,所以上面的公式不实用。
但是我们可以基于这个公式然后认为每一个Bk,可以不由上面这个公式求出,而是由前一个B(k-1),迭代出。
也即:

其中,△是一个低秩矩阵

求△的方法:


(1)SR1:


其的秩为1:


(2)BFGS:





(3)DFP:




(4)broyden:






五。牛顿法的进一步修正:





你可能感兴趣的:(机器学习里的数学应用,牛顿法,拟牛顿法)