码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ViT:Vision transformer的cls token如何实现分类?


    CSDN ViT: Vision transformer的cls token作用?

    根据先前的一篇博客,可以关注到VitT作者引用类似flag的class token,其输出特征加上一个线性分类器就可以实现分类。

    那么,为什么可以这样做呢?是怎么实现的呢?


    目录

    1 Flag:究其根源,cls token类似flag?

    根据Flag的概念,cls token该如何理解?

    2 cls token在vision transformer中跟随的计算?

    3 cls token输出特征加上一个线性分类器就可以实现分类?

    线性分类器的概念?


    1 Flag:究其根源,cls token类似flag?

    想必大家都很熟悉立flag的玩笑话,那么其在计算机编程中的flag概念又是怎样的呢?

    百度百科指出:FLAG原本是一个编程指令,常被运用于计算机语言,例如C语言或D语言中,常于用来记载变量的一个参数。后指在游戏或影视出现剧情分歧时做出的影响后续剧情发展的选择,源自于编程术语,英语中的原意是信号或旗帜。

    在现实中,立flag的后果,无非就是成败之举。相同的在编程代码中,Flag是电脑程序中用于记录程序状态的单比特大小的标记。具体,Flag只有0和1之分,1立flag,0flag倒,两个数值,通常集中存放在内存中固定的区域里。程序在某种状态改变的同时改变flag的值,并在其他操作中通过flag了解状态,并决定接下来的操作。换句话说,flag可以用来帮助程序做复杂条件的判断。

    根据Flag的概念,cls token该如何理解?

    个人理解:感觉cls token和flag的概念类似之处就是简单?固定?

    如果硬要说flag关联,flag和cls token都是简单的状态标记。前期并不作用,单纯作为一个随机token和图像的token陪跑计算,在计算中分一杯羹,因为cls token本身就没有基于图像内容,那么后期所得到的信息就是其他token上的信息做汇聚(全局特征聚合),这也就解释了cls token对所有基于图像内容token一视同仁,可以避免对序列中其他token的偏向性。

    flag和cls token都是固定位置。这样能够避免输出受到位置编码的干扰。

    2 cls token在vision transformer中跟随的计算?

    熟悉vision transformer模型的小伙伴,比较熟悉大致流程:

    从image到token,随后添加一个cls token,接着就是embedding。

    参与的具体计算就是attention,将cls token当作一个普通token计算就行?

    The Illustrated Transformer – Jay Alammar – Visualizing machine learning one concept at a time. 

    3 cls token输出特征加上一个线性分类器就可以实现分类?

    线性分类器的概念?

    百度百科:在机器学习领域,分类的目标是指将具有相似特征的对象聚集。而一个线性分类器则透过特征的线性组合来做出分类决定,以达到此种目的。对象的特征通常被描述为特征值,而在向量中则描述为特征向量。

    定义:如果输入的特征向量是实数向量\vec{x},则输出的分数为:

    其中\vec{w}是一个权重向量,而f是一个函数,该函数可以通过预先定义的功能块,映射两个向量的点积,得到希望的输出。权重向量\vec{w}是从带标签的训练样本集合中所学到的。通常,"f"是个简单函数,会将超过一定阈值的值对应到第一类,其它的值对应到第二类。一个比较复杂的"f"则可能将某个东西归属于某一类。 

    对于一个二元分类问题,可以设想成是将一个线性分类利用超平面划分高维空间的情况: 在超平面一侧的所有点都被分类成"是",另一侧则分成"否"。

    那么不难理解,cls token经历过attention对其他token得到了一个权重分配,一定程度上就是表示图像的全局关注情况,cls token所得到的输出,结合线性分类器,基于权重向量,不难进行图像分类。

  • 相关阅读:
    基于yolov2深度学习网络的猫脸检测识别matlab仿真
    短视频直播盈利系统 专为企业打造的短视频直播盈利课(价值1980元)
    Nginx的安装与使用入门
    【系统稳定性 - 调优】3.4 常见Binder相关异常调优总结
    Java23种设计模式-创建型模式之原型模式
    HTB-Explore
    人工智能模型的微小单元
    Jenkins 基础配置
    分析性质+排列置换环+最小割:1024T4
    最新Cocos Creator 3.x 如何动态修改3D物体的透明度
  • 原文地址:https://blog.csdn.net/MengYa_Dream/article/details/126637207
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号