上一篇我们说到,所罗门诺夫归纳将奥卡姆剃刀和贝叶斯法则结合,用「生成数据的程序长度」来衡量规律的强弱。程序越短,规律越美。
但这里藏着一个追问:对于一个确定的对象,它到底包含了多少无法被压缩的、绝对的「信息量」?
今天这篇,我们走进算法信息论的基石——柯尔莫哥洛夫复杂性。它不仅回答了「什么是绝对信息」,更从根本上划清了「规律」和「随机」的数学边界。
第一章:三个人,同一个发现

图1:信息的海洋中,数学家们正在寻找那根衡量绝对真理的标尺。
1960年代,三位数学家几乎同时、彼此独立地撞上了同一个洞见。
美国的雷·所罗门诺夫关心的是如何预测未来,苏联的安德烈·柯尔莫哥洛夫关心的是概率论的基础,美国的格里高利·蔡廷在思考哥德尔不完备定理的推广。三条完全不同的路,通向了同一个终点。
他们都意识到:既然一切可计算的规律都能用代码表示,那衡量一个事物复杂程度的最佳方式,就是看生成它需要多长的代码。
第二章:什么是绝对的信息?

图2:无论外观多么庞大,事物的本质往往被压缩在一粒微小的种子里。
我们日常会说某个问题「很复杂」、某个规律「很简单」。但数学不能容忍模糊。
柯尔莫哥洛夫复杂性:一个对象的复杂性,是在通用图灵机上能够生成该对象的最短程序的长度。可以想象成用最精简的代码将一个文件完美无损压缩后,那个压缩包的体积。
设 $x$ 是一个二进制字符串,$U$ 是一个通用图灵机,那么 $x$ 的柯尔莫哥洛夫复杂性 $K(x)$ 定义为:
$$ K(x) = \min_{p} { L(p) \mid U(p) = x } $$
$L(p)$ 是程序 $p$ 的二进制比特长度。这个定义抛弃了所有主观解释,直接用理论计算机科学最底层的机制给出了信息的绝对度量。
第三章:规律、结构与纯粹的随机

图3:在一面是整齐齿轮、另一面是混沌风暴的镜子前,程序长度映照出了它们的本质。
柯尔莫哥洛夫复杂性最精彩的贡献,是精确区分了「规律性」和「随机性」。
试想两个长度都是100万位的二进制字符串。
第一个是 0101010101... 重复50万次。第二个是你掷硬币100万次记录的真实结果。
从物理长度上看,完全一样,都是100万比特。但从算法信息的角度看,天差地别。
第一个字符串,哪怕它长达一亿位,柯尔莫哥洛夫复杂性也非常小。一行程序就够了,print("01" * 500000)。高度的规律性意味着极强的可压缩性。
第二个呢?由于不存在任何结构或模式,你找不到比它本身更短的程序来生成它。只能硬编码,print("011000101..."),把所有随机结果原封不动写进去。绝对的随机意味着不可压缩。
$$ K(x) \approx L(x) $$
这是一个极其深刻的洞察。随机性不是一种玄学状态,随机性就是「缺乏更短的算法描述」。当你无法压缩一段信息的时候,它就是随机的。
第四章:不变性定理——客观的尺度

图4:不论使用哪种语言的尺子,丈量出的信息本质之差永远不会超过一个固定的常数。
你可能已经发现了一个尖锐的问题:既然复杂性取决于「程序长度」,但不同编程语言的代码长度肯定不一样啊。同样是打印一句话,Python 可能一行搞定,C++ 可能要十行。这难道不说明复杂性是相对的吗?
柯尔莫哥洛夫想到了这一点,并给出了算法信息论中最重要的定理——不变性定理。
定理证明:尽管 $K(x)$ 的具体数值取决于你选择的通用图灵机(编程语言),但对于任意两个通用图灵机 $U_1$ 和 $U_2$,它们计算出的复杂性之差永远受一个常数 $c$ 约束,而且这个常数与输入字符串 $x$ 完全无关。
$$ | K_{U_1}(x) - K_{U_2}(x) | \le c $$
原因很直观:$U_1$ 和 $U_2$ 都是通用的,它们可以互相模拟。常数 $c$ 就是「在 $U_1$ 中编写一个 $U_2$ 的解释器」所需的代码长度。解释器写好之后就能处理任意长的输入,所以当你处理庞大的数据集时,这个固定常数就变得微不足道了。
这一发现确立了算法信息论的绝对客观地位。无论智能的物理载体是碳基神经元还是硅基晶体管,衡量信息和规律的底层尺度是一致的。
第五章:与香农熵的对话

图5:宏观的概率波浪与微观的代码齿轮,它们共同驱动着信息的运转。
提到信息量,学过通信工程的人肯定会想到香农(Claude Shannon)的「信息熵」。那香农熵和柯尔莫哥洛夫复杂性是什么关系?
香农熵 $H(X)$ 衡量的是一个概率分布的平均不确定性,它是宏观的、统计的。它关心的是「从某个信息源中产生一条消息的平均代价」。
柯尔莫哥洛夫复杂性 $K(x)$ 衡量的是单个特定对象的绝对信息量,它是微观的、算法的。
一个看森林,一个看树木。但有趣的是,在极限情况下它们奇妙地统一了。对于一个从某种分布中抽取的足够长的典型序列,它的期望算法复杂性趋近于该分布的香农熵。就像热力学中微观粒子动能与宏观温度的统一,充满了物理学般的美感。
结语:理解的本质就是压缩

图6:把纷繁复杂的现实世界压缩成极简的底层代码,这就是智能的真谛。
柯尔莫哥洛夫复杂性告诉我们:如果一段数据是纯粹随机的,我们就不可能真正「理解」它,除了死记硬背别无他法。
反过来,当我们说「理解」了某个事物,其实是我们找到了这个事物的更简短的算法描述。牛顿用 $F=ma$ 压缩了无数星体的运动轨迹,麦克斯韦用四组方程压缩了所有电磁现象。而今天的大语言模型,正在用千亿个权重矩阵压缩人类文明的全部文本。
理解就是压缩。智能就是找到那个最短的程序。
但如果智能等同于信息的算法压缩,那么物理世界、生命和我们的大脑,究竟是在某种物质上偶然涌现的现象,还是宇宙这部宏大计算机运行的必然结果?
下一篇,我们将攀登到哲学的高地,看看「泛计算主义」如何重新定义我们对智能和存在的认知。
本文是《AI 第一性原理》系列的第二篇。上一篇:所罗门诺夫归纳与预测的终极数学
