||
六月的第二个星期天,把一篇单行距35页的长文投到一个著名的控制期刊,长长地舒了一口气,倍感轻松。这篇文章从构思到完稿投出,一共经历了15个年头!肯定能得“最慢论文写作奖”。
本来计划等文章接受了再写这篇博客,炫耀一下;如果被拒绝就悄悄不做声。转念一想,在评审结果出来之前讲这个故事更有悬念。另外这么做也表示我做事是享受过程,并不太在意结果(又开始吹牛,打住!我老婆的话。)
1998年一月,自己开公司一年就把家里的钱花光了,为了养家糊口又回到Eindhoven技术大学兼职搞科研。谈工作计划时,我说我先写本书吧,同时做些非线性系统的辨识方法研究。教授说没问题。书中第五章写预测误差方法的。
预测误差方法(模型)是系统辨识中理论上最成熟、模型精度最高的一类方法。Lennart Ljung就是因为建立了预测误差方法理论,成为系统辨识界最著名学者之一。假设在计算模型参数(参数估计)时能得到全局最优解,那么得到的模型就是无偏(unbiased)的和最小方差的(minimum variance);严格一点说应该是一致的(consistent)和渐近有效的(asymptotically efficient)。在常用的假设条件下,这样的模型精度可以说是最高境界了。
问题就出在全局最优解这个假设上。
大部分预测误差模型结构在计算模型参数(参数估计)时,需要使用数值优化算法。由于这些模型的损失函数是非凸的,使用一般的数值优化算法只能得到局部极小解。寻找预测误差方法的全局最优解,是几十年没有解决的难题。如果得不到全局最优解,预测误差方法的所有优点也就丢失了。在实际应用中,对多变量复杂系统,预测误差方法会因为局部极小或计算不收敛而失败。
数值优化是计算数学或应用数学的一个分支。对于损失函数非凸的优化问题,除了几种非常耗时的方法,至今没有实用的全局解优化方法。研究系统辨识的学者大都不去碰这个问题,可能是认为自己搞不过计算数学家吧。搞辨识的学者典型的研究方法是,先假设某个方法能够得到全局解,然后进行分析和证明。
我研究辨识注重应用,算法的全局最优问题是我多年的一大纠结。我脑后跟总是响着一个声音:“能得到全局最优解多好啊!”我提出的渐近辨识法在这方面下了不少功夫,结果也很好,但理论上还证明不了全局最优。
在写第五章那段时间,各种预测误差方法和模型,还有我的渐近法,在我脑子里跳舞;有一种声音在伴奏:“全局最优!全局最优!。。。”(哪位朋友帮我谱个曲?)
有一天,大概是1998年底、1999年初,某时刻(记不清了,但我经常在淋浴和做饭时产生灵感),突然眼前一亮,我看到了一个全局最优的预测误差方法!
具体想法是这样的。1965年,Steiglitz 和 McBride 提出了一个简单的迭代算法,用来替代(逼近)输出误差 (output error)方法。正规的输出误差方法使用数值优化算法,有局部极小问题。Steiglitz–McBride 方法不是优化方法,一般来说得到的模型精度要差一些。1981年Stoica和 Söderström分析了Steiglitz–McBride方法。得出的结论是,如果系统的输出干扰(噪声)是白噪声,则Steiglitz–McBride 方法是渐近(当时间趋向无穷大时)全局收敛的,但不是有效的(最优的)。由于我看重全局最优问题,所以对这两篇文章很重视,并写在第五章的开头部分。
预测误差模型中最复杂的模型之一是Box和Jenkins1960/1970年代提出的Box-Jenkins模型。由于模型结构复杂,该模型参数估计的优化算法问题就多。当我写到Box-Jenkins模型时就想,如果干扰(噪声)模型已知,就可以用干扰模型的倒数对数据进行滤波,把输出干扰变成白噪声,然后用Steiglitz–McBride方法计算,根据Stoica和 Söderström(1981)的理论,不就得到全局收敛的模型了么?可是干扰模型如何得到?
有了,就用我的渐进法参数估计中的第一步。下面就是这一算法的三个步骤:
1)使用输入输出数据计算一个高阶ARX模型。计算ARX模型使用的是最小二乘法,有解析解,且是全局最优解。
2)使用高阶ARX模型的A(q)多项式对输入输出数据滤波。因为A(q)是干扰模型的倒数,滤波后,输出干扰逼近白噪声。
3)使用滤波后的数据,用Steiglitz–McBride迭代方法计算系统模型。根据Stoica和 Söderström(1981)的理论,Steiglitz–McBride迭代方法渐近全局收敛。
该方法比一般的数值优化方法要简单,因为第三步中的迭代不需求导。
我把算法编程后,用一个简单的例子做仿真研究,将结果与Matlab中的Box-Jenkins方法比较。两个算法精度一样。我很失望,因为我急于打败Matlab的算法(那是Lennart Ljung编的。)失望中,我把这个想法写到记事本上,好等到没有新想法的时候再回来做。当时正是我忙于推销辨识软件的时候,又写书,还在写两篇非线性系统辨识的文章。
现在回头看,因为当时仿真研究中用的例子简单,Matlab的算法能够得到全局最优解,模型精度是最高的。两个算法精度一样,说明我的新算法也是有效的,已经很好了。但当时没有注意到这一点。
转眼到了2010年,我比较闲,就翻出这个算法,准备写一篇文章。当初我没有写文章的另一个原因是我认为算法太简单,怕写出来被人笑话。十多年后的现在,我认定好东西都是简单的。我构造了一个复杂一点的例子,系统阶数高并有震荡。对这个例子Matlab 的算法出现不能全局收敛的结果,而我的新算法仍然全局收敛,因此模型精度高很多。我很开心,终于赢了Matlab.
我写了一篇短文,先投到2011年IFAC大会,后来又作为快速发表的短文,投到一个著名控制期刊。会议的文章接受了;期刊的评审说证明全局收敛数学上不够严格。这是我的老毛病。我修改后又投了出去。审稿人还是觉得数学不够严格,编辑拒绝了我的文章。我本来的想法是把我的算法快速发表,让理论强的同行去做分析工作。没想到这个不懂辨识的编辑家伙就轻易地给拒绝了。这可是全局收敛的辨识算法啊!我大怒,马上发电子邮件表示抗议:“一个控制期刊是要发表有关控制的新思想,还是做数学游戏?请不要让一些伪数学家来毒害我们控制领域!”
(我认为过去这30年欧美控制学术界是越来越数学,做的东西越来越没用。归根到底,控制是技术。要当数学家请到数学系去找工作。)
我把文章和编辑评语发给HH,请他帮我把数学抛光一下,并问他是不是这篇文章的审稿人。大家可能还记得HH就是20年前在Automatica拒绝我渐近法文章的那个家伙。
太长了,未完待续。。。
参考文献
1. Steiglitz K. and L.E. McBride (1965). A technique for the identification of linear systems. IEEE Trans. Automatic Control, Vol. AC-10, pp 461-464.
2. Stoica P. and T. Söderström (1981). The Steiglitz-McBride identification algorithm revisited – convergence analysis and accuracy aspects. IEEE Trans. Automatic Control, Vol.AC-27, pp. 736-738.
3. Zhu, Y.C. (2011). A Box-Jenkins method that is asymptotically globally convergent for open loop data. Proceedings of 17th IFAC World Congress, pp. 9047–9051, Milan, Italy.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-1 14:30
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社