Does Learning Require Memorization? A Short Tale about a Long Tail

Feldman V. Does learning require memorization? a short tale about a long tail. In Proceedings of the 52nd Annual ACM SIGACT Symposium on Theory of Computing, 2020.

理论分析了神经网络记忆 atypical (占比很少的类, 长尾部分) 样本的必要性.

主要内容

能力有限, 感兴趣的还是直接读原文比较好.

符号

注: 下面的 \(\mathbb{E}[h(x)\not = y]\)表示\(\mathbb{E}[\mathbb{1}[h(x) \not = y]]\).

不同占比的数据和误差的关系

假设我们所关系的数据样本的集合为\(X\), 确定\(f \sim \mathcal{F}\)后便相当于确定了该集合上的标签了. 实际中的训练集和测试集往往并不覆盖整个\(X\), 作者假设根据先验信息

\[\pi = (\pi_1, \pi_2, \cdots, \pi_N), \]

对于任意\(x \in X\), 从中采样概率记为\(p_x\) (放回的独立采样), 得到一个关于样本\(x\)的分布\(D\), 即:

\[D(x) = \frac{p_x}{\sum_x p_x}, \]

注意, 为了满足概率分布的性质, 这里我们归一化了.
从上面的分析可以看到, 分布\(D\)本身也是一个随机变量, 不妨假设其服从分布:

\[D \sim \mathcal{D}_{\pi}^X. \]

所以, 实际上\(D, x\)的联合分布为:

\[\mathbb{P}(x, D) = \mathbb{P}(x|D) \mathbb{P}(D) = D(x) \mathbb{P}(D). \]

有了分布\(D\)和映射\(f \sim \mathcal{F}\)后, 我们从中独立地采样\(n\)次, 得到训练集

\[S = (x_1, y_1 = f(x_1)), (x_2, y_2), \cdots, (x_n, y_n). \]

于是\(D, f, S\)三者有联合分布\(\mathcal{G}\), 并定义其在\(S=Z\)下的条件分布为:

\[\mathcal{G}(|Z). \]

我们设计了一个算法 \(\mathcal{A}\), 其产出

\[h \sim \mathcal{A}(S), \]

用以拟合\(f\).
我们通常用

\[\mathrm{err}_{P} (\mathcal{A}, S) := \mathbb{E}_{h \sim \mathcal{A}(S)} [\mathrm{err}_P(h)] \]

来衡量算法\(\mathcal{A}\)利用训练集\(S\)在测试集\(P\)上表现, 这里需要注意的是: 训练集的标签由\(f\)决定, 测试集的标签由\(f'\)确定, \(f \not = f'\)也是可能的 (虽然在某些情况下难以理解).
于是在不同数据集下的平均损失为

\[\overline{\mathrm{err}}(\pi, \mathcal{F}, \mathcal{A}) := \mathbb{E}_{D \sim \mathcal{D}_{\pi}^X, f \sim \mathcal{F}} [\mathrm{err}_{D, f} (\mathcal{A})]. \]

通常, 我们还是希望训练集和测试集满足的分布\(\mathcal{D}, f\)是一致的, 这种情况下, 可以关注如下:

\[\mathop{\mathbb{E}} \limits_{D \sim \mathcal{D}, f \sim \mathcal{F}, S \sim (D, f)^n} \mathrm{err}_{D, f}(\mathcal{A}, S). \]

又因为\(S\)通常是已知的, 故我们实际上更关注条件误差:

\[\overline{\mathrm{err}}(\pi, \mathcal{F}, \mathcal{A}|S=Z) := \mathop{\mathbb{E}} \limits_{(D, f) \sim \mathcal{G}(|S=Z)} \mathrm{err}_{D, f}(\mathcal{A}, Z). \]

本文主要关注该条件误差和算法\(\mathcal{A}\)对于在数据集\(S\)中出现次数较小的样本的误差的关系.
我们可以定义

\[\mathrm{errn}_S(h, \ell) := |\{x \in X_{S=\ell}|h(x) \not = y\}|, \\ \mathrm{errn}_S (\mathcal{A}, \ell) := \mathbb{E}_{h \sim \mathcal{A}(S)} [\mathrm{errn}_S(h, \ell)], \]

该指标衡量了算法\(\mathcal{A}\)对于那些仅在数据集\(S\)中出现\(\ell\)的数据的误差,

定理2.3

定理2.3:\(\pi\)为一频率先验, \(\bar{\pi}^N\)为其边缘分布:

\[\bar{\pi}^N (\alpha) := \mathbb{P}(D = \alpha), \]

\(\mathcal{F}\)\(X \rightarrow Y\)上函数的分布. 则对于任意的算法\(\mathcal{A}\)和数据集\(Z\)有:

\[\overline{\mathrm{err}}(\pi, \mathcal{F}, \mathcal{A}|Z) \ge \mathrm{opt}(\pi, \mathcal{F}|Z) + \sum_{\ell \in [n]} \tau_{\ell} \cdot \mathrm{errn}_Z (\mathcal{A}, \ell), \]

其中

\[\tau_{\ell} := \frac{\mathbb{E}_{\alpha \sim \bar{\pi}^N} [\alpha^{\ell + 1} \cdot (1 - \alpha)^{n - \ell}]}{\mathbb{E}_{\alpha \sim \bar{\pi}^N} [\alpha^{\ell} \cdot (1 - \alpha)^{n - \ell}]}. \]

这个定理主要告诉我们, 这个条件误差可以拆分为不同占比的\(x\)所对应的损失的和.
可以预见, 对于那些占比很小的样本 (即\(\ell\)很小), 倘若\(\tau_{\ell}\)很大, 那么算法\(\mathcal{A}\)的误差不太大的前提是该算法对这些小样本也要照顾地很好, 反之, 则这些样本起到了无关紧要的作用.

引理2.5

自然地, 接下去的问题就是讨论这些\(\tau_{\ell}\)的大小, 为简单起见, 作者主要讨论了\(\tau_1\)的情况.

引理2.5: 对于任意的频率先验\(\pi\)和足够大的\(n, N\):

\[\tau_1 \ge \frac{1}{5n} \cdot \mathrm{weight}(\bar{\pi}^N, [\frac{1}{3n}, \frac{2}{n}]), \]

如果$\pi_{max} < 1 / 200 $, 那么

\[\pi_1 \ge \frac{1}{7n} \cdot \mathrm{weight} (\pi, [\frac{1}{2n}, \frac{1}{n}]). \]

可以发现, 当频率先验主要集中在较小的范围内时, 忽略那些占比较小的样本是理智. 个人感觉, 这种情况并非是特殊的, 比如在\(N >> n\)的情况下, 这种情况应该还是比较容易发生的吧.

引理2.6

作者又给了一种特殊情况:

引理2.6:\(\pi\)为一频率先验, 存在\(\theta \le \frac{1}{2n}\)使得\(\mathrm{weight}(\bar{\pi}^N, [\theta, \frac{t}{n}]) = 0\). 其中$t=\ln (1/ (\theta\beta)) + 2, \beta = \mathrm{weight}(\bar{\pi}^N, [0, \theta]) \(, 则\)\tau_1 \le 2\theta$.

这种情况下, 若\(\theta = 1 / (2n^2)\), 则条件误差最多为\(1/n\).

Memorization

神经网络为人所诟病的一个问题是由于其强大的拟合能力, 常常导致过拟合.
也就是说, 神经网络具备直接记忆样本的能力, 那么为什么需要这种特殊的记忆能力呢?

首先我们定义:

\[\mathrm{mem}(\mathcal{A}, S, i) := |\mathbb{P}_{h \sim \mathcal{A}(S)}[h(x_i) = y_i] - \mathbb{P}_{h \sim \mathcal{A}(S\setminus i)} [h(x_i) = y_i]| \]

为算法\(\mathcal{A}\)关于样本\(x_i\)的记忆值. 其反应了算法是否需要'见过'样本\(x_i\)才能准确判断.

注: \(S \setminus i\)表示数据\(S\)中去掉\((x_i, y_i)\).

引理4.2

引理4.2: 对于分布\(D\)和标签先验\(\mathcal{F}\),

\[\mathop{\mathbb{E}} \limits_{f \sim \mathcal{F}, S \sim (D, f)^n} [\mathrm{errn}_S(\mathcal{A}, 1)] \ge \mathop{\mathbb{E}} \limits_{f \sim \mathcal{F}, S \sim (D, f)^n} \Big[\sum_{i \in [n], x_i \in X_{S=1}} \mathbb{P}_{h \sim \mathcal{A}(S\setminus i)} [h(x_i) \not = y_i] - \mathrm{mem}(\mathcal{A}, S, i) \Big]. \]

从该引理可知, 算法\(\mathcal{A}\)若想要在小样本上的误差足够小, 那么\(\mathrm{mem}(\mathcal{A}, S, i)\)肯定会比较大, 这意味着\(\mathcal{A}\)实际上是在通过记忆这些样本的方式来学习他们.
联系之前的, 当小样本学习对总体的误差很重要的时候, 那我们不得不选择一些具有记忆能力的算法!

其它

作者还讨论了混合模型的情况以及差分隐私, 能力有限不多赘述.

posted @ 2022-04-06 15:18  馒头and花卷  阅读(129)  评论(0编辑  收藏  举报