1700507660
得到的x2为r的二次近似点。
1700507661
1700507662
以此种方式进行迭代,通项表达式为
1700507663
1700507664
1700507665
1700507666
1700507667
xn就成为r的n次近似点。这个公式称为“牛顿迭代公式”(如图11-16所示)。
1700507668
1700507669
1700507670
1700507671
1700507672
图11-16 牛顿法迭代中x的移动
1700507673
1700507674
以上介绍的就是使用一次次迭代来逼近最优解(局部最优解)的过程。
1700507675
1700507676
1700507677
牛顿迭代公式可以推广到高维使用,例如二维、三维且各维度可导的情况。在使用计算机求解的过程中,即使f(x)的求导过程非常复杂,也还是有变通的方法。f(x)的导数f’(x),不是用来推导解析解,而是根据这个定义来近似求得一个导数值,即某一点的斜率
1700507678
1700507679
1700507680
1700507681
1700507682
其中,x可以是函数f(x)中任意有定义且可导的值,△则取一个足够小的值。
1700507683
1700507684
这种思维方式在梯度下降法中也有较好的应用。
1700507685
1700507687
11.7.2 梯度下降法
1700507688
1700507689
在工业领域,还有一些迭代法可以实现这种逼近性质的迭代,例如梯度下降法(Gradient Descent)、随机梯度下降法(Stochastic Gradient Descent)也是用来解决凸优化问题的通用方法。在一维定义域上满足
1700507690
1700507691
1700507692
1700507693
1700507694
的就是凸函数。
1700507695
1700507696
例如,y=f(x)=x2+2就是典型的一元凸函数(如图11-17所示),z=f(x, y)=x2+y2则是二元凸函数(如图11-18所示),三元及以上的高维凸函数也是有的,只是没法画出图像而已。
1700507697
1700507698
1700507699
1700507700
1700507701
图11-17 y=f(x)=x 2+2图像 图11-18 图像 在一个问题的求解过程中,如果能把这个问题转化成一个在凸函数上求极值的问题,就算是获解了。在这种情况下需要使用梯度下降法来求极值,核心思路是在函数的曲线(曲面)上初始化一个点,然后让它沿着梯度下降的方向移动移动到函数值极值的位置。这个位置视具体的问题而定,可能是极小值,也可能是极大值(如果是凹函数,那就是梯度上升的方向)。
1700507702
1700507703
假设要在一个n维空间的凸函数上进行迭代,v是一个n维向量v(x1, x2,…, xn),那么在梯度下降迭代的过程中可以使用这样的原则:
1700507704
1700507705
1700507706
1700507707
1700507708
1700507709
η是“步长”系数,表示每次迭代移动的距离基数。是在某个xi维度上的偏导数。在连续可导的函数曲面上,任意一次迭代中每个ix都可以更新。在很多场景中,如果能使多元函数在任何一个维度上都是凸函数,通常使用梯度下降法比较容易解决问题(神经网络中的损失函数就是这样)。可以通过定义拟合的残差为关于待定系数的凸函数,用梯度下降法进行优化,从而获解(11.9.3节会进行详细的讨论)。
[
上一页 ]
[ :1.70050766e+09 ]
[
下一页 ]