首页/文章/ 详情

算法骗局与幸存者偏差

1年前浏览215


20多年前,我博士毕业后来到宝钢。有位前辈对我讲:你是学先进控制的(最优控制、鲁棒控制等),应该尽量把这些技术用在钢铁行业。后来我逐步意识到:在企业里,按照这种思路走下去,成功是小概率事件。

 

我们知道:企业里做创新一定要有价值。找到值得做的创新问题已经不容易了,为什么一定要用你学的算法?如果把取得了创新成果比作打到一只兔子“,而正好用到你所擅长的方法就好比”一枪打中两只兔子“。所以,成功的概率会大大降低。

 

但是,学术界总是有这样的潜意识:“因为我懂某种技术,所以能解决特定问题“。这种认识是一种典型的”幸存者偏差“:写论文的时候,只有用了高级算法才容易发表。于是,从论文的角度看,解决问题都用了高级算法。但现实的实践却往往告诉我们:解决问题往往用简单的算法。

 

我并不否认科技进步对技术的推动作用。这种推动作用往往体现在工具层面:计算机性能不断提升、网络传输能力不断加强、平台和工具不断产生。这些基础的改善,使得我们可以用简单、方便的办法,去做过去很难做成的事情。

 

众多论文里,强调的是解决问题的“核心算法“。在现实中,确实有些算法特别重要。但论文中写的那些算法,却往往不重要。论文中的东西,往往是”露水平、不露关键“,甚至是”虚晃一枪“,拿些华而不实的东西来发表:真正有用的东西,有几个人愿意公开啊?

 

按照我的理解,“算法“中真正重要的东西往往包括这样一些内容:

1、     选择输入输出变量:既要抓住关键,又不能特别复杂。

2、     数据的处理方法:该用的数据用,不该用的不用。

3、     结论的应用方法:合适的时候用,不合适的时候不用。

4、     异常处置与特殊处理。保证安全可靠。

 

这些关键问题,往往是个性化很强的。不同的场景,采用的处理方式不一样。所以,“深入实践”是非常重要的。


但从另外一个角度讲,“核心算法“往往不通用。所以,许多获奖项目中提到的所谓“通用核心算法”往往是忽悠人的。但人们往往必须这么做:如果不吹一下,就评不上奖。于是,很多国家级获奖项目,总有“核心通用算法”上的突破。这也是现实中的一种“幸存者偏差".

 

对科技工作者来说,灵活处理问题的能力才是关键。而不是指望死守着某个方法吃一辈子。优秀的工程师,一般知识面比较宽广,知道遇到什么问题选择什么方法;对问题的认识也比较深入,遇到困难和障碍也知道如何变通。这些都是灵活性的体现。


工业软件、尤其是工具性的工业软件特别重要:这是因为,这些软件为解决问题提供了灵活性——让人们方便地利用不同的方法解决个性化问题。

 

要让软件提供灵活性的服务,软件本身却是要相当复杂的:用户用起来越简单、工具的灵活性越好,背后的开发和设计越复杂。复杂性应该是软件、工业软件开发的难点所在。从我的观点看,软件工程的思想和方法,就是为了解决复杂性而提出来的。

 

推进智能制造、工业互联网的时候,要给用户提供极大的灵活性,故而相关工业软件的开发也会变得超级复杂。

 

我昨天看到一些调侃:码农35岁以上,只能去送快递了。这种说法虽然过于夸张,但也点出了一个事实:开发软件是个特别费脑子的事情。我博士毕业的时候,放弃了几个软件编程的高薪offer。一个重要的原因就是觉得自己当时年近30,脑力开始下降了,没法与年轻人竞争。


    殷部长说过:工程问题上的困难往往源自复杂性。换句话说:往往并不体现在某个具体的奇思妙想。所以,每当我听到有人强调某个算法难的时候,就怀疑这人没做过难事。


   然而,我又想起某位高 官:长期从事行政管理工作,却在软件领域靠着“透明计算”获得十年一见的国家自然科学一等奖。据说,爱因斯坦的智商高达160、达芬奇的智商有230;这位官员的智商至少应该有250吧?当然,这么高的智商,也应该是中国科技界特殊的“幸存者偏差”所致。


对我们资历普通的人,不要指望自己的智商也有这么高。我们能做的,就是规规矩矩地做事,“复杂问题简单化、模糊问题清晰化”,把复杂和困难的问题,变成我们的智商能想得明白的工作。

来源:蝈蝈创新随笔
通用控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-07-22
最近编辑:1年前
蝈蝈创新随笔
只是把思考的日志搬运,不当之处...
获赞 93粉丝 15文章 1159课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈