对比学习在图像分类中的应用主要体现在 OpenAI 的 CLIP 模型上。
CLIP 在预训练阶段,IE 使用带 mask 的 Transformer 抽取文本的全局特征,VE 使用 Resnet 或者 ViT 网络结构获取图片的全局特征。在 MI 部分,把同一对的 text-image 看成正样本,其余为负样本,做对比学习。对比学习一般会逐行和逐列分别求一次 softmax+cross-entropy,对角线元素为正样本,非对角线元素为负样本,最终除以 2 取平均。值得注意的是温度系数 np.exp(t),其中 t 不是固定参数,而是可学习的值,同时 exp(t)∈(0,∞)正好也符合温度系数的值域。OpenAI 称这样设置效果更好,也省去人工调参。此外,OpenAI 还使用了闭源的经过清洗后的多达 400M 的数据集,训练代码本身也是闭源的,这也是有后续 OpenCLIP 等工作的原因。
在做下游的分类任务时,CLIP 完全可以做 zero-shot,text 部分有很多模板选择,例如 a photo of等,最后效果出色,并且 ViT 的效果更好一点。
然而,CLIP 也存在局限性,在图像分类上效果很好,但直接使用在更复杂的 VQA/VR/VE 上效果不佳,并且训练昂贵,需要上千卡天的训练总时间(12 days on 256 V100)。
计算机视觉中,图像分类是根据图像中的语义信息对不同类别的图像进行区分。人和计算机理解图像的方式不一样,存在语义差异。人通过模式识别来分辨,计算机看到的是像素矩阵。计算机视觉的三大基础任务还包括目标检测和分割等。
OpenAI的CLIP作为(b)类别的代表,对TE和VE一视同仁,MI部分用简单的Contrastive Loss,最后在图片分类任务上效果拔群,影响力巨大。如下所示Pre-train预训练使用Contrastive Loss,具体如下IE使用带mask的Transformer,方便在encoder-decoder架构和decoder-only架构间切换,抽取得到文本的全局特征$$T_i$$VE使用Resnet或者ViT网络结构,得到图片的全局特征$$I_N$$MI部分把同一对的text-image看成正样本,其余为负样本,做对比学习对比学习一般会逐行和逐列分别求一次softmax+cross-entropy,对角线元素为正样本,非对角线元素为负样本,最终除以2取平均。代码更加清晰,如下所示这里值得注意的是温度系数np.exp(t),其中$$t$$不是固定参数,而是可学习的值,同时$$\exp(t)\in(0,\infty)$$正好也符合温度系数的值域。OpenAI说这样设置效果更好,也省去人工调参。此外OpenAI还是用了闭源的经过清洗后的多达400M的数据集,训练代码本身也是闭源的,这也是有后续OpenCLIP等工作的原因。Zero-shot Predition在做下游的分类任务的时候,完全可以做zero-shot,text部分有很多模板选择,例如a photo of{}等,最后效果大杀四方,并且ViT的效果更好一点局限性CLIP在图像分类上效果很好,但是直接使用在更复杂的VQA/VR/VE上效果不佳训练昂贵,需要上千卡天的训练总时间(12 days on 256 V100)
根据图像中的语义信息对不同类别的图像进行区分。如下图,图像中有person,tree,grass,sky。人和计算机理解图像的方式不一样,存在语义差异。人通过模式识别来分辨出猫和狗,但是计算机看到的是像素矩阵。[heading2]目标检测[content]找出图像或视频中的目标物体,同时检测出物体的位置和大小。如下图,用边框标记出所有人的位置。在多类别目标检测中,使用不同颜色的边框对检测到的物体进行标记。[heading2]图像分割[content]图像分割又可以划分为语义分割和实例分割。都是预测每个像素点所属的类别,不同的是语义分割不区分同类目标,而实例分割则需要区分同类目标中的不同个体。语义分割:通过将整个图像分成像素组,然后对像素组进行标记和分类。如下图,把图像分为人(红)、树木(深绿)、草地(浅绿)、天空(蓝)。实例分割:通过目标检测和语义分割的结合,将同类别下的物体也分成不同实例。语义分割实例分割[heading2]目标跟踪[content]对图像序列中的运动目标进行检测、提取、识别和跟踪,实现对运动目标的行为理解。
近期神经网络研究的巨大发展始于2010年左右,当时开始出现可用的大型公共数据集。一个名为ImageNet的大型图像集合包含了约1,400万张带注释的图像,这催生了[ImageNet大规模视觉识别挑战赛](https://image-net.org/challenges/LSVRC/)。2012年,卷积神经网络首次被用于图像分类,使得分类错误率大幅下降(从近30%降至16.4%)。2015年,微软研究院的ResNet架构达到了人类水平的准确率。从那时起,神经网络在许多任务中都表现得非常成功:|年份|实现人类水平准确率|<br>|-|-|<br>|2015|[图像分类](https://doi.org/10.1109/ICCV.2015.123)|<br>|2016|[对话语音识别](https://arxiv.org/abs/1610.05256)|<br>|2018|[自动化机器翻译](https://arxiv.org/abs/1803.05567)(从中文到英文)|<br>|2020|[图像描述](https://arxiv.org/abs/2009.13682)|在过去几年中,我们见证了大型语言模型的巨大成功,例如BERT和GPT-3。这主要归功于有大量的通用文本数据可供使用,让我们可以训练模型来捕捉文本的结构和含义,在通用文本集合上对它们进行预训练,然后针对更具体的任务对这些模型进行专门化。我们将在本课程的后半部分学习更多有关自然语言处理的知识。[heading1]🚀挑战[content]浏览一下互联网,在你看来,人工智能在哪里得到了最有效的应用。是在地图应用程序中,还是在语音转文字服务或视频游戏中?研究这些系统是如何构建的。[heading1][课后测试](https://red-field-0a6ddfd03.1.azurestaticap