查看: 13|回复: 0

视觉 Transformer(ViT) 的诞生过程:一个原本只擅长处理文字的模型,怎么被改造成能 “看图” 的模型,以及它最终还差了什么

[复制链接]

1813

主题

5

回帖

5516

积分

超级版主

积分
5516
发表于 前天 15:10 | 显示全部楼层 |阅读模式
  • 起点:文字和图片是两套系统 2017 年 Transformer 在自然语言处理上几乎横扫旧方法,但图像领域到 2020 年仍主要靠 2012 年的卷积网络(AlexNet 那一套)。卷积像拿小窗口一格一格扫,猫耳朵和猫尾巴要经过十几层才能建立联系;而 Transformer 第一层就能让任意两个词直接算关系。柏林 Google Brain 的 Alexey Dosovitskiy 想试试:能不能让 Transformer 也看图?
  • 第一步:把像素当词,走不通 OpenAI 的 Image GPT 先试了直路 —— 把像素按阅读顺序排成一长串,像预测下一个词那样预测下一个像素。难点是颜色有 1600 多万种,没法给每种颜色配一行数字,于是统计出 512 种代表色做 “像素词表”,输入长度也缩到三分之一。但每个像素都要和其他像素两两计算,224×224 的图就有五万多个 token,计算量比语言模型大几万倍,一张显卡连一层都放不下,只能把图缩到 32×32,比手机图标还小。这条路证明了 Transformer 不依赖二维结构也能学到规律,但也证明了逐像素处理根本撑不住。
  • 第二步:切块,ViT 的关键 Dosovitskiy 团队换了单位:把 224×224 的图按 16 像素见方切成 14×14 共 196 个图像块(patch),每块 768 个数压成一串和词向量等长的数字。这样不需要词表,任何一块画面都能直接转换,颜色也不用压缩。两两计算从 25 亿次降到不到 4 万次,少了六万多倍。再补上位置编码,并在最前面加一个空的 CLS 位汇总全图做分类。
  • 为什么先输后赢 用 ImageNet 128 万张图训练时,ViT 比同规模卷积网络低几个百分点。原因是卷积结构里预置了两条 “归纳偏置”:相邻像素才相关、猫移到哪都还是猫。数据少时这是帮手,ViT 得自己从数据里摸索。换成 Google 内部 3 亿张图后,ViT 反超,ImageNet 准确率到 88.55%,算力还更省。
  • 它没解决的事 ViT 最后仍是从 ImageNet 的 1000 个预设类别里挑一个编号:橘猫对应第 281 格 “虎斑猫”,而水豚不在选项里,只能说成豚鼠或河狸,没法回答 “我不认识”。更关键的是,图像块和文字 token 虽然用同一种结构,两边的数字毫无对应关系 —— 照片和 “猫” 这个字,在模型眼里仍是两件不相干的事。视频结尾把问题留在了这里:怎么让它们终于认出彼此。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|天翼网

相关侵权、举报、投诉及建议等,请发 E-mail:2026@typc.net

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|晋ICP备2026008270号-1|晋公网安备14010602111293号

QQ客服返回顶部