在 Vision Transformer (ViT) 中,CLS token(分类 token)是一个特殊的标记,主要用于在模型的分类任务中提取全局图像的特征表示。以下是 CLS token 的作用及其工作原理的详细解释:
CLS Token 的引入
• CLS Token 是一种借鉴自 NLP 领域(Transformer 模型中)的设计。在自然语言处理中,CLS token 通常用于表示整个输入序列的全局语义信息。
• 在 ViT 中,CLS token 的目的是为图像输入提供一个全局的代表符号。
CLS Token 的工作原理
输入阶段:
1. 图像切分为 Patch:
• 输入图像被分割成固定大小的 patches(如 ),每个 patch 被展平成一个向量。
• 这些 patches 被嵌入为固定长度的特征向量,称为 patch embeddings。
2. 添加 CLS Token:
• 在 patch embeddings 序列的最前面添加一个特殊的 CLS token。
• CLS token 通常是一个可以学习的向量(随机初始化),其维度与 patch embedding 相同。
3. 位置编码:
• 对每个 patch 和 CLS token 加入位置编码,帮助模型感知输入的位置信息。
Transformer 阶段:
1.自注意力机制:
• CLS token 会参与所有层的自注意力计算,与每个 patch embedding 交互。
• 在每一层中,CLS token 会不断汇聚来自所有 patch 的全局信息。
2. 最终输出: