S2 Day 001旅居与慢思考 Life & Reflections约 6 分钟

鲁棒决策:AI 时代,别把下一步押在一次猜对上

Robust decisions: don’t bet the next step on one right guess

最近第一次认真认识了一个词:

鲁棒。

它对应英文里的 robustness,在工程、优化、AI 里都很常见。简单来说,如果一个系统只有在所有条件都符合预期时才能正常工作,现实稍微偏一点就坏了,它就比较脆弱;反过来,如果环境发生变化、信息有误差、原来的假设没有完全成立,它仍然能维持不错的表现,就更“鲁棒”。

后来我发现,这个概念放到日常决策里也很好用。

现实中,我们经常没有足够的信息,却又不得不继续往前走。很容易卡住的地方是:总觉得自己得先搞清楚到底发生了什么,才能决定下一步。

但这两件事,其实不一定要按这个顺序发生。

不一定先猜对,才能行动

比如一个项目做了一段时间,效果一直不好。

可能是方向没有错,只是还需要时间;也可能方向本身就不成立,只是已经投入很多,所以不愿意停下来。

如果一定要先证明哪一个解释是真的,可能还要继续分析很久。但下一步未必要等这个答案。可以先给项目一个明确的小周期,同时提前定义这段时间要验证什么、什么证据出现说明值得继续,以及什么结果仍然没有出现时,就应该缩小或停止投入。

如果最后发现方向是对的,这个动作没有耽误太多;如果方向是错的,也没有继续无限往下押。

这就是一个相对鲁棒的行动。

再比如一个工作机会。

在真正加入以前,很难完全知道团队究竟怎么样、老板是不是合适、JD 里写的决策权是否真的存在。这时候没有必要过早把它判断成“绝佳机会”,也不需要因为几个模糊信号就认定“这里肯定有坑”。

可以继续面试,同时专门验证那些真正会改变决定的问题:为什么招这个人?上一任为什么离开?这个岗位真正能决定什么?资源够不够?成功怎么衡量?

面试本身,也可以成为收集信息的一部分。

我们不一定要先把世界解释清楚,才能决定下一步。

有时候,更有用的是先选一个不太依赖自己猜对的动作。

这背后确实有一套正式的方法

“鲁棒行动”并不是一个标准术语,我只是为了方便理解这样称呼它。更正式的概念包括 Robustness、Robust Optimization,以及 Robust Decision Making。

传统的决策思路很容易是:先预测最可能发生什么,再选择在这个预测下最优的方案。

鲁棒决策更在意另一个问题:

如果现实没有按照预测发展,这个方案还行不行?

它不一定追求在某一种情境下做到最好,而是希望一个方案放进不同的可能情形里,都不会表现得太差。

这也是我觉得它特别适合现实生活的地方。很多时候,我们的困难并不是分析能力不足,而是世界本来就暂时不给答案。

继续想,并不会自动让缺失的信息出现。

一个比较鲁棒的行动,通常有四个特点

1. 不太依赖某一个判断一定正确

可以先问自己:

如果我现在的解释错了,这个动作还合理吗?

如果一个决定只有在自己猜对的情况下才成立,它就比较脆弱。尤其在信息很少的时候,这种决定值得更谨慎一点。

2. 可逆

能不能暂停、回头、调整,或者先做小一点?

信息越少,越应该谨慎对待那些一旦做了就很难撤回的决定。反过来,如果一个动作成本不高,也很容易调整,就没有必要等所有信息都齐全以后才开始。

3. 损失有上限

可逆不代表没有代价。

一个决定理论上可以撤回,但时间、钱和注意力可能已经花掉了。所以还需要知道:如果最后猜错,我最多准备付出什么?

只要这个代价在可承受范围内,行动空间就会大很多。

4. 做完以后,会知道得更多

这是我最喜欢的一条。

一个好的下一步不只是“不出大问题”,最好还能减少之后的不确定性。

做一个 prototype,找几个真实用户,继续一次面试,跑一个小规模 pilot,或者先 dry run。它们的共同点是,不要求你先把问题彻底想明白,但做完以后,你会比现在更接近现实一点。

所以如果要把它压缩成一句话,我会觉得比较理想的鲁棒行动是:

可逆、损失有限,而且还能带来新的信息。

鲁棒不等于保守

这一点很容易混淆。

鲁棒并不是“风险越少越好”,也不是永远选择最安全的方案。有时候一直不行动,反而是一种很脆弱的选择。

一个岗位两周后关闭,因为还没有完全想明白,所以一直不投;一个产品在内部优化半年,却迟迟不让真实用户使用。看起来都很谨慎,但真正重要的未知数始终没有得到验证。

鲁棒真正关心的不是少做事,而是:

不要让整个决定建立在一个自己暂时无法确认的假设上。

所以有些时候,更鲁棒的做法恰恰是尽快行动,只是先把行动做小一点,不要第一次就把全部筹码压进去。

AI 系统其实也在处理同一种问题

再把这个概念放回 AI,就很好理解了。

一个好的 AI 系统不能只考虑:如果模型判断正确,它能做多少事情。还需要考虑另一面:

如果它判断错了,会发生什么?

比如 Coding Agent 不确定一次 database migration 是否安全。比较脆弱的做法,是根据当前判断直接执行;更鲁棒的流程可能是先 inspect schema,生成 migration,dry run,检查 diff,验证影响,到了高风险步骤再让人确认。

这并没有让模型突然变聪明。

它只是没有要求模型必须第一次就判断正确,同时把一次错误可能造成的损失控制住了。

模型对一个问题没有足够把握时也是一样。最好的行为不一定是继续努力生成一个听起来完整的答案,它也可以请求更多信息、明确表达不确定、缩小自己能够确认的范围,或者把决定交还给人。

AI 里还有一个很接近的概念,叫 graceful degradation,优雅降级。

条件越来越差时,好的系统不是突然从“正常”掉到“失控”,而是逐渐收缩自己的能力:有把握时自动完成,不确定时让用户确认,风险较高时只提供建议,超出能力范围时停止。

背后的逻辑其实很朴素:

不要假设自己永远会判断正确。

我现在觉得,“鲁棒”是一个很好用的决策提醒

我们很容易把大量时间花在解释世界。

这个人到底为什么这样?这个项目究竟有没有前途?这个机会到底好不好?现在是不是最佳时机?

有些问题当然值得继续研究,但也有很多时候,证据就是还没有出现。继续分析,并不会让未知的信息突然变成已知。

这时候,可以换一个问题:

如果几个解释现在都还有可能,我下一步做什么,在这些情况下都还算合理?

不一定要一次把事情决定完。可以先保留一点余地,控制最坏损失,拿一点真实反馈,再根据新的信息继续走。

这大概是我目前对“鲁棒决策”最喜欢的理解:

信息不足时,不一定非要先猜对。

先做一个即使猜错,也依然大体成立的选择。