使用 Meta-model 在 Adding 任务上搜索循环单元

在固定任务和训练协议下,我们生成 1,000,000 个循环单元候选,使用冻结的 meta-model 预测其可用性和训练后误差,再把预测 Top-50 交给真实训练。本页介绍这一搜索闭环、循环单元 DSL,以及其中一种高性能 DAG 的具体结构。

1. Adding 任务

每个样本是一条长度为 $T=48$ 的二通道序列:

\[ \mathbf{u}_t=(v_t,m_t),\qquad v_t\sim\operatorname{Uniform}[-1,1],\quad m_t\in\{0,1\}. \]

第一通道是随机数值,第二通道是 marker。序列前半段和后半段各随机选择一个位置 $i_1,i_2$,只在这两个位置令 marker 为 1。回归目标是两个被标记数值的均值:

\[ y=\frac{v_{i_1}+v_{i_2}}{2}. \]

模型必须在干扰值中识别两个 marker,并把较早出现的数值保留到序列末端。固定数据规模为 1,024 个训练样本、256 个验证样本和 256 个测试样本。二维输入首先经过共享线性层投影为 64 维 $x_t$,循环单元处理完整序列后,由 $h_T$ 上的线性 readout 预测 $y$。

2. 循环单元 DSL

DSL 描述的是一个时间步内,$(x_t,h_{t-1},c_{t-1},g_t)$ 如何生成 $(h_t,c_t)$。其中候选内容预先计算为

\[ g_t=\tanh\!\left(W_g[x_t;h_{t-1}]+b_g\right). \]

每个候选固定包含三个 Gate、一个 Add 和两个输出。Gate 定义为

\[ \operatorname{Gate}(a,b;v,\phi) =\sigma\!\left(W[a;b]+b_0\right)\odot\phi(v), \]

其中 $a,b$ 是两个不同且对称的 context 输入,$v$ 是角色不同的 value 输入;$\phi$ 为 identity 或 tanh。三个 Gate 中固定有两个 identity value branch 和一个 tanh value branch。

这个受控空间包含 LSTM 和普通 tanh RNN,同时允许改变门控对象、记忆路径、内部拓扑和输出残差。

3. 参考架构

图中只画参与最终输出的有效计算。RNN 在固定 DSL inventory 中未被输出使用的三个 Gate 被省略。

RNN

\[ h_t=\tanh\!\left(W_g[x_t;h_{t-1}]+b_g\right),\qquad c_t=c_{t-1}. \]

展开的 RNN 计算图

LSTM

\[ \begin{aligned} f_t&=\sigma(W_f[x_t;h_{t-1}]+b_f), & i_t&=\sigma(W_i[x_t;h_{t-1}]+b_i),\\ o_t&=\sigma(W_o[x_t;h_{t-1}]+b_o), & g_t&=\tanh(W_g[x_t;h_{t-1}]+b_g),\\ c_t&=f_t\odot c_{t-1}+i_t\odot g_t, & h_t&=o_t\odot\tanh(c_t). \end{aligned} \]

展开的 LSTM 计算图

4. 百万候选的 Meta-model 筛选

搜索过程分为低成本筛选和真实训练两级:

  1. 按 24 种 canonical internal order 均匀生成 1,000,000 个互不等价的 DAG;每个候选都要求三个 Gate 和 Add 至少连接到 $h_t$ 或 $c_t$。
  2. 冻结的 meta-model 先预测候选是否可用。以可用概率 $p\geq0.5$ 为阈值,共有 367,446 个候选通过。
  3. 对通过者预测最佳验证集归一化 MSE 的自然对数,并按预测值从低到高排序。
  4. 只对预测 Top-50 运行完整的 400-epoch 真实训练。50 个候选全部完成训练,没有发生数值发散。

生成、编码和筛选 1,000,000 个候选耗时 381.5 秒;Top-50 的真实训练耗时 1,179.6 秒。前一阶段是 meta-model 推理而不是候选训练,因此可以把大搜索空间压缩为很小的真实实验集合。

5. 一个高性能 DAG 的结构

该结构的内部拓扑顺序为 Gate 0 -> Add -> Gate 2 -> Gate 1。它的完整有效更新为

\[ \begin{aligned} u_t^{(0)} &=\sigma\!\left(W_0[c_{t-1};x_t]+b_0\right)\odot g_t,\\ a_t &=c_{t-1}+g_t+u_t^{(0)}+h_{t-1}+x_t,\\ u_t^{(2)} &=\sigma\!\left(W_2[g_t;u_t^{(0)}]+b_2\right)\odot x_t,\\ c_t &=\sigma\!\left(W_1[a_t;x_t]+b_1\right)\odot\tanh\!\left(u_t^{(2)}\right),\\ h_t &=h_{t-1}+c_t. \end{aligned} \]

展开的高性能 DAG 计算图

对应的 DSL 连接可以直接写成:

节点 Context 输入 Value 输入 Value 激活 / 求和输入
Gate 0 $c_{t-1},x_t$ $g_t$ identity
Add - - $c_{t-1},g_t,\mathrm{Gate0},h_{t-1},x_t$
Gate 2 $g_t,\mathrm{Gate0}$ $x_t$ identity
Gate 1 $\mathrm{Add},x_t$ $\mathrm{Gate2}$ tanh
$c_t$ - - Gate 1
$h_t$ - - $h_{t-1}+\mathrm{Gate1}$

从结构上看,它把受门控、受限幅的更新写入 $c_t$,再通过 $h_t=h_{t-1}+c_t$ 建立显式加性记忆路径。相比 LSTM 对旧记忆使用遗忘门,这条路径不会在每个时间步直接乘一个遗忘系数;这与 Adding 任务需要长期保留两个稀疏数值的性质相符。Add 节点同时融合旧状态、当前输入和候选内容,可能让 marker 与数值信息更容易进入最终更新。这些只是结构解释,尚不能视为因果结论。

6. 三种架构的实验结果

表中指标为归一化 MSE(NMSE):三种架构使用相同的数据、初始化种子和训练协议,并以验证集 NMSE 最低的 checkpoint 在测试集上评估。“有效循环单元参数量”只统计实际参与计算的门控与候选状态变换(包括 $g_t$),不含共享 input projection 和 readout,也不计未进入有效计算图的 Gate。

架构 有效循环单元参数量 最佳验证 NMSE 测试 NMSE
RNN 8,256 0.11794419 0.11781284
LSTM 33,024 0.00529971 0.00461830
高性能 DAG 33,024 0.00003589 0.00003775
\[ \frac{\operatorname{NMSE}_{\mathrm{LSTM}}} {\operatorname{NMSE}_{\mathrm{DAG}}} =\frac{0.00461830}{0.00003775} =122.35. \]

对应的测试集原始 MSE 分别为:RNN 0.01954754、LSTM 0.00076627、高性能 DAG 0.000006263。归一化对同一任务中的全部架构使用相同常数,因此不改变上述比值。