首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ViT和BERT中的类令牌

ViT和BERT中的类令牌
EN

Data Science用户
提问于 2021-03-14 18:01:00
回答 2查看 6.6K关注 0票数 11

我试图理解ViT文件的体系结构,并注意到它们使用了类似于BERT的类标记。

据我所知,此令牌用于收集整个类的知识,然后仅用于预测图像的类。我的问题是-为什么这个令牌作为输入存在于所有的转换器块中,并且与单词/修补程序标记相同?

将类令牌与其他令牌一样对待意味着其他令牌可以处理它。我希望类令牌能够在其他令牌无法出席的情况下出席。

另外,特别是在ViT中,为什么类令牌接收位置编码?它代表整个类,因此没有任何特定的位置。

谢谢!

EN

回答 2

Data Science用户

发布于 2022-05-04 10:57:03

我的问题是-为什么这个令牌作为输入存在于所有的转换器块中,并且与单词/修补程序标记相同?

在默认情况下,变压器是按顺序排列的网络。由于ViT中没有解码器层,所以输入序列的长度(补丁数)等于输出序列的长度。因此,如果目标是分类,那么有两个选择:

  • 要么在变压器顶部应用一个完全连接的层(这不是个好主意,因为这样我们就必须确定补丁的数量-即转换为输入图像分辨率)。
  • 或者在输出序列的一个项目上应用分类层,但是哪一个呢?!这里最好的答案是他们中的任何一个!我们不想偏袒任何一个补丁。因此,这里最好的解决方案是添加一个虚拟输入,将其称为类令牌,并在相应的输出项上应用分类层!

将类令牌与其他令牌一样对待意味着其他令牌可以处理它。我希望类令牌能够在其他令牌无法出席的情况下出席。

不确定,但我认为如果其他令牌可以处理类令牌,那么它们可以在较低层使用一些有关图像类的中间信息!只是一个猜测,它值得测试不同的场景!

另外,特别是在ViT中,为什么类令牌接收位置编码?它代表整个类,因此没有任何特定的位置。

我认为主要的原因是,这样的网络可以区分类嵌入和补丁嵌入,并以不同的方式对待它们!

票数 9
EN

Data Science用户

发布于 2021-03-27 19:13:12

我的问题是-为什么这个令牌作为输入存在于所有的转换器块中,并且与单词/修补程序标记相同?

类令牌以可学习嵌入的输入形式存在,并加上输入补丁嵌入,所有这些都作为输入到第一个转换器层的输入。类令牌使用多头自我关注(MSA)从所有补丁中收集信息。它基本上与补丁令牌相同,但在进行分类时,只使用类令牌的隐藏输出作为分类层的输入。

将类令牌与其他令牌一样对待意味着其他令牌可以处理它。我希望类令牌能够在其他令牌无法出席的情况下出席。

我认为,这将有助于训练所有的重量在后背支柱,包括权重的嵌入层的输入补丁。

另外,特别是在ViT中,为什么类令牌接收位置编码?它代表整个类,因此没有任何特定的位置。

位置编码表明这是序列的第一个元素。如果你有一个像伯特这样的双向变压器模型会有帮助。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/90649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档