研究团队还借鉴了「信息论之父」 Claude Shannon 1953 的一项重要工作《The Lattice Theory of Information》的一些理论。该论文将他早期关于信息论中熵和信道容量的概念,与数学中的格理论联系起来,为理解和处理复杂信息系统提供了新的视角。
这项研究激发了社区对蒸馏、量化、模型安全等方面的思考。
两种「记忆」:非预期记忆和泛化
在论文中,作者希望找到一个方法来量化模型对特定数据点的记忆程度,并且这种记忆定义要满足以下几点:
与泛化区分开;
能够针对具体的数据样本;
不依赖于具体的训练算法;
统计学视角下的记忆定义
作者从信息论的角度出发,利用「互信息(Mutual Information)」来定义记忆。
在论文中,大写字母(例如 X、Θ)用来指代随机变量,小写字母用来指代随机变量的实例(例如 x X 和 θ Θ)。
信息论已经为随机变量发展出了被广泛理解的信息概念。对于随机变量 X,通常使用 H (X),即 X 的熵,来定义 X 中存在的信息量。此外,对于两个不同的随机变量 X、Y,可以将 X | Y 定义为在固定 Y 后 X 中剩余的不确定性。定义了这个量之后,现在可以通过从总信息中减去剩余信息来测量 X 和 Y 之间的互信息:I (X, Y) = H (X) H (X | Y)。
现在假设有一个机器学习 pipeline。作者有一个关于底层模型的先验 Θ,它捕获了作者的数据集分布 X。作者有一个学习算法 L,它将来自 X 的样本映射到训练好的模型
。为了理解有多少关于 X 的信息存储在
中,作者可以使用互信息的概念:
注意这捕获了存储在
中的关于 X 的所有信息。正如前面所讨论的,记忆的概念需要同时考虑泛化。因此,当测量非预期记忆时,作者只对 X | Θ 中存在的信息感兴趣,这是在固定 Θ 后 X 中剩余的不确定性。
到目前为止,论文对记忆和泛化的定义使用的是基于「熵」的信息概念。这意味着该定义只能用于随机变量。这在测量记忆方面带来了很大挑战。在记忆定义中,所有的变量都是单例。作者有一个单一的底层模型 θ,作者有一个单一的数据集 x = (x_1, . . . , x_n),作者有一个单一的训练模型
。使用单个样本测量底层变量的熵(更不用说条件熵)是不可能的。
为此,论文转向另一种基于压缩的信息概念,然后展示这种概念如何密切近似上面定义的记忆概念。Kolmogorov 复杂度将字符串 x 的信息内容定义为 H^K (x),即 x 在给定计算模型中的最短表示长度。类似地,作者可以将剩余信息 x | θ 定义为当作者有 θ 作为参考时 x 的最短表示。而 x | θ 的信息内容,记为 H^K (x | θ),是这种描述的长度。然后,作者可以用类似的方式定义互信息:
定义 2(Kolmogorov 复杂度)。设 f 是一个任意的计算模型,它接受一组输入并返回一个输出(例如通用图灵机)。相对于计算模型 f 的 x 的最短描述定义为
。同样,x 相对于另一个字符串 θ 的 Kolmogorov 复杂度定义为
。论文通过
定义 x 和 θ 之间的 Kolmogorov 互信息。假设输入是比特串,|p | 是输入的比特长度。