复杂系统建模:为什么你永远算不准真实世界的变化?
上周跟做城市交通规划的发小喝酒,他对着烤串骂了半小时。说他们单位去年中标一个千万级的项目,给新一线城市做全城拥堵预测模型,团队三十多个人熬了一年,调了上万个参数,结果上个月一场突如其来的暴雨,模型直接输出了“全城畅通”的结论,把甲方脸都气绿了。
不是他们不努力。是他们用错了思路。
野外蚁群筑坝涌现行为实拍
这种涌现你根本没办法用拆零件的方法算出来。你把每个蚂蚁的基因都测一遍,也算不出来整个蚁群能在洪水到来的时候堆成蚁球漂流,也算不出来它们能把巢穴建成自带通风系统的地下城市。
很多人犯的错,就是把复杂系统拆成一个个孤立的部分,算完加总,就觉得拿到了结果。就像我发小做的那个拥堵模型,每个路口的参数都对,可他没算到,一个路口剐蹭就堵三公里,后面无数司机改道,又会引发十个新的拥堵,这种连锁反应,哪里是拆完单个路口加得出来的?
说实话,我见过太多科研项目、商业项目,死都死在这一点上。拿线性的刀,砍复杂系统的柴,越砍越乱。
多智能体城市交通拥堵建模可视化图
这几年火得一塌糊涂的大模型,说穿了其实也是一种复杂系统建模。你想,千亿级的参数,每个参数只做简单的加权计算,相互作用之后,居然能涌现出推理、创作的能力,这不就是复杂系统建模最典型的成果吗?
当然,也不是说所有复杂问题都得堆大参数。核心思路没变:抓个体的行为规则,放低对每个细节精确性的要求,等整体的涌现结果出来。你会发现,反而比你抠每个细节准得多。
我那个发小后来找我们学校做复杂系统的教授帮忙,重新改了模型,把原来上万个路口的固定参数换成了司机改道的行为规则,跑出来的结果,准确率一下提了七成多。成本还降了一半。
别把复杂系统建模只当成科研工具
很多人觉得,复杂系统建模是专家学者才玩的东西,跟我们普通人没关系。真不是。
我们每个人每天都在给自己的人生建模。你做职业规划,你做创业打算,你安排自己的时间,本质都是在建模,预测未来的结果。
可大部分人用的还是线性思路:我今年考个证,明年升主管,后年年薪五十万,一步一步来,肯定能成。
哪有这么简单?你的职业发展是复杂系统啊,行业变化、同事关系、公司战略、突发的机遇,所有这些因素都在互相影响,一个变量变了,整个结果全变了。多少人十年前算好的职业生涯,被一个突如其来的行业变革直接冲没了?
对吧?
用复杂系统建模的思路来看,你不需要把每一步都算得清清楚楚,你只需要找对自己的核心行为规则,然后留足试错空间,让系统自己进化。
比如你想做自媒体,不用算好“这条涨1000粉,那条涨5000粉”,你只需要定好“每条内容都给用户提供真实价值”这个核心规则,不停发,不停调整,跑着跑着,自然就涨粉了。那些一开始就算好每一步的,大多死在半路。
说实话,这个思路比你挣多少钱都有用。我们这个世界本质就是个巨大的复杂系统,没人能预测一切,你越想控制每个细节,越容易失控。承认不确定性,抓核心规则,给系统留够冗余,反而能拿到你想要的结果。
那天喝酒最后,发小醉醺醺说,原来搞了十几年建模,才懂最对的思路就是别想着控制一切。我举双手赞成。
别拿线性逻辑切复杂系统的蛋糕
我们上学时候学的建模,大多是线性的。给你一个问题,拆成几个模块,每个模块算出系数,加起来就是结果。这种思路对付简单系统没问题,算个桥梁承重,算个火箭轨道,都准。 放到复杂系统里,直接歇菜。 什么是复杂系统?说白了就是由大量个体组成,个体之间不停发生非线性相互作用的系统。小到蚁群、人脑神经网络,大到城市交通、市场经济、气候变化,全都是。 每个个体的行为都很简单,可凑到一起,就会冒出单个个体根本没有的整体性质——也就是我们常说的涌现。
野外蚁群筑坝涌现行为实拍
这种涌现你根本没办法用拆零件的方法算出来。你把每个蚂蚁的基因都测一遍,也算不出来整个蚁群能在洪水到来的时候堆成蚁球漂流,也算不出来它们能把巢穴建成自带通风系统的地下城市。
很多人犯的错,就是把复杂系统拆成一个个孤立的部分,算完加总,就觉得拿到了结果。就像我发小做的那个拥堵模型,每个路口的参数都对,可他没算到,一个路口剐蹭就堵三公里,后面无数司机改道,又会引发十个新的拥堵,这种连锁反应,哪里是拆完单个路口加得出来的?
说实话,我见过太多科研项目、商业项目,死都死在这一点上。拿线性的刀,砍复杂系统的柴,越砍越乱。
现在的复杂系统建模,核心是找规则不抠参数
不过话说回来,最近十年复杂系统建模的进步真的很大。早就不是当年堆参数的老路子了。 现在主流的思路,反过来了。我不给每个个体抠精确参数,我给每个个体定简单的行为规则,然后让整个系统跑起来,自己出结果。最典型的就是多智能体复杂系统建模,现在做气候预测、疫情传播、城市规划都在用。 疫情刚暴发那会,我看过一个国内团队的研究,他们用多智能体模型,把每个城市的人当成不同的智能体,定了“密接就会被感染”“出门戴口罩感染率降八成”这种简单规则,放进去跑出来的全国感染规模,比当时很多堆了海量临床数据的传统模型准得多。
多智能体城市交通拥堵建模可视化图
这几年火得一塌糊涂的大模型,说穿了其实也是一种复杂系统建模。你想,千亿级的参数,每个参数只做简单的加权计算,相互作用之后,居然能涌现出推理、创作的能力,这不就是复杂系统建模最典型的成果吗?
当然,也不是说所有复杂问题都得堆大参数。核心思路没变:抓个体的行为规则,放低对每个细节精确性的要求,等整体的涌现结果出来。你会发现,反而比你抠每个细节准得多。
我那个发小后来找我们学校做复杂系统的教授帮忙,重新改了模型,把原来上万个路口的固定参数换成了司机改道的行为规则,跑出来的结果,准确率一下提了七成多。成本还降了一半。
别把复杂系统建模只当成科研工具
别把复杂系统建模只当成科研工具
很多人觉得,复杂系统建模是专家学者才玩的东西,跟我们普通人没关系。真不是。
我们每个人每天都在给自己的人生建模。你做职业规划,你做创业打算,你安排自己的时间,本质都是在建模,预测未来的结果。
可大部分人用的还是线性思路:我今年考个证,明年升主管,后年年薪五十万,一步一步来,肯定能成。
哪有这么简单?你的职业发展是复杂系统啊,行业变化、同事关系、公司战略、突发的机遇,所有这些因素都在互相影响,一个变量变了,整个结果全变了。多少人十年前算好的职业生涯,被一个突如其来的行业变革直接冲没了?
对吧?
用复杂系统建模的思路来看,你不需要把每一步都算得清清楚楚,你只需要找对自己的核心行为规则,然后留足试错空间,让系统自己进化。
比如你想做自媒体,不用算好“这条涨1000粉,那条涨5000粉”,你只需要定好“每条内容都给用户提供真实价值”这个核心规则,不停发,不停调整,跑着跑着,自然就涨粉了。那些一开始就算好每一步的,大多死在半路。
说实话,这个思路比你挣多少钱都有用。我们这个世界本质就是个巨大的复杂系统,没人能预测一切,你越想控制每个细节,越容易失控。承认不确定性,抓核心规则,给系统留够冗余,反而能拿到你想要的结果。
那天喝酒最后,发小醉醺醺说,原来搞了十几年建模,才懂最对的思路就是别想着控制一切。我举双手赞成。