关于牛顿法优化

先借这个机会把两种牛顿法区分了(看到的讨论总和数值分析时记得的牛顿不一样-_-||):
按照Wiki上的首句,切线法是用于求根的,海森矩阵是进行优化的(就此厘清一阶和二阶的困扰...)。

有这几个问题,都是在不同地方见到的意见

  1. 牛顿法更快
  2. 牛顿法是曲面逼近,梯度法是平面

更快

看到有讨论说牛顿法比梯度法更快的结论(https://www.zhihu.com/question/19723347,其他地方也看到过)。想先讨论下这个。
比如现在有个函数\(f(x)=x^3\),牛顿法给出的优化是\(\frac{3x^2}{6x}=x/2\),梯度法:\(3x^2\),如果两者的学习率相同的话,应该是梯度法更快。这个容易理解,牛顿法是寻找极点的(\(\Delta x\)的取值要使二阶展开式的微分为0,详见Wiki上的第二式),所以牛顿法给出的是指向\(x=0\)的方向(对比梯度法是朝\(x=-\infty\))。
但如果考虑另一种情况,就会得到不同的结论。实际情况中,待优化的参数很多,并且优化面的情况也复杂。梯度法容易造成震荡。比如,上面说的函数,如果在0处是极值点,学习率为1,\(x>1/3\)时,梯度法出现震荡。但牛顿法步长为\(x/2\),可以避免。所以就整个过程来看,说快,似乎也有合理的地方。

曲面与平面

另外想讨论下,那张经典的维基图。原文中,每次看到,总忍不住问下,能判断出哪个是哪个么。。。
图的注释也比较启发性。说得很在理,确切地讲,牛顿法的优势在于把函数更多的信息利用起来了(二阶),类似于逼近最优方位更细致(呃~说的是全局最优),所以能看到有用曲面平面进行对比的。
最后回答下那个判断题(按我的理解,也只能做判断题),唯一的线索就是区分出梯度法,因为它一定是选的下降得最快的方向,然后剩下的只有牛顿法。

posted @ 2018-03-29 16:51  rotxin  阅读(231)  评论(0编辑  收藏  举报