Does Learning Require Memorization? A Short Tale about a Long Tail
概
理論分析了神經網路記憶 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}\) |
\(\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, 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\).
我們通常用
來衡量演算法\(\mathcal{A}\)利用訓練集\(S\)在測試集\(P\)上表現, 這裡需要注意的是: 訓練集的標籤由\(f\)決定, 測試集的標籤由\(f'\)確定, \(f \not = f'\)也是可能的 (雖然在某些情況下難以理解).
於是在不同資料集下的平均損失為
通常, 我們還是希望訓練集和測試集滿足的分佈\(\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\)中出現次數較小的樣本的誤差的關係.
我們可以定義
該指標衡量了演算法\(\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}\)實際上是在通過記憶這些樣本的方式來學習他們.
聯絡之前的, 當小樣本學習對總體的誤差很重要的時候, 那我們不得不選擇一些具有記憶能力的演算法!
其它
作者還討論了混合模型的情況以及差分隱私, 能力有限不多贅述.