![机器学习的算法分析和实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/407/52842407/b_52842407.jpg)
1.3 多项式Remez算法
前面我们使用L2距离的好处就是在这个定义下,两个函数f,g自然定义了一个二次型
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P14_6725.jpg?sign=1739643582-LYYjyDovewQnVmLYTvRB5CX2jChru22F-0-7f741aa342551485912f2d0a1fb4870f)
在这个二次型下面,函数构成了希尔伯特空间。在希尔伯特空间下就可以定义垂直等概念。
除了这个L2距离以外,还可以定义其他的距离,例如,重新定义两个函数的距离为
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P14_6727.jpg?sign=1739643582-2SqchCCACKLfOrR3kEJYj618jReMfmJk-0-c9d94012ab971f714e12e4f8d220a0d6)
这个定义称为L∞距离。在这个距离下,得到的最佳逼近也就有所不同了。一般对于这样的问题,首先要考虑最佳逼近是否存在,其次考虑最佳逼近是否具有特殊的性质。下面的定理回答了这个问题。
定理1.1 已知连续函数f(x),一个n次多项式函数g(x)在L∞距离下的最佳逼近函数
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P15_6730.jpg?sign=1739643582-tLIIRFW2a0YJZXZywvFOFi8mDX1MDnnM-0-0f990c2f8277087b816c5a09b9ab7c15)
存在且应满足以下形式:函数f(x)−g(x)满足有x0<x1<···<xn+1,使得对于每个0≤i≤n+1,有
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P15_6732.jpg?sign=1739643582-219kKodaXSPq7RKy1w56FH3XhpM7iBPl-0-7e80548efede785b578b4fab4cc646c1)
同时对于每个0≤i≤n,有
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P15_6734.jpg?sign=1739643582-o5Dc6qmV4CR27V8jYAH997exiedsBA8Y-0-1145ea51ba429632864bc2d665fa1e22)
证明 这里先证明满足上述性质的函数必然是最佳逼近。至于存在性的证明,将在定理1.2中阐述。假设已经存在函数g(x),则这个函数是最佳函数。否则,一定有另外一个n次多项式函数h(x)可以进行更好的逼近。这个函数应满足
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P15_6736.jpg?sign=1739643582-a6gmT5TZVBJ6kgN4WD8RCFloVEnK6Jau-0-b09620bd0b0d5e2417fdf6ad2ab1bfae)
因此有
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P15_6737.jpg?sign=1739643582-TCXLkvcqzObHyYxo1b2045NSIFZydeRn-0-24f628590ea4158a64f3f2e13c3dbdce)
不妨假设
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P15_6739.jpg?sign=1739643582-2LDS7sTWbFCLyWXuvVlsLialks5wUTfG-0-2efb9130241a6105cd453d86e02a3912)
从而得到
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P15_6741.jpg?sign=1739643582-ENzo3B0IZ0x2PvtLpQ9t0e4FgEwPlsSv-0-d5f7e5aa3f5cb7ec7d787a8cb82866ae)
以此类推,可以看到函数h(x)−g(x)作为n次多项式,竟然有至少n+1个零点,除非h(x)=g(x)。至此,我们就证明了这个定理。 证毕
L∞逼近如图1.3所示。
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P16_621.jpg?sign=1739643582-k9lLwN3vsmOtpuvI8OKzqYgDFioEAhyw-0-3bf1dc3186275a889dbe2d3dbeb101a2)
图1.3 L∞逼近
上述定理说明,在多项式的空间中有一个最佳逼近函数。最佳逼近函数应该是一个n次多项式,其性质是存在n+2个点,这些点距离多项式函数值的差别都一致,且符号逐个相反。例如,使用4次多项式,那么就应该有6个点y1,y2,···,y6,使得
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P16_6744.jpg?sign=1739643582-ZswsdCCAeteYWu9WJhTAaVxiSOVs49Fq-0-8197f27593431886cad30ac71240a77b)
且(g(xi−1)−f(xi−1))·(g(xi)−f(xi))<0。
定理1.1 讲述了这个最佳逼近函数的充分条件。但是,并没有说明如何得到这个充分条件。下面介绍Remez算法。这个算法可以帮助我们找到这个函数,同时也就证明了这个函数的存在及其必要条件。首先,任意选取一组点
x0<x1<···<xn+1
然后求解方程
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P16_6747.jpg?sign=1739643582-WTr9jCwguxhVJy3jEYKEy474xyPD1CEP-0-7b5e3f395e5b068c5c3b7127f2c05963)
上面是一个线性方程组,有n+2个方程,同时有n+2个未知数。解方程组以后决定的多项式g(x)未必是最佳,因为有些点如上有
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P17_6752.jpg?sign=1739643582-YvvqfIax8eZNwpGVpNh7G0DrZRlJDM56-0-f2d6f13a3b6ef3fad77f0c1e050ac61a)
这时把上述点取代其最临近的一个点,且应保持和该点上函数值的差同样的符号,再次重复上述步骤。这个步骤不断重复,得到的ϵ也会不断增加逐渐收敛。每次取到的点xi在闭区间上也会不断收敛,而得到的f(x)也会不断收敛到一个n次多项式。这个过程就是Remez算法。
我们使用的是多项式逼近连续函数的语言,但是在实际操作中往往针对一组离散的点集,所以下面在点集是离散的情况下证明Remez迭代算法的收敛性,事实上是迭代算法的有限步就结束性。
定理1.2(Remez算法) Remez算法一定收敛。在有限个点的情况下,Remez算法一定在有限步内收敛。
证明 对于f(x),g(x)以及x0,x1,···,xn+1,已经满足了以下条件
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P17_6757.jpg?sign=1739643582-amdTsPERg8q64nv5rCFXt3tVXXbbyL3K-0-869525c37c64767b738a295a6108b252)
但是函数g(x)还不是最佳逼近。此时若有点(为了不失一般性,假设x0<
)满足
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P17_6759.jpg?sign=1739643582-3bKUPTgRqILU6cHotHP1ZdOfcvrzlIev-0-1ea7e16d07fc9a2ae69225edcd68c253)
而ϵ,用
来解方程
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P17_6769.jpg?sign=1739643582-iEgkPc1IVDmLqEyKMdz9FQL1f8BAuGaL-0-6fa00f5651db4da66226a1e1e695048d)
得到的ϵ1必然满足ϵ1<ϵ,否则f(x)−g(x)会在处变号从而矛盾。如果每次都不能得到最佳逼近,就有一系列的ϵk单调递增,由此得到的xi应该收敛,但是因为有限集合,所以有限次以后得到的点必然是固定的,从而不可再递降。 证毕
通过上面的分析,我们得到几个结论,为了控制过分拟合,需要控制多项式的次数,在限定多项式次数时,在不同距离函数下面,会有不同的最佳逼近。上面两个例子的背后就对应着线性回归和支持向量机。同时Remez算法也具有机器学习的想法和特征,即通过不断迭代的方法找到最佳的逼近函数。
习题
(1)在计算机上安装Anaconda 3版本。在Spyder环境下使用Python。
(2)自己生成一个定义在(0,10)的线性函数,如
f(x)=2x+5
然后随机从这个区间中选取20个点,在这些点上加一些白噪声,如一个均值为0的正态分布
yi=2xi+5+ωi
这里ωi∼N(0,σ)。依次使用1,2,3,4,···,10次多项式,使得
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P18_6779.jpg?sign=1739643582-qoGChZTzdSiF0iB7JGnbBBjxGTCaWiAO-0-bd1c913376b7ad3b1515ecbe2f97e8eb)
达到最小。同时使用不同的σ重新计算函数g(x),并画图观察不同多项式逼近函数的表现。
(3)在第(2)题的基础上,使用
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P18_6780.jpg?sign=1739643582-G0rk8Y2XZeXc6we7bdqglYLAQJncvkcu-0-1222566cc8ca3023d2e3768fbb2f47b0)
使其达到极小。同时使用不同的σ重新计算函数g(x),并画图观察不同多项式逼近函数的表现。在完成上面两个优化时,可以使用Python中的优化函数。
(4)在第(2)题的基础上,使用
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P18_6787.jpg?sign=1739643582-luK2Yns3mdBAwlEQ2mo9Pvn8s5jYSuQu-0-31889bd0361d4422a01252ba1e6407dc)
使其达到极小。同时使用不同的σ重新计算函数g(x),并画图观察不同多项式逼近函数的表现。在完成上面两个优化时,可以使用Python中的优化函数。
(5)在第(2)题的基础上,用Remez算法使得
![](https://epubservercos.yuewen.com/A39478/31397781004970606/epubprivate/OEBPS/Images/Figure-P18_6782.jpg?sign=1739643582-9R8jUKzt99wO66U7DPh6x0Cyel48QZR1-0-4bf8fa215b68291e972e1e3cf6d8e979)
达到极小,而不是使用现有的优化函数库。