Geoffrey Hinton讲座回顾:使用快速权重来存储临时记忆

简介: 这个讲座谈了快速权重(fast weight)的思想及其实现。这种快速权重可以被用于存储最近的临时记忆,并且它们提供了一种实现这种类型的对过去的注意(attention)的神经上可行的方法——近期它已被证明在序列到序列模型上是非常有帮助的。通过使用快速权重,我们可以不再需要存储神经活动模式的副本。

介绍:这个讲座谈了快速权重(fast weight)的思想及其实现。这种快速权重可以被用于存储最近的临时记忆,并且它们提供了一种实现这种类型的对过去的注意(attention)的神经上可行的方法——近期它已被证明在序列到序列模型上是非常有帮助的。通过使用快速权重,我们可以不再需要存储神经活动模式的副本。


E48CBBD2-7D90-4AAB-A3D7-E99BA4E25160.jpeg

点击查看原视频


其中的基本思想是临时记忆(temporary memories)可以不通过添加活动神经元(active neurons)来存储,而是可以通过在一些已有神经元上进行一些修改来实现。


对于每一个神经元连接,与这个连接相关的权重都有两个组分。一是标准慢权重(standard slow weight),其代表了长期记忆,学习慢衰减也慢。另一个是快速权重,代表了短期记忆,学习快衰减也快。快速权重是真正存在的,比如:启动(priming)。假设你听到了一个带有大量噪声的词,如果这是你第一次听到这个词,你可能无法识别它。但如果你在半个小时之前听过这个词,你就可以将其识别出来,这是因为你识别这个词的阈值(threshold)被你半小时之前的记忆降低了。一般而言,假设我们有一个局部表示(localist representation),为了实现上述效果,我们就可以临时降低某个特定词的阈值,而不是改变整个结构。你也可以从另一个角度来思考:假设你有一种活动模式,你可以改变活动模式之间的神经元的权重,以使其中一个特定的模式变成一个更强的吸引子(attractor,比如更容易识别一个词)。这是我们存储记忆的方式,我们通过改变权重来存储模式而不是直接存储模式。因为如果我们使用权重矩阵(weight matrix)而非活动向量(activity vector)来存储短期记忆,我们就能通过有限的神经元实现远远更大的容量。


存储临时知识的方式有两种:


长短期记忆(LSTM):在隐藏单元存储活动。它的容量非常有限。假设一个隐藏状态有 H 个单元,那么在关于当前序列的历史上,LSTM 就会受限于 O(H) 的短期记忆(吸引子)。除此之外,LSTM 将信息存储在其隐藏单元之中,从而使得该短期记忆与正在进行的过程无关。


快速权重:让你可以使用权重矩阵来存储短期记忆,这能带来更高的容量。除此之外,该短期记忆可以存储特定于当前序列的历史的信息,从而使得该信息可被用于影响正在进行的过程。


我们可以怎样应用快速权重的思想?


让我们从 ReLU RNN 开始。ReLU RNN 很易于训练,而且很擅长学习长期依赖(长期记忆)。下面的左图表示了普通的 RNN,右图则表示一个相同的 RNN(如果我们使用空矩阵进行了「隐藏→隐藏」权重初始化,如蓝色箭头所示)。为了应用快速权重的思想,这里使用了外积学习规则(outer product learning rule)来更新快速权重矩阵 A。


93EBA3FB-B6A5-4413-A7E3-2F8BF039182F.jpeg


更新快速权重矩阵 A 的规则:每次我们在时间步骤 t 学习到一个隐藏状态 h(t),我们就将当前快速权重 A(t-1) 与权重衰减参数 λ 相乘,并且加上乘以学习率 η 的新学习到的隐藏状态 h(t) 的外积(outer product)。这个更新函数如下所示。其快速权重即为过去的贡献(contribution)与随时间衰减的贡献的总和。在数学上,该贡献即为该隐藏状态的外积 h(t)h(t)^T。


A(t) = λA(t − 1) + ηh(t)h(t)^T

hs+1(t + 1) = f([Wh(t) + Cx(t)] + A(t)hs(t + 1))


0DE23949-1402-4550-AA60-8D8CACE808C2.png00042E3E-3389-4F0A-8000-5CCEA0BCB945.jpeg



增加层归一化(LN)技巧使其效果更好。


在标准 RNN 中,循环单元(recurrent units)的输入总和的平均幅度有一个趋势——每一个时间步骤要么会增大、要么会减小,这会导致梯度爆炸或消失。LN 则是在向隐藏单元所接收到的总输入向量应用非线性(ReLU)之前,将该向量归一化到零均值和单位方差。在一个层归一化的 RNN 中,其归一化项使其在该层的所有输入的总和的规模调整时保持不变,这能得到远远更加稳定的隐藏到隐藏动态(hidden-to-hidden dynamics)?


这样有效吗?


任务 1:联想任务


  • 假设有一个任务,其多个关键值对(key-value pairs)被表示一个序列,该序列作为输入
  • 将该序列转换成一个 R 维度向量,用作该循环隐藏单元的输入
  • 检查这个任务的误差率
  • 结果表说明 RNN 可以通过 100 个暗隐藏单元(dim hidden unit)解决这个问题,LSTM 可以使用 50 个暗隐藏单元解决它,而快速权重 RNN 只需要 20 个即可。这并不令人惊奇,因为在 FW RNN 中的 20 个暗隐藏单元能比普通 RNN 实现远远更大的容量。问题在于:它能够学习怎么使用这种记忆容量吗?是的,因为 FW RNN 在 R=20 时能达到 1.18% 的误差率。

4E5D834A-351C-4961-97D2-CD14AFDF6D8B.png

18DBB603-25B8-4540-974E-A42A3FE552B1.png


任务 2 :使用快速权重结合 glimpse


  • 视觉注意模型:注意模型已经展现出了能克服 ConvNet 一些缺陷的能力:一是理解 ConvNet 注意的地方;二,注意模型能有选择的关注图像的重要部分。注意模型如何工作?给定一张输入图像,视觉注意模型计算一系列的 glimpse,每个 glimpse 对应图像的一个小区域。视觉注意模型能学习找到图像中的不同物体并对他们进行分类,但它使用的计算 glimpse 的方法过于简化:它使用单尺度的 glimpse,并按照特定的顺序扫描整个图像。然而,人类的眼睛能够在不同的尺度上注意图像的不同部分,并结合整个观察做出正确的决定。改进模型记忆近期 glimpse 的能力,应该可以帮助视觉注意模型发现意义重大的 glimpse 策略。快速权重能学习一个序列中的所有 glimpse,因此隐态可被用于决定如何融合视觉信息,并检索合适的记忆。
  • 为了观察快速权重是否有效,想象一个简单的循环视觉注意模型,它不能预测该注意哪里,但却能从不同层级中获得位置的固定序列。该注意模型需要融合 glimpse 信息,从而成功的完成任务。快速权重可使用一个临时缓存来存储 glimpse 计算,而且同一模型的慢权重能融合 glimpse 信息。
  • 在 MINST 上评估多级视觉注意模型
  • Table 2 展现了带有多级 glimpse 的 ReLU RNN 和带有同样 glimpse 序列的 LSTM 的结果。结果表明在隐藏单元数量有限的情况下,快速权重有更强的记忆能力,也因此表现比 LRNN 和 LSTM 更好。此外,LSTM 也不擅长融合 glimpse,因为 LSTM 有序的处理 glimpse。改变 glimpse 的序列不能改变物体的意义。不像必须要融合一系列 glimpse 的模型,ConvNet 并行处理所有的 glimpse,并使用隐藏单元的层来留取所有的融合,所以它的表现要比序列模型更好。


37B68E32-B35A-4EA6-B847-564711882D53.png

实现:

https://github.com/jiamings/fast-weights


Hugo Larochelle 所做笔记:

http://www.shortscience.org/paper?bibtexKey=journals/corr/1610.06258#hlarochelle


思考


  • 该快速联想记忆模型结合了来自神经科学的思路。
  • 该论文没有提到模型在语言相关的任务上的表现,因此在语言任务中用快速权重 RNN 取代 LSTM 会很有趣。
  • 该论文表明不能使用 mini-batch,因为每个序列的快速权重矩阵都不同,但与一系列存储的隐藏向量相比却允许 mini-batch。mini-batch 确保我们能利用 GPU 计算能力的优势,但该快速权重模型如何使用 mini-batch 的思路还很模糊。



©本文为机器之心原创,转载请联系本公众号获得授权


相关文章
|
2月前
|
人工智能 安全 测试技术
ECCV 2024:机器遗忘之后,扩散模型真正安全了吗?
【9月更文挑战第22天】在人工智能技术飞速发展的背景下,扩散模型(DMs)在图像生成领域取得了显著突破,但同时也带来了潜在的安全风险。为此,研究人员提出了一种基于安全性的机器遗忘技术,旨在让模型忘记有害概念。然而,其有效性仍存疑。近期,一篇发表在ECCV 2024的论文提出了一种新的评估框架,利用对抗性提示测试经过机器遗忘处理的扩散模型的鲁棒性。研究人员开发了名为UnlearnDiffAtk的高效对抗性提示生成方法,简化了生成过程,无需额外分类器。广泛的基准测试显示,UnlearnDiffAtk在效果和效率上均优于现有方法,但也揭示了现有机器遗忘技术在鲁棒性上的不足。
58 5
|
3月前
|
存储 机器学习/深度学习 算法
【博士每天一篇文献-算法】连续学习算法之HNet:Continual learning with hypernetworks
本文提出了一种基于任务条件超网络(Hypernetworks)的持续学习模型,通过超网络生成目标网络权重并结合正则化技术减少灾难性遗忘,实现有效的任务顺序学习与长期记忆保持。
44 4
|
3月前
|
机器学习/深度学习 算法 网络架构
神经网络架构殊途同归?ICML 2024论文:模型不同,但学习内容相同
【8月更文挑战第3天】《神经语言模型的缩放定律》由OpenAI研究人员完成并在ICML 2024发表。研究揭示了模型性能与大小、数据集及计算资源间的幂律关系,表明增大任一资源均可预测地提升性能。此外,论文指出模型宽度与深度对性能影响较小,较大模型在更多数据上训练能更好泛化,且能高效利用计算资源。研究提供了训练策略建议,对于神经语言模型优化意义重大,但也存在局限性,需进一步探索。论文链接:[https://arxiv.org/abs/2001.08361]。
43 1
|
5月前
|
机器学习/深度学习 算法 存储
Bengio等人新作:注意力可被视为RNN,新模型媲美Transformer,但超级省内存
【6月更文挑战第3天】Bengio等人提出的新模型Aaren视注意力为特殊RNN,以解决Transformer在资源受限环境中的计算成本高和内存使用问题。Aaren模型通过并行前缀和算法实现高效计算和常数级内存使用,性能接近Transformer,同时在时间序列任务中表现优秀,尤其适合移动设备和嵌入式系统。尽管可能在某些复杂任务上不如Transformer,但其高效性为实时数据处理提供了潜力。论文链接:[https://arxiv.org/pdf/2405.13956](https://arxiv.org/pdf/2405.13956)
98 2
|
6月前
|
人工智能
ICLR 2024:鸡生蛋蛋生鸡?再论生成数据能否帮助模型训练
【4月更文挑战第3天】北京大学研究团队在ICLR 2024会议上提出了“自适应膨胀”(AdaInf)策略,改善对比学习效果。该策略针对数据膨胀(使用扩散模型生成图像增强)可能导致对比学习性能下降的问题,通过动态调整数据增强强度和混合比例,提升多种对比学习方法的性能。实验显示,AdaInf在不使用外部数据的情况下,使CIFAR-10线性准确率达到94.70%,刷新纪录。研究还揭示了数据增强与数据膨胀的互补关系,以及它们如何影响泛化误差。然而,AdaInf在大量生成数据和不同质量数据上的应用仍存在局限性。
81 3
ICLR 2024:鸡生蛋蛋生鸡?再论生成数据能否帮助模型训练
|
6月前
|
机器学习/深度学习 计算机视觉
【论文速递】MMM2020 - 电子科技大学提出一种新颖的局部变换模块提升小样本分割泛化性能
【论文速递】MMM2020 - 电子科技大学提出一种新颖的局部变换模块提升小样本分割泛化性能
42 0
|
机器学习/深度学习 算法 数据挖掘
清华、上交等联合发表Nature子刊:「分片线性神经网络」最新综述!
清华、上交等联合发表Nature子刊:「分片线性神经网络」最新综述!
165 0
清华、上交等联合发表Nature子刊:「分片线性神经网络」最新综述!
|
机器学习/深度学习
迁移学习域自适应性 - 李宏毅笔记
迁移学习域自适应性 - 李宏毅笔记
328 0
|
机器学习/深度学习 文件存储 计算机视觉
CVPR 2022 Oral | 腾讯优图&厦门大学提出无需训练的ViT结构搜索算法
CVPR 2022 Oral | 腾讯优图&厦门大学提出无需训练的ViT结构搜索算法
125 0
|
机器学习/深度学习
论文赏析[ACL18]基于RNN和动态规划的线性时间成分句法分析(二)
好像已经很久没有看论文了呢,开学了一堆事情,以后还是要抽空阅读论文,保持一定的阅读量,并且不能光看最新的论文,还得去前人传统的方法中去寻找有没有能应用于深度学习的东西,说不定就发ACL了呢(手动滑稽)。 论文地址:Linear-Time Constituency Parsing with RNNs and Dynamic Programming 代码地址:github
论文赏析[ACL18]基于RNN和动态规划的线性时间成分句法分析(二)
下一篇
无影云桌面