复杂系统建模:别拿还原论套住真实世界
很多人学建模,第一节课老师教的就是“拆问题”。把大问题切成小块,每个小块解决了拼起来,答案就出来了。
这套方法用了几百年。造飞机,建大桥,发火箭,都没问题。
可碰到真实世界的很多问题,它就失灵了。
不信你去问做城市交通的,问做新药研发的,问做大模型调参的,十个有八个跟你吐槽,明明每个环节都算对了,拼起来结果完全不对。
问题出在哪?你面对的根本不是简单系统,是复杂系统。你得换复杂系统建模的思路来玩。
传统还原论与复杂系统建模逻辑对比图
说实话,这不是谁笨不笨的问题,是我们以前碰到的问题,都没这么复杂。现在不一样了。我们要管上千万人的城市交通,要算上百亿参数大模型的鲁棒性,要预测整个地球的气候变化,哪一个不是牵一发动全身的活?还原论那把刀,切不动这么大的网了。
图神经网络构建城市交通复杂系统建模示意图
不过话说回来,现在行业里吹AI吹得太凶,很多人都没意识到,复杂系统建模才是很多AI落地的核心底座。模型框架不对,你堆再多参数,灌再多数据,出来的结果也是错的。我之前见过一个创业团队,做电商用户增长预测,砸钱搞了个千亿参数大模型,结果预测出来的结果,比原来一个十万行的传统复杂系统模型错得还多。为啥?他们根本没把用户之间的社交裂变非线性效应加进去,把每个用户当成孤立的个体算,怎么可能对?
玩复杂系统建模,最容易踩的几个坑
第一个坑,就是忍不住回到还原论的老路。哪怕你嘴上说我要做复杂系统建模,手还是不自觉把问题切成一块一块,每个块单独调完再拼。白搭。只要你切了,就把要素之间的相互作用切没了,结果肯定不对。
第二个坑,就是追求百分之百的准确。很多甲方上来就要你给个准数,明年的流量是多少,一百年后的温度是多少,不好意思,复杂系统本身就有内在的混沌性,长期预测本来就不可能做到百分百准确。能算出趋势,能算出概率,就已经够用了。非要准数,那是强人所难。
第三个坑,就是过度建模。什么要素都往里面加,生怕漏了什么,结果模型搞得无比复杂,跑一次要一个星期,出来的结果过拟合了,根本没法用。复杂系统建模,核心是抓住核心的相互作用,不是把所有东西都堆进去。对吧?
你别说,我还真见过一个团队,做流行病预测,把什么天气、节假日、甚至社交媒体情绪都加进去了,模型跑出来,拟合历史数据准得离谱,一预测未来,错得离谱。就是踩了过度建模的坑。
现在越来越多的人开始说,二十一世纪是复杂系统的世纪。这话没错。我们解决的问题越来越大,越来越贴近真实世界,真实世界本来就是一张网,不是一堆积木。
你最近要是碰上个怎么算都不对的问题,每个环节都对,拼起来就是错。不妨停下来想想,你面对的,是不是一个复杂系统?
换个思路,可能就通了。
还原论走到头,才想到给复杂系统“画像”
几百年的科学发展,基本都是踩着还原论的肩膀往上走的。把复杂拆成简单,把整体拆成部分,屡试不爽。 直到上个世纪中期,洛伦兹玩天气预报的时候发现,哪怕初始条件差了一丢丢,最终的结果也能差出十万八千里。 蝴蝶效应这个词出来之后,大家才回过神:哦,原来有些系统,根本不能拆。因为系统里的每个要素之间,都有非线性相互作用。1+1不是等于2,也不是等于3,可能等于100,也可能等于0。 我之前听一个中科院的研究员吐槽,早年做渤海生态预测,按还原论拆成温度、盐度、浮游生物、鱼类好几个模块,每个模块都调准了,合起来模拟,结果和实际观测差了快40%。前前后后改了三年,砸进去几百万的调研费,差点把项目搞黄了。 后来换了复杂系统建模的思路,不拆了,把整个生态当成一张网来算,结果准确率一下提上来了。
传统还原论与复杂系统建模逻辑对比图
说实话,这不是谁笨不笨的问题,是我们以前碰到的问题,都没这么复杂。现在不一样了。我们要管上千万人的城市交通,要算上百亿参数大模型的鲁棒性,要预测整个地球的气候变化,哪一个不是牵一发动全身的活?还原论那把刀,切不动这么大的网了。
当下的复杂系统建模,早就不是纸上谈兵了
放在十年前,复杂系统建模还大多是学院里的理论游戏。那时候算力不够,数据也不够,只能推推方程,做做小规模模拟。 现在完全不一样了。大数据攒够了,算力上来了,还结合了机器学习的新方法,复杂系统建模已经开始在各个行业落地了。 最典型的就是生物医药。现在找新药,不再是一个靶点一个靶点试了,直接把整个人体的信号通路当成一个复杂系统来建模,筛选药物的时候直接算药物对整个网络的影响,不光能加快研发速度,还能提前发现很多原来想不到的副作用。 还有现在大火的城市智慧管理。国内很多新一线城市的试点,用复杂系统建模把人、车、路、商圈、地铁全部连成一张网,实时模拟流量演化,提前调整红绿灯配时,高峰时段的拥堵时长平均能降15%以上,真金白银的效果。 大模型也离不开这套东西。你以为现在大模型的涌现能力是凭空来的?上千亿的参数互相作用,本身就是一个复杂系统,很多团队做预训练优化,核心就是给这个复杂系统建好模,找到最稳定的训练路径。
图神经网络构建城市交通复杂系统建模示意图
不过话说回来,现在行业里吹AI吹得太凶,很多人都没意识到,复杂系统建模才是很多AI落地的核心底座。模型框架不对,你堆再多参数,灌再多数据,出来的结果也是错的。我之前见过一个创业团队,做电商用户增长预测,砸钱搞了个千亿参数大模型,结果预测出来的结果,比原来一个十万行的传统复杂系统模型错得还多。为啥?他们根本没把用户之间的社交裂变非线性效应加进去,把每个用户当成孤立的个体算,怎么可能对?
玩复杂系统建模,最容易踩的几个坑
玩复杂系统建模,最容易踩的几个坑
第一个坑,就是忍不住回到还原论的老路。哪怕你嘴上说我要做复杂系统建模,手还是不自觉把问题切成一块一块,每个块单独调完再拼。白搭。只要你切了,就把要素之间的相互作用切没了,结果肯定不对。
第二个坑,就是追求百分之百的准确。很多甲方上来就要你给个准数,明年的流量是多少,一百年后的温度是多少,不好意思,复杂系统本身就有内在的混沌性,长期预测本来就不可能做到百分百准确。能算出趋势,能算出概率,就已经够用了。非要准数,那是强人所难。
第三个坑,就是过度建模。什么要素都往里面加,生怕漏了什么,结果模型搞得无比复杂,跑一次要一个星期,出来的结果过拟合了,根本没法用。复杂系统建模,核心是抓住核心的相互作用,不是把所有东西都堆进去。对吧?
你别说,我还真见过一个团队,做流行病预测,把什么天气、节假日、甚至社交媒体情绪都加进去了,模型跑出来,拟合历史数据准得离谱,一预测未来,错得离谱。就是踩了过度建模的坑。
现在越来越多的人开始说,二十一世纪是复杂系统的世纪。这话没错。我们解决的问题越来越大,越来越贴近真实世界,真实世界本来就是一张网,不是一堆积木。
你最近要是碰上个怎么算都不对的问题,每个环节都对,拼起来就是错。不妨停下来想想,你面对的,是不是一个复杂系统?
换个思路,可能就通了。