点击上方,选择星标,每天给你送干货!
作者丨Geoffrey Hinton
来源丨AI科技评论
编辑丨极市平台
极市导读
Twitter 上发现了一篇Hinton的新论文,作者只有Hinton本人,这篇论文没有介绍具体的算法,而是描绘了一个关于表示的宏观构想:如何在神经网络中表示部分-整体层次结构。
AI科技评论在 Twitter 上发现了一篇Hinton的新论文,作者只有Hinton本人,这篇论文没有介绍具体的算法,而是描绘了一个关于表示的宏观构想:如何在神经网络中表示部分-整体层次结构。
值得一提的是,分享论文的Kosta Derpanis也在推特里介绍了Hinton的第一篇论文:“Using Relaxation To Find A Puppy”。Kosta Derpanis在论文里标记了一句话:“局部的模糊性必须必须通过寻找最佳的全局解释来解决。”并表示,Hinton现在又回到了最初的起点。
Hinton第一篇论文:https://www.cs.toronto.edu/~hinton/absps/puppet.pdf
局部和整体的一致性表示似乎一直是Hinton的研究重点。比如,胶囊网络通过局部到整体的动态路径选择一致性来学习识别,近期Hinton还将其扩展到了无监督学习,并应用了Transformer架构;对比学习则学习一种表示,使得同一幅图像的的各个局部具有相似的表示;认知神经科学出身的Hinton还一直坚持探索着大脑的学习机制,比如back relaxation试图在自顶向下表示和自底向上表示之间产生一致性,而这又和对比学习有联系。
在这篇新论文中,Hinton又将为我们描绘出怎样一幅图景呢?
论文链接:https://arxiv.org/pdf/2102.12627.pdf
这篇论文没有描述工作系统,而是单单提出了一个关于表示的想法。这个想法能够把Transformer、神经场(neural fields)、对比表示学习、蒸馏和胶囊等先进观点整合到一个名为“GLOM 1”的设想系统中。
一个具有固定架构的神经网络如何将一张图像解析成一个整体的分级体系(其中,每张图像都有不同的结构)?针对这个问题,GLOM 给出了一个简单的答案,即使用相同向量的孤岛来表示解析树中的节点。如果 GLOM 真的能够正常运转,那么,当它在视觉或语言上应用时,它能够极大地提高类似Transformer的系统所生成的表示的可解释性。
“GLOM”一词源自一句俗语“ glom together”(“抓”到一起),可能是来源于“凝聚”(agglomerate)一词。
1
观点总览
心理学提供了一个有力证据,表明:人们会将视觉场景解析为整个分层体系,并将部分与整体之间视角不变的空间关系,建模为他们分配给该部分和整体的内在坐标系之间的坐标转换。
如果我们想要建立像人类一样理解图像的神经网络,那么我们需要想明白:神经网络是如何表示部分-整体的分层体系?这很困难,因为一个真实的神经网络无法将一组神经元进行动态分配,以表示解析树中的一个节点。
神经网络无法动态分配神经元,也是一系列用到“胶囊”观点的模型所出现的原因。这些模型会作出如下假设:被称为“胶囊”的一组神经元会永远成为图像特定区域中的某一特定类型的一部分。通过激活这些预先存在的、类型特定的胶囊子集,以及胶囊之间的适合连接,可以构建一个解析树。
这篇论文介绍了一种非常不同的方式,可以使用胶囊来表示神经网络中的部分-整体分层体系。
虽然这篇论文主要讨论了单个静态图像的感知,但我们可以简单地将 GLOM 理解为用于处理一系列帧的管道,因此静态图像可以被视为一系列相同的帧。
GLOM 架构由许多列(column)组成,所有列均使用完全相同的权重。每一列都是一堆空间局部自动编码器,这些编码器会学习小图像块(image patch)中的多个不同级别的表示。每个自动编码器都会使用多层自下而上的编码器和多层自上而下的解码器,将同一个级别的嵌入转换为相邻级别的嵌入。这些级别与部分-整体分层体系中的级别一一对应。比如,显示一张人脸图像时,一个单列可能会收敛到表示一个鼻孔、一个鼻子、一张脸和一个人的嵌入向量上。图 1 显示了不同级别的嵌入如何在单列中进行交互。
图1:单列中,GLOM架构的三个相邻级别的自下而上、自上而下、同列的交互。
代表自下而上和自上而下交互的蓝色和红色箭头是由两个具有多个隐藏层的不同神经网络来实现。这些网络在成对的级别中有所差异,但它们可以跨列、跨时间步分享。自上而下的网络也许应该使用正弦单位。对于静态图,绿色箭头可以简单看作按比例缩放的残差连接,以实现每个级别的嵌入的时间平滑。对于视频,绿色连接可以是基于多个先前状态的胶囊来学习时间动态的神经网络。不同列中,相同级别的的嵌入向量之间的交互可以通过非自适应的、注意力加权的局部平滑器(图中没有显示)来实现。
图 1 没有显示不同列中同一级别的嵌入之间的交互。这比同一列内的交互要简单得多,因为它们不需要执行部分-整体坐标转换。它们就像代表一个多头 transformer 中不同单词片段的列之间的注意力加权交互,但更简单,因为查询、键和值向量都与嵌入向量相同。列与列之间的交互作用是,通过使一个级别的每个嵌入向量向附近位置的其他类似向量回归,从而在该级别上产生具有相同嵌入的岛。这将创建多个局部“回音室”,其中一个级别的嵌入主要听从其他想法相似的嵌入。
在每一段离散时间和每一列中,一个级别的嵌入将被更新为拥有四个贡献(如下)的加权平均值:
自下而上的神经网络在前一个时间作用于下层级别的嵌入而产生的预测;
自上而下的神经网络在前一个时间作用于上层级别的嵌入而产生的预测;
上一个时间步的嵌入向量;
前一个时间在附近列相同级别的嵌入的注意力加权平均值。
对于静态图,一个级别的嵌入应随着时间的流逝而沉淀,以生成拥有几乎相同向量的不同岛。如图 2 所示, 这些岛在更高的级别上应该更大。使用相似的岛来表示图像的解析,避免了需要分配神经元组来动态表示正在运行的解析树的节点,或预先为所有可能的节点设置神经元的情况。GLOM 系统不是分配神经硬件来表示解析树中的节点,或为节点提供指向其祖先和后代的指针,而是分配了一个合适的活动向量来表示该节点,并在属于该节点的所有位置上使用了相同的活动向量。访问节点的祖先和后代的能力是通过自下而上和自上而下的神经网络实现的,而不是通过使用 RAM 检查表格来实现的。
图 2:在特定时间里,6 个相邻列的嵌入。
图 2 所显示的所有位置都属于同一对象,且场景级别尚未在共享矢量上定居。通过将向量划分为部分-整体分层体系中每个级别的单独部分,然后将一个级别的的高维嵌入向量显示为二维向量,那么每个位置的完整嵌入向量就可以显示出来。这可以很好地解释不同位置的嵌入向量的对齐。图 2 所示的不同级别上向量相同的岛,实则表示一棵解析树。但是,相同的岛比短语结构语法要强大得多。比如,在“这是否会减慢短语结构语法的速度”的问题上,它们可以毫不费力地表示断开连接的对象。
就像BERT一样,整个 GLOM 系统可以进行端到端的训练,以在最后的时间步从缺少某一区域的输入图像中重建图像。但是,目标函数还包含两个倡导在每个级别上向量几乎相同的岛的正则化器(regularizer)。正则化器只是一个级别的新嵌入与自下而上、自上而下的预测之间的一致性。提高这个一致性能够促进局部岛的形成。
图 4:这是将图 1 所示架构进行可视化的另一种方式,可以使该架构与 transformer 之间的关系更加明显。图 1 中表示时间的水平尺寸变成了图 4 中表示层的垂直尺寸。此时,在每一个位置,每一层都有部分-整体分层体系中所有级别的嵌入。这与垂直压缩图 1 中单个时间片内的级别描述一致。
静态图的解释仅需要使用该架构进行一次前向传递。这里将所有级别特定的自下而上和自上而下的神经网络都显示为单个神经网络。图 5 显示了另一种查看 GLOM 架构的自下而上和自上而下的神经网络。
图 5:GLOM 在同一个位置(即单列的一部分)的两个相邻层。在前向传递的过程中,L 级的嵌入向量通过多层自下而上的神经网络从上一层 L-1 级的嵌入向量中接收输入。L 级还通过多层自上而下的神经网络从上一层 L+1 级的嵌入中接收输入。在前向传递的过程中,对上一层 L+1 级的依赖取得了自上而下的效果。嵌入在 t+1 层中的 L 级还取决于嵌入在 t 层中的 L 级嵌入和 t 层中其他附近位置的 L 级嵌入的注意力加权总和。图中没有显示级内的交互。
2
论文目录
论文的目录如下,感兴趣的朋友可以点击上面的链接去拜读Hinton的新大作:
2、引言
2.1 生物学类比
2.2 数学类比
2.3 神经场
2.4 部分-整体分层体系的显式表示和紧急表示
3、一些设计决策
3.1 有多少个级别?
3.2 位置的细粒度如何?
3.3 自下而上的网络是否会查看附近的位置?
3.4 注意力如何工作?
3.5 视觉输入
4、颜色和纹理
5、集群发现与集群形成
6、在位置上复制嵌入向量
7、学习岛
8、表示坐标变换
9、表示不确定性
9.1 在更新嵌入时组合不同的信息源
10、与其他神经网络模型进行比较
10.1 与胶囊模型对比
10.2 与 transformer 模型对比
10.3 与卷积神经网络对比
10.4 表示 ISA 分层体系
10.5 与 2D Ising 模型的关系
10.6 与其他消除冗余的方法对比
11、视频
12、GLOM 在生物学上是否合理?
12.1 新皮质是一个大型“蒸馏”厂吗?
12.2 睡眠在对比学习中的作用?
12.3 传播大脑中的误差导数
13、讨论
说个正事哈
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方“深度学习自然语言处理”,进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
推荐两个专辑给大家:
专辑 | 李宏毅人类语言处理2020笔记
专辑 | NLP论文解读
专辑 | 情感分析
整理不易,还望给个在看!