之前在看求解优化问题的时候一直出现的两个概念,今天来记录一下
泰勒展开式
牛顿法
牛顿法主要用用在
1. 求解方程式
目标是求解:f(x)=0
当我们要求接的方程式求解起来很困难,我们可以试试用牛顿法来迭代求解,其原理就是对求解的函数使用一阶泰勒展开,那我们在x0处:
已知f(x)=0,则
,很明显只根据这一次迭代我们很难直接得到关于x的准确估测,因此我们需要多次迭代直到收敛
2. 求解最优化问题
目标是求解=0
针对这个问题,我们对f(x)进行二阶泰勒公式展开:
我们对上面的式子求导,并令其导数等于0
将其推广到
那么对于高纬函数,牛顿公式可以推广为:
其中为海森矩阵,
这里比较一下梯度下降:
梯度下降通过调整学习率来调整学习的速度,而牛顿法利用了函数曲线本身的性质,所以更容易收敛,但是牛顿法也有缺点,引入海森矩阵,增加了复杂性,当维度很高的时候,带来很大的计算压力,另外如果海森矩阵非正定会导致函数不一定下降,从而不会收敛,如果H为负定矩阵,则函数在f(x)在x0处为凸函数,会得到函数的极大值而不是极小值,如果H不定,则其逆矩阵可能不存在,导致这一现无法给出有效的信息
网友评论