1. 程式人生 > 其它 >Does Learning Require Memorization? A Short Tale about a Long Tail

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 (佔比很少的類, 長尾部分) 樣本的必要性.

主要內容

能力有限, 感興趣的還是直接讀原文比較好.

符號

符號 說明
\(X\) 樣本集合, $
\(Y\) 標籤集合, $
\(P\) 樣本對\((X, Y)\)所服從的一個分佈
\(S=(x_1, y_1), \cdots, (x_n, y_n)\) 從未知分佈\(P^n\)所取樣的資料集\(S\), 注意\(S\)有序的可重複的
\(X_S\) ${x
\(X_{S=\ell}\) ${x
\(\mathcal{F}: X \rightarrow Y\) 將樣本對映為標籤的函式集合
\(\mathcal{A}: S \rightarrow \mathcal{F}\) 演算法\(\mathcal{A}\)
根據資料集\(S\)得到對應的擬合函式, 注意當該演算法為一個隨機演算法時, \(\mathcal{A}(S)\)實際上是一個分佈
\(\mathrm{err}_{P}(h):= \mathbb{E}_{(x, y)\sim P} [h(x) \not = y]\) 函式\(h\)關於分佈\(P\)的預測損失
\(\mathrm{err}_P (\mathcal{A}, S):=\mathbb{E}_{h \sim \mathcal{A}(S)}[\mathrm{err}_P (h)]\) 衡量演算法\(\mathcal{A}\)在資料\(S\)上的平均損失
\(\pi=(\pi_1, \pi_2,\cdots, \pi_N)\)
'先驗'概率列表
\(D\sim \mathcal{D}_{\pi}^X\) 是這樣取樣得到分佈\(D\)的: 對於每個樣本\(x \in X\), 從\(\pi\)中獨立地等可能地從先驗\(\pi\)中取樣概率\(p_x\), 然後定義: \(D(x)=\frac{p_x}{\sum_{x\in X} p_x}\)
\(\bar{\pi}^N (\alpha) := \mathbf{Pr}_{D \sim \mathcal{D}_{\pi}^X}[D(x) = \alpha]\) 注意到, 因為不同的\(x\)地位是一樣的, 所以先驗分佈\(\bar{\pi}^N(\alpha)\)對於不同\(x\)的分佈律其實是一致的
\(\overline{\mathrm{err}}(\pi, \mathcal{F}, \mathcal{A}):= \mathbb{E}_{D \sim \mathcal{D}, f \sim \mathcal{F}} [\mathrm{err}_{D,f}(\mathcal{A})]\) 這相當於不同測試集合\((D, f) \sim (\mathcal{D, \mathcal{F}})\)下演算法\(\mathcal{A}\)的平均誤差
$\mathrm{errn}_S (h, \ell) := {x \in X_{S=\ell}
\(\mathrm{errn}_S(\mathcal{A}, \ell):= \mathbb{E}_{h \sim \mathcal{A}_S}[\mathrm{errn_S(h, \ell)}]\) 演算法\(\mathcal{A}\)在資料集\(S\)上的平均錯判次數
\(\mathcal{G}\) \((D, f, S)\)的聯合分佈
$\mathcal{G}( Z)$
$\overline{\mathrm{err}}(\pi, \mathcal{F}, \mathcal{A} Z):= \mathbb{E}_{(D, f) \sim \mathcal{G}(
$\mathrm{opt}(\pi, \mathcal{F} Z)$
\(\mathrm{weight}(\bar{\pi}^N, [\alpha, \beta]):= \mathbb{E}_{D \sim \mathcal{D}} [\sum_{x \in X} D(x) \cdot \mathbb{1}(D(x) \in [ \beta_1, \beta_2])]\) \(=N \cdot \mathbb{E}_{\alpha \sim \bar{\pi}^N} [\alpha \cdot \mathbb{1}(\alpha \in [\beta_1, \beta_2])]\)
$\mathrm{single}(\bar{\pi}^N):=\mathbb{E}_{D \sim \mathcal{D}, V \sim D^n}[ X_{V=1}

不同佔比的資料和誤差的關係

假設我們所關係的資料樣本的集合為\(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}\)實際上是在通過記憶這些樣本的方式來學習他們.
聯絡之前的, 當小樣本學習對總體的誤差很重要的時候, 那我們不得不選擇一些具有記憶能力的演算法!

其它

作者還討論了混合模型的情況以及差分隱私, 能力有限不多贅述.