ViT为何引入cls_token
生活随笔
收集整理的這篇文章主要介紹了
ViT为何引入cls_token
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Vision Transformer在一些任務上超越了CNN,得益于全局信息的聚合。在ViT論文中,作者引入了一個cls_token作為分類特征。
如果沒有cls_token,我們使用哪個patch token做分類呢?根據自注意機制,每個patch token一定程度上聚合了全局信息,但是主要是自身特征。ViT論文還使用了所有token取平均的方式,這意味每個patch對預測的貢獻相同,似乎不太合理。實際上,這樣做的效果基本和引入cls_token差不多。
cls_token的作用
- cls_token與圖像無關。它是隨機生成的,不基于圖像內容,因此可以避免對sequence中某個特定token的偏向性。
- cls_token 對所有其他token上的信息做匯聚(全局特征聚合),cls_token(第0個token)使用固定的位置編碼能夠避免輸出受到位置編碼的干擾。
- 采用attention機制來做全局特征聚合而言表達能力比token取平均的方式更強。因為采用attention機制來做特征聚合,能夠根據query和key之間的關系來自適應地調整特征聚合的權重,而采用求平均的方式的權重是相同的。
總結
以上是生活随笔為你收集整理的ViT为何引入cls_token的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java版我的世界快速建造_1分钟教你建
- 下一篇: 判断PPC或者SP平台