有个问题,我一直被问了20年:你建的是机理模型还是数据模型?其实,早在20年前,我就给出了答案:工业现场往往没有纯粹的机理模型、也没有纯粹的数据模型,而是两者的融合;差别只是比重的不同。
我发现经常有人过度强调数据算法。在工业大数据大赛结束后的发言中,我强调说:不要急着搞算法、不要急着搞算法、不要急着搞算法。意思是:先去研究一下业务相关的知识。
今天突然意识到,这个说法或许需要深化:算法和机理的侧重点,随着项目、要求和进度的变化而变化。
在许多公开的文章或报道中,作者往往强调算法的重要性。我过去总是对这种说法嗤之以鼻。但平心而论,也有部分项目是靠着算法赢得成功的。但这种做法存在两种问题:1、过度依靠算法的模型往往可靠度低,不能用在可靠度要求高的场景。2、这种成功比较依赖于运气。形象地说,在工业领域,单纯依靠算法成功,就像在山里捡了一块狗头金,可遇不可求。
所以,我现在的观点是:强烈依靠算法的建模方法也可能成功,但概率低、不确定性强,往往只能做要求简单的事情。所以,如果用户要求不高,不妨先找几个算法试试。但是,随着对模型可靠度要求的提升、建模工作必须深化,机理介入的深度会逐步加深。这就好比要从靠运气“捡”金子,发展到挖矿、乃至用现代技术冶炼黄金。
理论深入的方向,似乎可以沿着“降低不确定性”的方向发展。
我有个经验:数据建模师,数据基础非常重要。如果数据基础不好,再好的算法都没有用处。这就好比,在没有金子的砂子里,再先进的冶炼方法都没用。
而现在很多人的做法是:先用算法试试看;如果不理想就更换算法。这其实是用算法本身测试数据基础。这种做法的问题是:遇到困难时,人们往往不甘心失败,可能会在算法上花费大量的无用功。所以,需要研究的一个理论问题是:如何事先分析判断数据基础能否满足分析要求。如果条件不理解,可以尽快放弃或者改变目标,避免时间浪费。这是典型的数学思维:先证明解的存在性,再设法求解。
在此基础上,理论的发展方向应该是提高模型的可靠性,而不一定是精度。我认为:数据质量不好时,模型精度和可靠性并不等价。在多数情况下,提高模型精度容易,提高可靠性难。如果模型精度高而可靠性低,往往是今天的模型在明天就不能用了。所以,单纯追求精度,往往不利于实际应用。
在分析深化的过程中,要做两件事:数据理解和业务理解。这个过程,就像英语水平不高的人,去读一本翻译不好的英文版《红楼梦》:需要花精力把英语的意思搞清楚,又需要把通过英文去把握人的内心世界。其中,工业现场的数据总是存在各种问题,这就像英文翻译者的水平也不高。
当人们通过算法来理解数据,往往更需要算法知识;通过算法理解业务时,建模往往需要更多的业务知识。两种知识必须融合在一起,才能得到好的分析结果。这就好比,我们必须通过英文来理解中国人贾宝玉,而我们又用对中国文化的理解去分析判断英文的含义。
当业务对模型的可靠度要求越高,这个过程越是漫长、对业务知识的要求也就越高。
相关阅读
浅谈遗传算法的PID调节器参数整定
如何解决简单算法好用却不容易用好的矛盾