1. 概述

本文我们将探讨“随机性”的概念及其在计算机科学中的应用。

首先,我们会从本体论和认识论的角度来探讨随机性的理论基础。接着,我们会讨论随机生成和随机采样的问题。

在本文结束时,你将理解为何随机性在计算机科学、统计学和密码学中如此重要。

2. 随机性的理论基础

2.1 随机性理论简介

在我们探讨随机性在技术中的应用之前,先介绍其理论基础。随机性的抽象概念在学术上是“模糊定义”的,也就是说,对于“纯粹的随机性”到底意味着什么,学界存在分歧。不过,大家普遍接受“随机现象”和“随机抽样”的概念。

随机性是哲学、混沌理论、概率论、以及近年来的计算机科学、人工智能和量子计算等多个领域共同研究的主题。它的重要性在于许多现实世界的技术,例如密码学和人工群体智能,都依赖它作为其理论基础之一。

随机性还有一个更深层的含义:它与事件结果的先验不可预测性有关。在科学中,随机性的假设防止了将自然界简化为可预测规则集的决定论倾向,我们稍后会更详细地讨论这一点。

2.2 不只是理论

随机性不仅在理论上重要,在科学研究的方法论中也扮演着关键角色。这是因为科学假设的验证需要实证测试,而这又依赖于一种方法来解决样本偏差问题。我们会在后面详细讨论这一点。

然而,关于随机性是否真实存在于现实世界中,还是只是人类知识有限的产物,学界仍存在争议。前者认为随机性是自然界的一种属性,称为“本体论随机性”;后者则认为它是观察者知识状态的反映,称为“认识论随机性”。

我们将在本节中探讨这两种观点。理解了随机性的本体论和认识论基础后,我们就能更好地理解它在实际技术中的应用。

2.3 非决定论的宇宙

关于世界的一个古老观点是:宇宙(kosmos)具有内在的秩序和完美性。这种完美性体现在星体、行星乃至人类生活的数学精确性上。这种观点被称为“决定论”(determinism)。

决定论在科学中曾是非常成功的思路,尤其在20世纪上半叶以前。在物理学中,牛顿利用决定论构建了[宇宙模型],尽管后来被证伪。在牛顿力学中,宇宙就像一个钟表装置,所有组成部分的行为都是确定且可预测的:

universe deterministic

在这个理论下,只要知道宇宙在某一时刻的状态和支配其行为的规则,就能完全预测未来和还原过去。因此可以说,牛顿力学不承认随机性的存在。

在一个牛顿式的宇宙中,一个拥有宇宙状态和规则完全知识的存在(如拉普拉斯妖),对所有目的而言都是全知的。对于这个存在来说,任何掷骰子的结果都是已知的,因此未来没有任何不确定性:

laplace2

2.4 混沌理论与随机性

然而,绝对决定论被混沌理论所否定。混沌理论表明,即使初始状态非常相似,同一个系统的演化路径也可能大相径庭。这被称为“对初始条件的敏感依赖性”。

最著名的例子是“逻辑斯蒂映射”(logistic map):
$$ x_{n+1} = r \cdot x_n \cdot (1 - x_n) $$

这个系统由参数 $ r $ 决定,但除此之外是完全确定的。它的行为根据初始配置(即 $ r $ 的值)而剧烈变化。这就是所谓的“分岔图”(bifurcation diagram):

logistic

对于观察者来说,这个系统的行为可能看起来是随机的。但实际上,它的奇怪行为来源于一个简单的确定性规则。如果我们知道系统的初始状态,就能以完全的精度预测其未来演化:

r343

由此引出了一个观点:一个系统的行为是否显得随机,取决于我们对它的了解程度。对于一个无知的观察者来说,系统可能是随机的;而对于一个知识丰富的观察者来说,同样的系统可能是确定性的。于是,随机性作为观察者知识状态的属性,开始进入科学讨论。

2.5 量子随机性

另一个关于随机性的观点来自量子力学,特别是著名的“双缝实验”。该实验表明,测量一个系统的状态,无论是什么状态或什么系统,都会改变它本身。这反过来会使原本可能成立的预测失效。

由于宇宙本身可能是一个量子系统,这意味着我们要验证任何预测的准确性,就必须对宇宙进行量子测量。而这又会改变宇宙的状态,从而使其预测失效。

那么问题来了:具体某一个测量结果是如何被选中的?

根据“哥本哈根解释”,当进行测量时,所有可能的结果中会随机选择一个,其余结果被丢弃。在这里,随机性作为观察者与系统互动的结果,物理地进入了游戏

2.6 不是一个世界,而是多个世界

另一种观点认为,随机性根本不存在,因为每当一个事件有多个可能结果时,所有的结果都会同时发生。这就是所谓的“埃弗雷特解释”(Everettian interpretation),也称为“多世界解释”。

在该解释中,测量结果的随机选择并不存在。相反,所有可能的测量结果同时发生,但观察者只能感知到其中一个结果。

在这种背景下,随机变量的概率分布可以被解释为“世界概率分布”。形象地说,如果你掷一个骰子,宇宙就会分裂,为每一个可能的结果生成一个副本:

everett

但观察者只能感知到他所处宇宙中的那个结果。

虽然不同的解释对双缝实验的深层含义存在分歧,但它们都同意一点:观察者和观测行为在事件结果中起着根本性作用。这为随机性的“认识论”解释打开了大门,而非“本体论”。

2.7 认识论解释

我们可以沿着这条路径继续,把随机性看作不是宇宙的属性,而是事件与观察者之间关系的属性。如果一个事件的随机性源于观察者,那么随机事件就不能脱离某个特定观察者来描述

两个不同观察者对同一过程结果的随机性判断可能不同。例如:

uncertainty

一个人在屏幕后掷骰子并看到结果,另一个人看不到。如果宇宙允许随机性,那么对于两个观察者来说,这个结果都是随机的。但当第一个观察者看到结果后,它还随机吗?

从第二个观察者的角度看,结果仍然是随机的。但如果他后来知道了结果,那骰子的随机性就消失了:

uncertainty2

因此,合理的解释是:随机性与观察者所拥有的知识有关。随着观察者获得更多关于事件的信息,其随机性可能会减少,甚至消失。

这个例子支持所谓的“认识论随机性”观点。在这种背景下,随机性仅表示观察者对预测或某些测量结果的不确定性,而不具有更深层的本体论意义

2.8 为什么这很重要?

随机性的本体论和认识论基础非常重要。因为许多关键技术,如区块链和加密技术,都需要随机性才能正常运作。正如我们上面所看到的,随机性是否是宇宙的本体属性并不明确,它更可能是观察者状态的反映。

除非宇宙本身是内在随机的,否则我们在开发利用随机性的应用时必须考虑观察者的角色。这是因为在某些上下文中(尤其是加密的对抗性方法中),不同观察者对随机变量未来值的预测能力不同。因此,他们对哪些变量是“随机的”也可能有不同看法。

简而言之,如果随机性不存在,我们就无法用它来构建任何东西。而正如我们所见,随机性是否是宇宙的属性尚不明确。但它可以是一个衡量预测不确定性的良好方式;从这个意义上说,随机性理论在技术发展的理论基础中占有一席之地。

3. 随机序列与随机生成

3.1 序列的随机性

现在我们来讨论生成和采样随机变量的问题。在实践中,这是我们应用随机性理论的两个主要方向。

在这一节中,我们感兴趣的是:当我们面对一个新的数字序列时,如何判断它是否是随机的?

假设有人告诉我们一个数字:

random number

这个数字是随机的吗?它的数字看起来彼此之间没有关联,我们可能会怀疑它是随机的。再让这个人多给几个数字看看:

random number2

无论这个人生成数字的规则是什么,序列中的下一个数字似乎都与之前的相同。这意味着序列中的任意一个数字的信息量都非常有限。

再想象一下,这个人又给了我们一个新序列:

random number3

这个新序列看起来比之前的“更随机”。这是因为,无论对方生成序列的规则是什么,我们都无法仅凭数字本身轻易猜出它

3.2 随机生成

这引出了我们对[随机序列生成]的思考。理想情况下,我们希望一个随机数序列没有任何算法可以预测下一个数字。

但如果我们使用任何算法来生成一个数字序列,那么这个算法就可以用来计算序列中的任何元素。因此,我们无法通过算法生成真正的随机数

因此,我们能做的最好就是使用一些算法,使得重构我们使用的生成过程变得特别复杂或代价高昂。这些算法被称为“伪随机数生成器”,因为它们不使用真正的随机性,而是使用近似。

3.3 伪随机生成:中方法

伪随机数的生成一直是数学家关注的问题,比如冯·诺依曼。他提出了“中方法”(Middle Square Method),可以生成任意长度的伪随机数序列。

该方法包括:将一个起始数字(称为“种子”)平方,然后提取中间的几位数字作为下一个数字。然后对这个新数字重复同样的操作。

以下是一些种子对应的前几个生成结果:

Seed x₁ x₂ x₃ x₄ x₅ x₆
11 12 14 19 36 29 84
1234 5227 3215 3362 3030 1809 2724
1000 0000 0000 0000 0000 0000 0000
987654 460423 989338 789678 591343 686543 341290

但这种方法存在一个严重问题:如果序列中某个数字的中间位是0,它将一直保持为0。例如,种子为1000时,序列很快收敛到0,使得该算法在该种子下无效。

其他伪随机生成器也存在问题。例如,Dual_EC_DRBG 曾因可预测性引发争议,后来被证明存在漏洞,最终被市场淘汰。

这意味着我们选择的生成方法很重要。如果不小心,可能会得到一些毫无意义的序列。正如克努斯(Dr. Knuth)所说:“生成随机数不应该用随机的方法,而应该使用理论。”

4. 随机采样

4.1 随机采样与统计

随机性还帮助我们通过小样本研究总体特征,避免因偏见而犯错。如果我们对一个大数据集进行随机采样,随着样本大小的增加,样本的统计特征会趋近于总体:

random sampling1

这适用于所有统计量和总体。但前提是样本必须是随机选取的,否则该规则不适用。

4.2 非随机采样

我们可以看看不随机采样的后果。一般而言,非随机采样会导致样本统计量出现严重偏差。

例如,我们随意选择离中位数最近的10个观测值来计算统计量:

random sampling2

可以看到结果明显不同。这不是偶然:非随机选择的样本会导致结果失真,失去对总体的代表性

4.3 随机变量的分布

现在我们来讨论随机变量的分布形状。有些形状特别直观。例如,如果我们从均匀分布 (0, 1) 中随机采样 $ x $(样本大小为1000),那么 $ x $ 也是均匀分布的:

uniform

除了随机波动,每个子区间中的样本数量大致相等。我们也可以从正态分布中采样,结果也会是正态分布:

sampling normal

一般来说,从分布 $ D $ 中随机采样的变量 $ x $,其分布形状与 $ D $ 相同。

4.4 随机变量的组合

但这个规则不适用于多个变量及其线性组合。我们可以用实验验证这一点。假设 $ x $ 和 $ y $ 是从均匀分布中采样的随机变量,我们可以研究它们的和 $ x + y $:

xy

令人惊讶的是,它们的和不再是均匀分布,而是呈现出一个非常特殊的形状。再加入一个从均匀分布中采样的变量 $ z $:

xyz

形状变得更加明显。最后,我们加入100个从均匀分布中采样的变量 $ x_1, x_2, ..., x_{100} $:

sampling 100

现在这个形状更加清晰,看起来就像正态分布。

4.5 中心极限定理

我们可以用数学形式化上面的观察结果,这就是著名的中心极限定理(Central Limit Theorem)。

该定理指出:随着我们考虑的随机变量数量增加,无论它们的原始分布是什么形状,它们的和会趋向于正态分布

用数学符号表示如下:

如果 $ \overline{x}_i $ 表示变量 $ x_i $ 的平均值,$ \mu $ 和 $ \sigma $ 分别表示原始分布的均值和标准差,则所有 $ x $ 的和的分布 $ N $ 可以表示为:

$$ \lim_{n \to \infty}\frac{\overline{x}_{n} - \mu}{\sigma / \sqrt{n}} = \mathcal{N}(\mu, \sigma^2) $$

其中 $ \mathcal{N}(\mu, \sigma^2) $ 是正态分布。

4.6 中心极限定理的应用

我们可以通过一个实际例子来理解这个定理的重要性。假设我们掷两个骰子 $ d_1 $ 和 $ d_2 $,并求它们的和。我们可能会认为,由于每个骰子在 [1, 6] 上是均匀分布的,它们的和在 [2, 12] 上也应该是均匀分布的。

但实际分布如下:

1 2 3 4 5 6
1 2 3 4 5 6 7
2 3 4 5 6 7 8
3 4 5 6 7 8 9
4 5 6 7 8 9 10
5 6 7 8 9 10 11
6 7 8 9 10 11 12

用图表表示如下:

2dice

可以看出,正态分布的形状在仅两个骰子的和中就已经开始显现。如果我们掷更多骰子,中心极限定理告诉我们,正态分布的形状将更加明显。

5. 总结

在本文中,我们首先从本体论和认识论的角度探讨了随机性的基础。

然后,我们研究了随机生成和随机采样在计算机科学中的实际应用差异。

最后,我们学习了中心极限定理,并通过掷骰子的例子理解了它在统计学中的重要作用。

理解随机性不仅是理论问题,更是许多现代技术的基础。掌握它,有助于我们在开发安全系统、人工智能模型或数据分析工具时做出更明智的设计决策。


原始标题:Understanding Randomness