
目录
- 引言
- 问题陈述和最速下降法
- 牛顿法
- 实现
- 结论和最终比较
1. 引言
在之前的一篇文章中,我们探讨了流行的最速下降法优化方法,并使用Python从头开始实现了它:
从头开始使用Python实现最速下降算法
目录
towardsdatascience.com
在本文中,我们旨在介绍牛顿法,并分享一种逐步实现的方法,同时将其与最速下降法进行比较。
2. 问题陈述和最速下降法
优化是找到使目标函数 f(x) 最小化的变量集合 x 的过程:
为了解决这个问题,我们可以在坐标空间中选择一个起始点,并通过搜索方向 p 迭代地向更好的最小值逼近:
在这个表达式中:
x是输入变量;k是当前迭代;p是搜索方向;α > 0是步长或步长;它描述了我们应该沿着方向p移动多少。
搜索方向
在最速下降法中,搜索方向 pₖ 是当前迭代 xₖ 中求得的负梯度 -∇f(xₖ):
最小值是一个驻点,因此当梯度的范数小于给定的容差时,停止算法是合理的。
步长
步长 α 理想情况下是以下目标函数 φ(α) 的极小化器:
然而,这个额外的优化任务可能是不实际和昂贵的。它的解决方案需要对 f(x) 和 ∇f(x) 进行多次评估。不精确的线搜索方法…