概
在机器学习中, 我们常常需要求解两个变量 \(X, Y\) 间的一个互信息
这篇文章就是总结, 在什么条件下, 我们可以估计它或它的上下界.
注意到:
故倘若 \(p(y|x), p(y)\)是知道的, 就可以直接估计了, 下面的一些 bounds 就是在某些不知道的情况下所推导出来的结果. 此外, 照我的理解, 虽然我们可能不知道 \(p(y|x), p(y)\) 的密度函数, 但应当假设能够从 \(p(x, y)\) 中进行采样, 即存在观测数据, 否则下面的 \(\mathbb{E}_{p(x, y)}[\cdot]\) 就都没法估计了.
Normalized upper and lower bounds
upper
-
已知: \(p(y|x)\);
-
策略: 用变分逼近 \(q(y)\) 替代 \(p(y)\) 可得:
\[\begin{array}{ll} I(X; Y) &= \mathbb{E}_{p(x, y)} [\log \frac{p(y|x)}{p(y)}] \\ &= \mathbb{E}_{p(x, y)} [\log \frac{p(y|x) q(y)}{q(y) p(y)}] \\ &= \mathbb{E}_{p(x, y)} [\log \frac{p(y|x)}{q(y)}] - \text{KL}(p(y)\|q(y)) \\ &\le \mathbb{E}_{p(x)} [\text{KL}(p(y|x) \| q(y))] \triangleq R. \end{array} \] -
紧性: \(q(y) = p(y)\) 时等号成立;
-
倘若 \(p(y|x) = p(y|x; \theta), q(y) = q(y;\varphi)\), 且 \(\exist \varphi, q(y; \varphi) = p(y; \theta)\), 则
\[\min_{\theta, \varphi} R \]会最小化 \(X, Y\) 的互信息, 同时获得副产品 \(q(y; \varphi^*) \rightarrow p(y;\theta^*)\).
lower
-
已知: \(H(X)\)|无;
-
策略: 用变分逼近 \(q(x|y)\) 替代 \(p(x|y)\) 可得:
\[\begin{array}{ll} I(X; Y) &= \mathbb{E}_{p(x, y)} [\log \frac{p(x|y)}{p(x)}] \\ &= \mathbb{E}_{p(x, y)} [\log \frac{p(x|y) q(x|y)}{q(x|y) p(x)}] \\ &= \mathbb{E}_{p(x, y)} [\log \frac{q(x|y)}{p(x)}] + \mathbb{E}_{p(y)}[\text{KL}(p(x|y) \| q(x|y))] \\ &\ge \mathbb{E}_{p(x, y)} [\log \frac{q(x|y)}{p(x)}] \\ &= \mathbb{E}_{p(x, y)} [\log q(x|y)] + H(X) \triangleq I_{\text{BA}}. \\ \end{array} \] -
紧性: \(q(x|y) = p(x|y)\) 时等号成立;
-
注意 \(p(x)\) 未知的情况下 \(H(X)\) 往往是无法求解的, 但是在大多数时候, \(X\) 往往以数据的角色存在, 此时可以简单地将 \(H(X)\) 看成一个常数. 此时比较和约束 \(I(X, Y)\) 便都是可行的了.
-
举一个 AutoEncoder 的例子:
- 有数据 \(X\), 我们希望构建一个映射 \(Z = f(X; \theta)\), 使得隐变量 \(Z\) 能够在具备低维的特点时, 能够囊括尽可能多的 \(X\) 的信息, 我们希望:\[\max_{\theta} \: I(X, Z(\theta)), \]此时 \(p(z|x; \theta) = \delta(z - f(x; \theta))\);
- 因为 \(H(X)\) 是和 \(\theta\) 无关的变量, 所以我们可以优化:\[\max_{\theta, \varphi} \mathbb{E}_{p(x)} [\log q(x|z=f(x; \theta); \varphi)], \]其中 \(q(x|z; \varphi)\) 是我们用来近似 \(p(x|z)\) 的.
- 有数据 \(X\), 我们希望构建一个映射 \(Z = f(X; \theta)\), 使得隐变量 \(Z\) 能够在具备低维的特点时, 能够囊括尽可能多的 \(X\) 的信息, 我们希望:
Unnormalized lower bounds
unormalized 是指, variational family 限定于下面这种形式:
注: \(f(x, y)\) 通常称为 energy function, 和一般的模型不同, 这里用 \(p(x)\) re-scale 过, 它的作用可以在下面看到.
注: 如果构造 \(f(x, y)\) 的方式能够保证 \(Z(y) \equiv 1\), 则此时 \(f(x, y)\) 称为是 self-normalized 的.
BA -> UBA
-
已知: \(\mathbb{E}_{p(y)}[\log Z(y)]\);
-
策略: 用变分逼近 \(q(x|y)\) 替代 \(p(x|y)\) 可得:
\[\begin{array}{ll} I(X; Y) &\ge \mathbb{E}_{p(x, y)} [\log q(x|y)] + H(X) \triangleq I_{\text{BA}} \\ &= \mathbb{E}_{p(x, y)} [ f(x, y)] - \mathbb{E}_{p(y)} [\log Z(y)] \triangleq I_{\text{UBA}} \: \leftarrow q(x|y) = \frac{p(x)}{Z(y)} e^{f(x, y)}. \\ \end{array} \] -
紧性: \(q(x|y) = p(x|y)\) 时等号成立, 即 \(f^*(x, y) = \log p(y|x) + c(y)\), 其中 \(c(y)\) 可以是任意的仅关于 \(y\) 的函数即可. 自然可以推导出, 此时:
\[Z^*(y) = p(y)e^{c(y)}, \]还可以得到:
\[f^*(x, y) = \log \frac{p(y|x)}{p(y)} + \log Z^*(y). \] -
注意此时 \(\mathbb{E}_{p(y)} [\log Z(y)]\) 本身往往也是不好求解的.
-
倘若能求解, 我们可以通过
\[\mathop{\text{argmax}} \limits_{f} \: I_{\text{UBA}}(f) \]来估计 \(I(X; Y)\).
UBA -> DV
-
已知: \(\mathbb{E}_{p(y)}[Z(y)]\);
-
策略: 用变分逼近 \(q(x|y)\) 替代 \(p(x|y)\) 可得:
\[\begin{array}{ll} I(X; Y) &\ge \mathbb{E}_{p(x, y)} [\log f(x, y)] - \mathbb{E}_{p(y)} [\log Z(y)] \triangleq I_{\text{UBA}} \\ &\ge \mathbb{E}_{p(x, y)} [\log f(x, y)] - \log \mathbb{E}_{p(y)} [Z(y)] \triangleq I_{\text{DV}} \: \leftarrow \text{ Jensen's inequality} \\ \end{array} \] -
紧性: \(f(x, y) = \log p(y|x) + c(y)\).
-
注意此时 \(\mathbb{E}_{p(y)} [Z(y)]\) 本身也是不好求解的.
UBA -> TUBA
-
已知: 无;
-
策略: 用变分逼近 \(q(x|y)\) 替代 \(p(x|y)\) 可得:
\[\begin{array}{ll} I(X; Y) &\ge \mathbb{E}_{p(x, y)} [\log f(x, y)] - \mathbb{E}_{p(y)} [\log Z(y)] \triangleq I_{\text{UBA}}\\ &\ge \mathbb{E}_{p(x, y)} [f(x, y)] - \mathbb{E}_{p(y)} [\frac{\mathbb{E}_{p(x)}[e^{f(x, y)}]}{a(y)} + \log (a(y)) - 1] \triangleq I_{\text{TUBA}}\\ \end{array} \]其中不等式用到了:
$$
\log x \le \frac{x}{a} + \log a - 1.
$$ -
紧性: \(f(x, y) = \log p(y|x) + c(y), a(y) = Z(y)\).
-
倘若能求解, 我们可以通过
\[\mathop{\text{argmax}} \limits_{f, a} \: I_{\text{UBA}}(f, a) \]来估计 \(I(X; Y)\).
问: 为什么 \(I_{\text{UBA}}\) 是可解的而 \(I_{\text{BA}}, I_{\text{DV}}\) 往往是不可解的呢? 似乎我们可以用 \(z(y) \approx \frac{1}{n}\sum_{x_i} e^{f(x_i, y)}\) 来近似代替 \(Z(y)\) ?
猜想: 回答这个问题, 应该就是解释
$$
\log \mathbb{E}[f(x)], \mathbb{E}[f(x)]
$$
在估计上的区别. 个人感觉倘若你能采样足够多的点, 直接先估计 \(\mathbb{E}[f(x)]\) 然后带入 \(\log\) 应该是 ok 的. 但是现在机器学习里的情形是采用 mini-batch 的方式, 那么假设
$$
\bar{f}(B_k) = \frac{1}{n} \sum_{x \in B_k} f(x),
$$
其中 \(n\) 为 batchsize. 则多个 mini-batch 下来,
$$
\bar{f}(B_1, B_2, \ldots, B_K) = \frac{1}{K}\sum_k \frac{1}{n} \sum_{x \in B_k} f(x) = \frac{1}{N} \sum_{x} f(x),
$$
为整体的一个平均没问题. 但是对于 \(\log\) 而言为:
$$
\frac{1}{K} \sum_k \log \bar{f}(B_k) \not = \log \frac{1}{N} \sum_x f(x).
$$
TUBA -> NWJ
-
假设: \(a(y)\) 为常数 \(e\) (\(\log e = 1\) 的 \(e\));
-
策略:
\[\begin{array}{ll} I(X; Y) &\ge \mathbb{E}_{p(x, y)} [f(x, y)] - e^{-1} \mathbb{E}_{p(y)} [Z(y)] \triangleq I_{\text{NWJ}}. \\ \end{array} \] -
紧性: 除非 \(Z(y) = a(y) = e\) 满足, 即此时 \(f\) 是 self-normalize 的
\[\mathbb{E}_{p(x)} [e^{f(x, y)}] = 1 \rightarrow f(x, y) = 1 + \log \frac{p(x|y)}{p(x)}. \] -
这个被用在了 \(f\)-GANKL, MINE-\(f\).
-
也有用 \(e^{f(x, y)}\) 的滑动平均 (EMA) 替代 \(a(y)\) 的, 此时不必要求 \(f\) 是 self-normalized 的.
Multi-sample unnormalized lower bounds
作者认为, 上面所推导出来的界由于 \(\log\) 的存在, 会导致 high-variance, 所以作者希望提出更稳定一点的界. (但是, 我看网上说是 \(\log\) 反而有稳定方差的作用 ? 不同的情况 ? 这里我大概理解是有误的)
注: 通篇来看, \(\log Z(y)\) 不稳定的原因, 大抵是它是无界的, 而后面所提出的方法, 能够保证 \(\log Z(y) \le \log K\), 从而更加稳定.
-
目的: 估计 \(I(X_1; Y)\), 对应分布为 \(p(x_1)p(y|x_1)\);
-
同时观察到另外的 \(K-1\) 个额外的样本 \(x_{2:K} \sim r^{K-1}(x_{2:K})\), 注意这些样本允许来自不同的分布, 但是我们假设 \(X_{2:K} \perp \!\!\! \perp (X_1, Y)\);
-
此时我们有:
\[I(X_1; Y) = I(X_1, X_{2:K}; Y). \] -
我们可以通过上面所推导的界来估计, 此外过程中所得的副产品也是相同的, 比如在 \(I_{\text{NWJ}}\)中:
\[f^*(x_{1:K}, y) = 1 + \log \frac{p(y|x_{1:K})}{p(y)} = 1 + \log \frac{p(y|x_1)}{p(y)}; \] -
但是, 我们也可用通过使得这些副产品和 \(x_{2:K}\) 相关来帮助获得更稳定的估计, 比如令
\[f(x_{1:K}, y) = 1 + \log \frac{e^{f(x_1, y)}}{\gamma(y;x_{1:K})}, \]且假设
\[r^{K-1}(x_{2:K}) = \prod_{j=2}^K p(x_j), \]时有 (\(I_{\text{NWJ}}\))
\[\begin{array}{ll} I(X_1; Y) &\ge 1 + \mathbb{E}_{p(x_{1:K})p(y|x_1)} [\log \frac{e^{f(x_1, y)}}{\gamma(y;x_{1:K})}] - \mathbb{E}_{p(x_{1:K})p(y)} [\frac{e^{f(x_1, y)}}{\gamma(y;x_{1:K})}] \\ \end{array} \] -
注意到 (因为此时相当于 \((x, y)\) 都是独立采样的 !):
\[\tag{I. 1} \mathbb{E}_{p(x_{1:K})p(y)} [\frac{e^{f(x_i, y)}}{\gamma(y;x_{1:K})}] =\mathbb{E}_{p(x_{1:K})p(y)} [\frac{e^{f(x_j, y)}}{\gamma(y;x_{1:K})}], \]当
\[\gamma(y;x_{1:K}) := m(y;x_{1:K}) = \frac{1}{K} \sum_k e^{f(x_k, y)}, \]有
\[\tag{I. 2} \sum_i^K \mathbb{E}_{p(x_{1:K})p(y)} [\frac{e^{f(x_i, y)}}{\frac{1}{K}\sum_k e^{f(x_k, y)}}] = K. \]结合 (I.1) (I.2) 可知:
\[\mathbb{E}_{p(x_{1:K})p(y)} [\frac{e^{f(x_1, y)}}{\gamma(y;x_{1:K})}] = 1. \] -
故当
\[\gamma(y;x_{1:K}) := m(y;x_{1:K}) = \frac{1}{K} \sum_k e^{f(x_k, y)}, \]时有
\[\tag{I} I(X_1; Y) \ge \mathbb{E}_{p(x_{1:K})p(y|x_1)} [\log \frac{e^{f(x_1, y)}}{\frac{1}{K} \sum_k e^{f(x_k, y)}}]. \] -
为了方便, 我们令 \(I(X_1; Y_1)\) 记为 \(I(X_1; Y)\), 倘若 \((X_i, Y_i)\) 和 \((X_1, Y_1)\) 采自同一个分布 \(p(x, y)\), 则有:
\[I(X_i; Y_i) = I(X_j; Y_j) = I(X_1; Y), \]它们的平均也是 \(I(X; Y)\), 故
\[\tag{II} I(X; Y) \ge \mathbb{E} [ \frac{1}{K} \sum_{i=1}^K \log \frac{e^{f(x_i, y_i)}}{\frac{1}{K} \sum_k^K e^{f(x_k, y_i)}}] \triangleq I_{\text{NCE}}, \]此即为 InfoNCE.
注: (I) 是不需要 \((X_i, Y_i)\) 采样自同一分布的, 而 (II) 是要求这一点的. 不过我感觉 (I) 也很有对比的 feel, 或者是噪声对比估计的 feel.
注: \(I_{\text{NCE}} \le \log K\) 通常是不紧的, 且因为 \(\log (Z(y)) \le \log K\), 故方差有保障.
Nonlinearly interpolated lower bounds
\(I_{\text{NCE}}\) 虽然 low-variance, 但是它不是紧的, 即 high-bias, 相反的, \(I_{\text{NWJ}}\) 是 low-bias, high-variance, 所以这里就将二者进行一个结合.
此时我们可以通过调节 \(\alpha\) 来 trade-off bias 和 variance.
且可以注意到 \(I_{\text{NWJ}}, I_{\text{BCE}}\) 分别对应 \(\alpha = 0, 1\).