多视图深度学习中的视图映射方法
1. 多视图深度学习概述
在多视图深度学习中,视觉模型和组合语言模型可联合更新。这种方法能在嵌入模型中实现自下而上和自上而下的路径,从而使模型能够处理视频到文本和文本到视频的任务。
2. 视图映射的数学表达
视图映射在数学上可表示为:
$f (x1) \stackrel{K}{\rightleftharpoons} g(x2)$
其中,$K$ 可以是端到端的神经网络或字典。这类方法旨在寻找 $K$ 以建立视图之间的直接联系。
3. 生成模型
3.1 深度条件生成对抗网络
近年来,生成对抗网络在机器学习领域受到越来越多的关注。早期的多视图映射方法常依赖基于字典的生成方式,因为使用生成器模型构建序列(如句子或图像)或生成具有时间和结构一致性的序列是一项具有挑战性的任务。但随着能够生成图像和序列的深度学习模型的出现,这种情况正在改变。
生成对抗网络(GANs)由生成器 $G$ 和判别器 $D$ 组成,它们在一个二人极小极大博弈中竞争。判别器试图区分真实训练数据和合成图像,而生成器试图欺骗判别器。为了学习数据 $x$ 上的生成器分布 $p_g$,生成器构建一个从先验噪声分布 $p_z(z)$ 到数据空间的映射函数 $G(z; θ_g)$。判别器 $D(x; θ_d)$ 输出一个标量,表示 $x$ 来自训练数据而非 $p_g$ 的概率。具体来说,$D$ 和 $G$ 在 $V (D, G)$ 上进行如下博弈:
$\min_{G} \max_{D} V (D, G) = E_{x\sim p_{data}(x)}[\log D(x)] + E_{x\sim p_{z}(z)}[\log(1 - D(G(z)))]$
其中,$z$ 是从例如高斯或均匀分布中抽取的噪声向量。
在实践中,训练开始时,判别器的样本质量极差,会被判别器以高置信度拒绝。实际上,生成器最大化 $\log(D(G(z)))$ 比最小化 $\log(1 - D(G(z)))$ 效果更好。
如果生成器和判别器都基于一些额外信息 $y$(如类别标签或其他视图的数据)进行条件设置,生成对抗网络可以扩展为条件模型。此时,二人极小极大博弈的目标函数如下:
$\min_{G} \max_{D} V (D, G) = E_{x\sim p_{data}(x)}[\log D(x|y)] + E_{x\sim p_{z}(z)}[\log(1 - D(G(z|y)))]$
为了从文本描述中编码视觉内容,使用了卷积和循环文本编码器来学习图像和文本特征之间的对应函数。句子嵌入通过优化以下结构化损失来学习:
$loss = \frac{1}{N} \sum_{n=1}^{N} \triangle(y_n, f_v(v_n)) + \triangle(y_n, f_t(t_n))$
其中,${(v_n, t_n, y_n), n = 1, …, N}$ 是包含图像信息 $v \in V$、文本描述 $t \in T$ 和类别标签 $y \in Y$ 的训练数据集,$\triangle: Y \times Y \to R$ 是 0 - 1 损失。分类器 $f_v : V \to Y$ 和 $f_t : T \to Y$ 定义如下:
$f_v(v) = \arg \max_{y\in Y} E_{t\sim T(y)}[\varphi(v)^{\top}\psi(t))]$
$f_t(t) = \arg \max_{y\in Y} E_{v\sim V(y)}[\varphi(v)^{\top}\psi(t))]$
其中,$\varphi$ 是图像编码器(如深度卷积网络),$\psi$ 是文本编码器(如字符级 CNN 或 LSTM),$T(y)$ 是类别 $y$ 对应的 $T$ 的子集,$V(y)$ 是类别 $y$ 对应的 $V$ 的子集,期望是对从这些子集中均匀采样的文本描述进行的。直观地说,文本编码器学习生成与对应类别的图像具有更高兼容性得分的编码,反之亦然。文本编码 $\psi(t)$ 被生成器 $G(z, \psi(t))$ 和判别器 $D(G(z, \psi(t)), \psi(t))$ 使用。
3.2 多视图注意力 RNN
多视图注意力 RNN 模型定义了一种基于字幕生成图像的生成过程。具体来说,字幕表示为连续单词的序列,图像表示为在画布 $c_t$ 上随时间 $t = 1, …, T$ 绘制的补丁序列。该模型主要由四个部分组成:语言模型、图像模型、对齐模型和后处理模型。
语言模型中,双向 LSTM 分别计算前向和后向隐藏状态,然后将它们连接成句子表示 $h_{lang}$。
图像模型中,为了基于字幕信息 $y$ 生成图像 $x$,扩展了 DRAW 网络,使其在每一步都包含字幕表示 $h_{lang}$。在每个时间步 $t$,编码器从图像 $x$ 和前一个解码器隐藏向量 $h_{gen}$ 接收输入。推理循环网络通过读取操作符产生近似后验 $Q(Z_{1:T}|x, y)$,具体计算如下:
$\hat{x}
t = x - \sigma(c
{t - 1})$
$r_t = read(x, \hat{x}, h_{gen_{t - 1}})$
$h_{infer_{t}} = LSTM_{infer}(h_{infer}, [r_t, h_{gen_{t - 1}}])$
$Q(Z_t|x, y, Z_{1:t - 1}) = N(\mu(h_{infer_{t}}), \sigma(h_{infer_{t}}))$
其中,$\hat{x}$ 是误差图像,$h_{infer_{0}}$ 初始化为学习到的偏置 $b$。
在每个时间步,从潜在分布中抽取的样本 $z_t \sim Q(Z_t|Z_{t - 1})$ 作为输入传递给解码器。解码器的输出 $h_{gen}$ 通过写入操作添加到累积画布矩阵 $c_t$ 中,最终用于重建图像。解码器的计算公式如下:
$z_t \sim P(Z_t|Z_{1:t - 1}) = N(\mu(h_{gen_{t - 1}}), \sigma(h_{gen_{t - 1}}))$
$s_t = align(h_{gen_{t - 1}}, h_{lang})$
$h_{gen_{t}} = LSTM_{gen}(h_{gen_{t - 1}}, [z_t, s_t])$
$c_t = c_{t - 1} + write(h_{gen_{t}})$
$\tilde{x} \sim P(x|y, Z_{1:T}) = \prod_{i} P(x_i|y, Z_{1:T}) = \prod_{i} Bern(\sigma(c_{T, i}))$
对齐模型用于计算输入字幕和中间图像生成步骤之间的对齐。给定语言模型的字幕表示 $h_{lang}$,对齐操作符通过使用对齐概率 $\alpha_{t}^{1, …, N}$ 的加权和输出每个步骤的动态句子表示 $s_t$:
$s_t = align(h_{gen_{t - 1}}, h_{lang}) = \alpha_{t}^{1}h_{lang}^{1} + \alpha_{t}^{2}h_{lang}^{2} + … + \alpha_{t}^{N}h_{lang}^{N}$
对应的对齐概率 $\alpha_{t}^{k}$ 为:
$\alpha_{t}^{k} \propto \exp(v^{\top}\tanh(Uh_{lang}^{k} + Wh_{gen}^{k} + b))$
最后,通过丢弃推理网络并从先验分布中采样潜在变量 $Z_{1:t}$ 来生成图像。使用在拉普拉斯金字塔残差上训练的确定性对抗网络对图像进行锐化。
该模型使用随机梯度变分贝叶斯(SGVB)算法进行训练,以最大化给定输入字幕 $y$ 时正确图像 $x$ 的边缘似然的变分下界 $L$:
$L = \sum_{Z} Q(Z|x, y) \log P(x|y, Z) - D_{KL}(Q(Z|x, y) \parallel P(Z|y)) \leq \log P(x|y)$
变分下界 $L$ 可通过全期望定律重新排列计算:
$L = E_{Q(Z_{1:T}|y, x)}[\log p(x|y, Z_{1:T}) - \sum_{t = 2}^{T} D_{KL}(Q(Z_t|Z_{1:t - 1}, y, x) \parallel P(Z_t|Z_{1:t - 1}, y))] - D_{KL}(Q(Z_1|x) \parallel P(Z_1))$
期望可以通过从 $Q(Z_{1:T}|y, x)$ 中抽取的 $L$ 个蒙特卡罗样本 $\tilde{z}
{1:T}$ 进行近似:
$L \approx \frac{1}{L} \sum
{l = 1}^{L} [\log p(x|y, \tilde{z}
{l}^{1:T}) - \sum
{t = 2}^{T} D_{KL}(Q(Z_t|\tilde{z}
{l}^{1:t - 1}, y, x) \parallel P(Z_t|\tilde{z}
{l}^{1:t - 1}, y))] - D_{KL}(Q(Z_1|x) \parallel P(Z_1))$
下面是多视图注意力 RNN 模型的主要组成部分表格:
| 模型部分 | 作用 |
| ---- | ---- |
| 语言模型 | 计算句子表示 |
| 图像模型 | 基于字幕信息生成图像 |
| 对齐模型 | 计算输入字幕和中间图像生成步骤之间的对齐 |
| 后处理模型 | 对生成的图像进行锐化处理 |
mermaid 格式流程图如下:
graph LR
A[输入字幕] --> B[语言模型]
B --> C[图像模型]
C --> D[对齐模型]
D --> E[后处理模型]
E --> F[生成图像]
多视图深度学习中的视图映射方法
4. 基于检索的方法
基于检索的方法在语义空间中往往比单视图方法表现更好,因为它们在更有意义和更丰富的空间中包含检索到的示例。这些搜索空间反映了两个视图的共性,通常针对检索进行优化。此外,它们允许双向映射,而单视图方法则难以实现这一点。然而,基于检索的方法需要手动构建或学习这样的语义空间,这通常依赖于存在大量配对样本的训练数据集。
4.1 深度片段对齐
深度片段对齐模型通过视觉和自然语言数据的深度多视图嵌入,实现图像和句子的双向检索。与直接将图像或句子映射到公共嵌入空间的先前模型不同,该模型在更细粒度的层面上工作,将图像片段(对象)和句子片段(类型化依赖树关系)嵌入到公共空间中。该模型主要由两部分组成:片段嵌入和片段对齐目标。
-
片段嵌入
-
图像片段嵌入
:在检测到每个图像中的对象后,为了提取和描述图像所组成的实体集,基于每个边界框内的像素 $I_b$ 计算嵌入向量(表示),公式如下:
$v = W_m[CNN_c(I_b)] + b_m$
其中,$CNN(I_b)$ 将边界框 $I_b$ 内的像素转换为分类器前全连接层的 4096 维激活。 -
句子片段嵌入
:为了提取和表示句子中描述的视觉可识别实体集并建立跨模态关系,使用依赖树关系来表示单个句子片段。用 400,000 个单词的字典将每个单词表示为 1 - of - k 编码向量 $w$,并将每个依赖三元组 $(R, w_1, w_2)$ 映射到嵌入空间,公式如下:
$s = f(WR\begin{bmatrix} W_ew_1 \ W_ew_2 \end{bmatrix} + b_R)$
这里,$W_e$ 是一个 $d \times 400,000$ 的矩阵,将 1 - of - k 向量编码为 $d$ 维单词向量表示。
-
图像片段嵌入
:在检测到每个图像中的对象后,为了提取和描述图像所组成的实体集,基于每个边界框内的像素 $I_b$ 计算嵌入向量(表示),公式如下:
-
片段对齐目标
-
全局排名目标
:图像 - 句子相似度应与真实对应关系一致,即对应的图像 - 句子对的得分应高于所有其他图像 - 句子对。图像 - 句子对齐得分定义为它们的成对片段得分的平均阈值得分:
$S_{kl} = \frac{1}{|g_k|(|g_l| + n)} \sum_{i\in g_k} \sum_{j\in g_l} \max(0, v_{i}^{\top} s_j)$
其中,$g_k$ 是图像 $k$ 中的图像片段集,$g_l$ 是句子 $l$ 中的句子片段集。全局排名目标为:
$C_G(\theta) = \sum_{k} \left[ \sum_{l} \max(0, S_{kl} - S_{kk} + \triangle) + \sum_{l} \max(0, S_{lk} - S_{kk} + \triangle) \right]$
这里,$\triangle$ 是一个超参数,该目标规定真实图像 - 句子对 $S_{kk}$ 的得分应比任何 $l \neq k$ 的 $S_{kl}$ 或 $S_{lk}$ 至少高 $\triangle$。 -
片段对齐目标
:考虑一个假设每个对应图像和句子片段之间存在密集对齐的(不完整)片段对齐目标:
$C_0(\theta) = \sum_{i} \sum_{j} \max(0, 1 - y_{ij}v_{i}^{\top} s_j)$
这里,求和是对训练集中所有图像和句子片段对进行的。$v_{i}^{\top} s_j$ 可以解释为视觉片段 $v_i$ 和句子片段 $s_j$ 的对齐得分。通过对 $y_{ij}$ 进行最小化,扩展后的片段对齐目标为:
$C_F(\theta) = \min_{y_{ij}} C_0(\theta)$
s.t. $\sum_{i\in p_j} y_{ij} + \frac{1}{2} \geq 1, \forall j$
$y_{ij} = -1, \forall i, j$ s.t. $m_v(i) \neq m_s(j)$ 且 $y_{ij} \in {1, -1}$
其中,$p_j$ 是句子片段 $j$ 的正包中的图像片段集,$m_v(i)$ 和 $m_s(j)$ 返回片段 $v_i$ 和 $s_j$ 所属的图像和句子的索引。
-
全局排名目标
:图像 - 句子相似度应与真实对应关系一致,即对应的图像 - 句子对的得分应高于所有其他图像 - 句子对。图像 - 句子对齐得分定义为它们的成对片段得分的平均阈值得分:
总体而言,这种方法将图像和句子分解为片段,并使用排名目标推断它们的跨模态对齐。提出了一种多视图相似度度量,用于内部对齐图像片段(视觉对象)和句子片段(依赖树关系)。
下面是深度片段对齐模型的主要步骤列表:
1. 进行图像片段嵌入,计算图像中对象的嵌入向量。
2. 进行句子片段嵌入,将句子中的依赖三元组映射到嵌入空间。
3. 计算全局排名目标,确保图像 - 句子相似度与真实对应关系一致。
4. 计算片段对齐目标,推断图像和句子片段的跨模态对齐。
mermaid 格式流程图如下:
graph LR
A[输入图像和句子] --> B[图像片段嵌入]
A --> C[句子片段嵌入]
B --> D[全局排名目标计算]
C --> D
B --> E[片段对齐目标计算]
C --> E
D --> F[多视图相似度度量]
E --> F
F --> G[双向检索]
综上所述,多视图深度学习中的视图映射方法包括生成模型和基于检索的方法。生成模型如深度条件生成对抗网络和多视图注意力 RNN 可以实现图像和文本之间的相互生成;基于检索的方法如深度片段对齐可以实现图像和句子的双向检索。这些方法在不同的应用场景中具有各自的优势和局限性,未来可以根据具体需求选择合适的方法来解决实际问题。
超级会员免费看

被折叠的 条评论
为什么被折叠?



