交互版 · 改编自作者 2014 年的同名旧文 · 读原文

问题解析的极限

朋友讲过一个 RPG 外挂的做法:它不读游戏的内存,不懂伤害公式,只盯着屏幕上的一个像素。这个像素从红变灰,它就按下加血。

它没有试图弄懂整个游戏。这篇讲的就是这件事:解析可以没有尽头,但我们得带着结果回来。

上下移动指针(手机上点一下,或拖右边的 ↕ 手柄)。每往下解析一层,答案多一层,新冒出的问题多一倍。

要点

5 条
  • 解析可以没有尽头:每往下一层,答案更多,新问题多一倍,所以必须给它划边界。
  • 只盯血条上一个像素的游戏外挂说明:一小块有边界的理解,就能接管一个小循环;出了边界,它就失灵。
  • 从「它长什么样」问到「每个变量为何这样变」(Jeff Leek 的六种类型),每一层都更贵。
  • 观测点从 12 个加到 9,000 个,误差能缩小大约 27 倍;可预报却只从大约 7.4 天挪到 11.1 天——多出来的数据,换不来成比例的确定性。
  • 解析的第一原则:带有限的结果回来。

相关交互文章:问题解决与设计 · 设计中的设计

01 · 一个像素

外挂只看一个点

侦测 HP 条上某一点的颜色。颜色从红变灰,说明血量掉到了某条线以下,自动输入加血;反方向变化,什么也不做。

游戏的内部逻辑是个黑匣子。但为了让人能玩,它必须给人留下输入和输出的接口。外挂就接在这两个接口上:抓住一小块输出,配一条简单明确的逻辑,替人的眼、脑、手接管这一小段流程。

观察血条,试试重击能否越过探针。

游戏内部 · 外挂一个也不读
外挂读到的全部信息
#E2384D
红
若 这一点 红 → 不是红    按下 加血否则    什么也不做
50%
坚持
0:00
倒下
0
用药
0
药效溢出
0

它的野心没有大到把系统内部的逻辑全部破解,只把握住一点输出。可这一点已经够用,人就能从这一小块简单的流程里解放出来,将能力发挥到更复杂更有意思的东西上面。这简直就是模块化思想的范本。

试试“让角色中毒”:血条变成绿色,外挂只认识红和灰,再也等不到“红变灰”的那一刻。它的那一点理解,只在它的边界之内成立。(中毒这一段是交互版补的。)

02 · 看得多深

从描述,到机制

数据科学里,对数据的分析可以按目的分成几种,难度也不一样。最简单的是描述:目标只是把看到的数据讲清楚。最难的是机制:充分理解产生这些数据的系统里,每一个个体究竟发生了哪些变量的变化,而这些变化又究竟造成了哪些其他变化。

拿一只梨来说。从上往下点,看要回答的问题怎样变深,需要的东西怎样变多。

小字看不清时可放大,再左右滑动查看。

    原文只举了两端:描述只要我记下梨的形状、颜色、大小;机制要我弄清它为什么是这样的形状、颜色、大小,三者之间又有什么关系。然后还有一个问题:换一只梨,我们建立的模型还对吗?

    六种类型来自 Coursera 课程 The Data Scientist’s Toolbox(Jeff Leek)的讲义 Types of Questions。中间四级的梨子例子和机制图里的变量是交互版补的,只为示意,不是植物学结论。

    03 · 飓风与蝴蝶

    信息永远不够

    理想状态下我们希望能够得到机制级别的结果:希望能从一次飓风中清晰地、精确地捕捉到一只蝴蝶的飞舞。可现实是,我们所能掌握的信息永远是极为不足的。

    下面是两个一模一样的世界,只差一件事:其中一个世界里,有只蝴蝶扇了一下翅膀。

    观测点

    示意,不是天气预报:飓风的路线由 Lorenz(1963)的三变量对流模型驱动(σ=10,ρ=28,β=8/3,固定步长 RK4,每台设备算出的结果完全相同)。模型里的 x 落在哪个“瓣”上,被当作把飓风推向南边还是北边的引导形势;1 个模型时间单位画成 1 天,只为示意。这个系统的最大 Lyapunov 指数约为 0.906,差距平均每 0.77 天左右翻一倍。真实大气里,小尺度的误差还会一层层传到大尺度,Lorenz(1969)据此认为,逐日天气的可预报性大约有两周的上限。蝴蝶也不是飓风登陆的“原因”:Lorenz 1972 年那场演讲的题目本身就是一个问句——《可预报性:巴西一只蝴蝶扇动翅膀,会在得克萨斯引起龙卷风吗?》

    即使到了现在这个数据产量超大的时代又怎样呢?数据倒是多起来了,从中提取信息的难度也变大了。在这个模型里,观测点从 12 个加到 9 000 个,误差缩小约 27 倍,可预报的时间却只从约 7.4 天延长到约 11.1 天,多出 3.7 天:误差每缩小到原来的 1/e(约 1/2.7),只多换来约 1.1 天。把蝴蝶那一点差别测出来,12 个观测点要等到第 9.2 天,9 000 个也要第 6.1 天;而两场飓风在第 14.5 天左右分道扬镳。这种时候,一定要控制住自己的贪欲,步步为营。

    04 · 带回来

    够用了,就回来

    有时衡量过投入产出,一个问题研究到某个深度和广度就已经满足需要了,就像那个外挂。这时,更应该把剩下的资源用在别的刀口上。

    下面三个问题共用一份时间和精力。每一列从上往下,是上一节的六级分析。点一格,决定这个问题解析到哪一层。

    格子里的横条:解析到这一层,能多带回来多少用处。右下角的数字:这一层要花的时间和精力。

    时间和精力 · 用了 0 / 100
    带回来的用处
    0
    同一份预算,最多
    0

    想要较好地解析一个问题系统,当然需要「打破沙锅问到底」的集中力和恒心。但我们要一直提醒自己:在粗糙的现实之中,要解决的问题必须得有一个边界,这个边界让我们不至于在深挖隧道的过程中失去回来的路径。

    解析的第一原则,
    便是要带有限的结果回来。

    这是我们不得不面对的一个极限。