使用Barrodale-Roberts-算法求解最小绝对偏差:过早终止?


9

请原谅冗长的问题,它只需要一些解释就可以解决实际问题。那些熟悉上述算法的人可能会直接跳到第一个单纯形标签。


为了解决最小绝对偏差问题(又称优化),Barrodale-Roberts算法是一种特殊用途的单纯形法,只需很少的存储和计算工作即可找到合适的最小值。L1

我的算法实现以一个简单的示例终止,直到达到适当的最小值为止。但是,可能让我首先以更详细的方式陈述问题:

给定数据,L_1优化会尝试找到最小化 \ sum_ {i = 1} ^ n | y_i-f(x_i)|的c \ in m \ quad \ text {with} \ quad f(x):= A_x \ cdot \ phi 其中A_xn \ times m矩阵,在某种程度上取决于x。这个问题可以说成是线性程序,因此可以使用类单纯形方法解决。(xi,yi)L1cm

i=1n|yif(xi)|withf(x):=Axϕ
Axn×mx

Barrodale和Roberts建议对单形方法进行一种(显然广泛使用的)修改,该方法使用L1问题的特殊结构从根本上简化了单形方法。最值得注意的是,这是一种最佳解决方案,它至少对给定数据点的rank(A)进行插值。具有Jstor访问权限的用户可以在这里找到相应的文章。

Lei和Anderson在2002年提出了一个小的修改方案,该修改方案应增加数值稳定性,从而克服单纯形算法的已知问题。

基本上,该算法假定您从一组必须进行插值的给定点开始,使用给定的过程构建单纯形表,然后使用Barrodale和Roberts的规则来确定要更改的基础变量,从而修改一组近似的数据点。

巴罗代尔和罗伯茨举了一个小例子,我试图重现。它试图通过函数逼近点。使用以下精简单纯形表完成其算法:{(1,1),(2,1),(3,2),(4,3),(5,2)}a1+a2x

BasisRu1u3b11/23/21/2v21/21/21/2b21/21/21/2u41/21/23/2v5112Marginal cost210

最重要的是,对第一点和第三点进行插值,并且总误差等于 。他们得出结论2

由于所有非基本向量都具有非正边际成本[...]

迭代完成并达到最佳状态。

如果我使用Lei和Anderson的算法,则可以按预期方式为插值集{1,3}再现该单纯形表。但是,如果我以集合(显然不是最佳选择)开始算法,则会得到以下单纯形表:{2,5}

BasisRu2u5u11/34/31/3b11/35/32/3u32/32/31/3u44/31/32/3b21/31/31/3Marginal cost7/310/35/3

但是,这个结果使我感到困惑。如果我正确理解上述报价,则没有正的边际成本表明可以达到最佳。但是,约2.33的函数值当然不是最佳的。交换与将产生一个结果,该结果看齐Barrodale和Roberts的溶液,因此是最佳的。u2u1

附加信息:如果我从Barrodale和Roberts给出的初始画面开始,我还能够通过普通的单纯形步骤重现上面的画面,因此,我相当有信心实际数值是正确的并且我对枢轴选择规则的解释有毛病。

有什么想法吗?

我意识到问题本身非常复杂,可能至少需要充分了解Barrodale和Roberts算法的知识。整个算法需要在这里完整详细地重复。但是,如果您对我采取的步骤或缺少的信息还有其他疑问,请随时提出,我们将很乐意回答。


如果有足够声誉的人可以按照“最小绝对偏差”或“ L1近似值”来创建标签,我将不胜感激。
Thilo

最优条件是碱性溶液具有是可行的(相对于它的非负约束) 该降低的成本必须是小于或等于0。如果您的基本解决方案是不可行的,那么所有的赌注都关闭。
Brian Borchers 2013年

该基本解决方案通过构造是可行的。因此,应该没有问题。但是,我对问题可能出在哪里有了第一个想法。如果正确的话,我将添加一个相应的答案。
Thilo

Answers:


4

解决了。实际上,Barrodale和Roberts解决了它,而我只是没有仔细阅读。

在我的问题中,我将其留给读者理解,以Barrodale和Roberts标记为的变量代表与当前拟合相关的第个数据点的正残差。如果残差为负,则,取相应的值。由于可能只有一个在基数内,并且单纯形表中的系数只是彼此的负数,因此没有必要在单纯形表中明确声明它们。Barrodale和Roberts在他们的文章中提到:uiiui=0vi

和的边际成本(或降低的成本)之和为零,和的边际成本之和为-2。bjcjuivi

因此,必须将我上面的单纯形表看起来如下:

BasisRu2u5v2v5u11/34/31/34/31/3b11/35/32/35/32/3u32/32/31/32/31/3u44/31/32/31/32/3b21/31/31/31/31/3Marginal cost7/310/35/34/31/3

我们清楚地看到可以作为基础来归档更好的结果。这样做时,算法将终止,同时以总误差2插入第一个和第五个数据点,这是最佳解决方案。v2

感谢您的阅读并给我一些地方写下我的问题,这通常有助于显着缩小解决方案的范围。希望这个答案有时可能对尝试实施Barrodale&Roberts的其他人有所帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.