前言
在深度学习的广阔领域中,近似推断扮演着至关重要的角色。当面对复杂的概率模型时,精确推断往往难以实施,因此我们需要借助近似推断来寻找解决方案。其中,最大后验推断( MAP \text{MAP} MAP)和稀疏编码是两种极具代表性的方法。
序言
最大后验推断 MAP \text{MAP} MAP是在贝叶斯推断的基础上,结合了先验知识的一种推断方法。与极大似然估计( MLE \text{MLE} MLE)只关注当前样本不同, MAP \text{MAP} MAP还考虑了参数的先验概率,从而能够在数据稀少或有强先验知识的情况下提供更准确的参数估计。这种方法在医学图像处理、自然语言处理等领域有着广泛的应用。
而稀疏编码则是一种通过加入稀疏性先验在隐藏层实现的特征提取和学习机制。它试图在表示数据时,尽可能使用少的特征或基向量,从而提高数据的表示效率和模型的泛化能力。稀疏编码在图像处理、信号处理等领域展现出了巨大的潜力。
最大后验推断和稀疏编码
-
我们通常使用推断 ( inference \text{inference} inference) 这个术语来指代给定一些其他变量的情况下计算某些变量概率分布的过程。
- 当训练带有潜变量的概率模型时,我们通常关注于计算 p ( h ∣ v ) p(\boldsymbol{h} \mid \boldsymbol{v}) p(h∣v)。
- 在推断中另一个选择是计算一个最有可能的潜变量值来代替在所有可能值的完整分布上的推断。
- 在潜变量模型中,这意味着计算:
h ∗ = arg max h p ( h ∣ v ) \boldsymbol{h}^\ast=\argmax\limits_h p(\boldsymbol{h} \mid \boldsymbol{v}) h∗=hargmaxp(h∣v) — 公式1 \quad\textbf{---\footnotesize{公式1}} —公式1 - 这被称作是最大后验 ( Maximum A Posteriori \text{Maximum A Posteriori} Maximum A Posteriori) 推断,简称 MAP \text{MAP} MAP推断。
-
MAP \text{MAP} MAP推断并不是一种近似推断,它只是精确地计算了最有可能的一个 h ∗ \boldsymbol{h}^\ast h∗。
- 然而,如果我们希望能够最大化 L ( v , h , q ) \mathcal{L}(\boldsymbol{v},\boldsymbol{h},q) L(v,h,q),那么我们可以把 MAP \text{MAP} MAP推断看成是输出一个 q q q 值的学习过程。
- 在这种情况下,我们可以将 MAP \text{MAP} MAP推断看成是近似推断,因为它并不能提供一个最优的 q q q。
-
我们回过头来看看近似推断 - 推断是一个优化问题篇
中所描述的精确推断,它指的是关于一个在无限制的概率分布族中的 q q q 分布使用精确的优化算法来最大化:
L ( v , θ , q ) = E h ∼ q [ log p ( h , v ) ] + H ( q ) \mathcal{L}(\boldsymbol{v},\boldsymbol{\theta},q)=\mathbb{E}_{\textbf{h}\sim q}[\log p(\boldsymbol{h},\boldsymbol{v})]+H(q) L(v,θ,q)=Eh∼q[logp(h,v)]+H(q) — 公式2 \quad\textbf{---\footnotesize{公式2}} —公式2 -
我们通过限定 q q q 分布属于某个分布族,能够使得 MAP \text{MAP} MAP推断成为一种形式的近似推断。具体地说,我们令 q q q 分布满足一个 Dirac \text{Dirac} Dirac分布:
q ( h ∣ v ) = δ ( h − μ ) q(\boldsymbol{h}\mid\boldsymbol{v})=\delta(\boldsymbol{h}-\boldsymbol{\mu}) q(h∣v)=δ(h−μ) — 公式3 \quad\textbf{---\footnotesize{公式3}} —公式3 -
这也意味着现在我们可以通过 μ \mu μ 来完全控制 q q q。通过将 L \mathcal{L} L 中不随 μ \mu μ 变化的项丢弃,剩下的我们需要解决的是一个优化问题:
μ ∗ = arg max μ log p ( h = μ , v ) \boldsymbol{\mu}^\ast=\argmax\limits_{\boldsymbol{\mu}}\log p(\boldsymbol{h}=\boldsymbol{\mu},\boldsymbol{v}) μ∗=μargmaxlogp(h=μ,v) — 公式4 \quad\textbf{---\footnotesize{公式4}} —公式4 -
这等价于 MAP \text{MAP} MAP推断问题:
h ∗ = arg max h log p ( h ∣ v ) \boldsymbol{h}^\ast=\argmax\limits_{\boldsymbol{h}}\log p(\boldsymbol{h}\mid\boldsymbol{v}) h∗=hargmaxlogp(h∣v) — 公式5 \quad\textbf{---\footnotesize{公式5}} —公式5 -
因此我们能够解释一种类似于 EM \text{EM} EM算法的学习算法,其中我们轮流迭代两步:
- 一步是用 MAP \text{MAP} MAP推断估计出 h ∗ \boldsymbol{h}^\ast h∗,
- 另一步是更新 θ \boldsymbol{\theta} θ 来增大 log p ( h ∗ , v ) \log p(\boldsymbol{h}^\ast, \boldsymbol{v}) logp(h∗,v)。
-
从 EM \text{EM} EM算法角度看,这也是对 L \mathcal{L} L 的一种形式的坐标上升, EM \text{EM} EM算法的坐标上升中,交替迭代时通过推断来优化 L \mathcal{L} L 关于 q q q 以及通过参数更新来优化 L \mathcal{L} L 关于 θ \boldsymbol{\theta} θ。
- 作为一个整体,这个算法的正确性可以得到保证,因为 L \mathcal{L} L 是 log p ( v ) \log p(\boldsymbol{v}) logp(v) 的下界。
- 在 MAP \text{MAP} MAP推断中,这个保证是无效的,因为这个界会无限地松,由于 Dirac \text{Dirac} Dirac 分布的熵的微分趋近于负无穷。
- 然而,人为加入一些 μ \boldsymbol{\mu} μ 的噪声会使得这个界又有了意义。
-
MAP \text{MAP} MAP推断作为特征提取器以及一种学习机制被广泛的应用在了深度学习中。在稀疏编码模型中,它起到了关键作用。
-
我们回过头来看线性因子模型 - 稀疏编码篇中的稀疏编码, 稀疏编码是一种在隐藏单元上加上了鼓励稀疏的先验知识的线性因子模型。
- 一个常用的选择是可分解的拉普拉斯先验,表示为:
p ( h i ) = λ 2 e ( − λ ∣ h i ∣ ) p(h_i)=\displaystyle\frac{\lambda}{2} e^{(-\lambda| h_i|)} p(hi)=2λe(−λ∣hi∣) — 公式6 \quad\textbf{---\footnotesize{公式6}} —公式6
- 一个常用的选择是可分解的拉普拉斯先验,表示为:
-
可见的节点是由一个线性变化加上噪音生成的:
p ( v ∣ h ) = N ( v ; W h + b , β − 1 I ) p(\boldsymbol{v}\mid\boldsymbol{h})=\mathcal{N}(\boldsymbol{v};\boldsymbol{Wh}+\boldsymbol{b},\beta^{-1}\boldsymbol{I}) p(v∣h)=N(v;Wh+b,β−1I) — 公式7 \quad\textbf{---\footnotesize{公式7}} —公式7 -
计算或者表达 p ( h ∣ v ) p(\boldsymbol{h}\mid\boldsymbol{v}) p(h∣v)太过困难。
- 每一对 h i h_i hi, h j h_j hj 变量都是 v \boldsymbol{v} v 的母节点。
- 这也意味着当 v \boldsymbol{v} v 可观察时, 图模型包含了一条连接 h i h_i hi 和 h j h_j hj 的活跃路径。
- 因此 p ( h ∣ v ) p(\boldsymbol{h}\mid\boldsymbol{v}) p(h∣v) 中所有的隐藏单元都包含在了一个巨大的团中。
- 如果模型是高斯,那么这些相互作用关系可以通过协方差矩阵来高效地建模。
- 然而稀疏型先验使得这些相互作用关系并不是高斯。
-
p ( v ∣ h ) p(\boldsymbol{v} \mid \boldsymbol{h}) p(v∣h) 的复杂性导致了似然函数的对数及其梯度也很难得到。
- 因此我们不能使用精确的最大似然学习来进行学习。
- 取而代之的是,我们通过 MAP \text{MAP} MAP推断以及最大化由以 h \boldsymbol{h} h 为中心的 Dirac \text{Dirac} Dirac 分布所定义而成的 ELBO \text{ELBO} ELBO来学习模型参数。
-
如果我们将训练集中所有的 h \boldsymbol{h} h 向量拼在一起并且记为 H \boldsymbol{H} H,并将所有的 v \boldsymbol{v} v 向量拼起来组成矩阵 V \boldsymbol{V} V,那么稀疏编码问题意味着最小化:
J ( H , W ) = ∑ i , j ∣ H i , j ∣ + ∑ i , j ( V − H W ⊤ ) i , j 2 J(\boldsymbol{H},\boldsymbol{W})=\sum\limits_{i,j}|H_{i,j}|+\sum\limits_{i,j}\left(\boldsymbol{V}-\boldsymbol{HW}^\top\right)_{i,j}^2 J(H,W)=i,j∑∣Hi,j∣+i,j∑(V−HW⊤)i,j2 — 公式8 \quad\textbf{---\footnotesize{公式8}} —公式8 -
为了避免如极端小的 H \boldsymbol{H} H 和极端大的 W \boldsymbol{W} W 这样的病态的解,许多稀疏编码的应用包含了权值衰减或者对 H \boldsymbol{H} H 列范数的限制。
-
我们可以通过交替迭代最小化 J J J 分别关于 H \boldsymbol{H} H 和 W \boldsymbol{W} W 的方式来最小化 J J J。两个子问题都是凸的。事实上,关于 W \boldsymbol{W} W 的最小化问题就是一个线性回归问题。然而关于这两个变量同时最小化 J J J 的问题并不是凸的。
-
关于 H \boldsymbol{H} H 的最小化问题需要某些特别设计的算法诸如特征符号搜索方法 ( Lee et al., 2007 \text{Lee et al., 2007} Lee et al., 2007)。
总结
最大后验推断和稀疏编码作为近似推断中的两种重要方法,各自具有独特的优势和适用范围。 MAP \text{MAP} MAP通过结合先验知识和观测数据,能够在复杂模型中提供更准确的参数估计;而稀疏编码则通过引入稀疏性先验,提高了数据的表示效率和模型的泛化能力。
这两种方法不仅在理论上具有重要意义,还在实际应用中展现出了巨大的价值。无论是在图像处理、信号处理还是自然语言处理等领域,最大后验推断和稀疏编码都为我们提供了有力的工具,帮助我们更好地理解和处理复杂的数据。
随着深度学习技术的不断发展,我们有理由相信,最大后验推断和稀疏编码将在未来发挥更加重要的作用,推动人工智能技术的不断进步。