人工神经网络、深度学习方法和反向传播算法构成了现代机器学习和人工智能的基础。但现有方法往往是一个阶段更新网络权重,另一个阶段在使用或评估网络时权重保持不变。这与许多需要持续学习的应用程序形成鲜明对比。最近,一篇发表在《nature》杂志上的研究论文《Loss of plasticity in deep continual learning》证明:标准的深度学习方法在持续学习环境中会逐渐失去可塑性(plasticity),直到它们的学习效果不比浅层网络好。
令人惊讶的是,Adam、Dropout 和归一化等流行方法实际上增加了可塑性的损失;而 L2 正则化在许多情况下减少了可塑性的损失。研究团队发现:显式保持网络权重较小的算法通常能够保持可塑性,甚至在许多任务中能够提高性能。该研究基于上述发现,提出了反向传播算法的一种变体 —— 持续反向传播,该算法向网络注入可变性并保持其某些权重较小。 方法 持续反向传播持续反向传播算法将选择性地对网络中低效的单元进行初始化处理。研究团队定义了名为「贡献效用」的值来衡量每个单元的重要性。如果神经网络中某个隐藏单元对它所连接的下游单元的影响很小,那么它的作用就可能被网络中其他更有影响力的隐藏单元掩盖。贡献效用通过计算即时贡献的移动平均值来衡量,这个值由衰减率表示。在所有实验中,初始衰减率 η 设置为 0.99。在前馈神经网络中,第 l 层第 i 个隐藏单元在时间 t 的贡献效用更新如下:
其中是时间 t 时第 l 层第 i 个隐藏单元的输出,代表其权重,代表第 l+1 层的单元数量。当一个隐藏单元被重新初始化时,它的输出的权重将被初始化为零。这么做是为了新添加的隐藏单元不会影响模型已经学到的功能。但是这样也容易导致新的隐藏单元很快被重新初始化。为了防止这种情况,研究团队设置了「成熟阈值」,在 m 次更新前,即使新的隐藏单元的效用是零,也不会被重新初始化。当更新次数超过 m 后,每一步「成熟单元」的一部分 ρ(称为替换率),在每一层都会被重新初始化。替换率 ρ 通常设置为一个非常小的值,这意味着在数百次更新后只替换一个单元。例如,在 CIFAR-100 中,研究团队将替换率设置为 10 的负五次方,每一步,大约 0.00512 个单元被替换。这相当于大约每 200 次更新替换一次。最终的算法结合了传统的反向传播和选择性重新初始化两种方法,以持续地从初始分布中引入随机单元。每次更新时,持续反向传播将执行梯度下降并选择性地重新初始化。前馈神经网络的持续反向传播如算法1所示。处理小批量数据时,可以采取一种更经济的方法:通过对小批量数据上的即时贡献效用取平均值,而不是保持一个运行平均值来节省计算量。