一、MMPreTrain算法库介绍
MMPretrain 是一个全新升级的预训练开源算法框架,旨在提供各种强大的预训练主干网络,并支持了不同的预训练策略。
MMPretrain 源自MMClassification和MMSelfSup,并开发了许多令人兴奋的新功能。目前,预训练阶段对于视觉识别至关重要,凭借丰富而强大的预训练模型,我们能够改进各种下游视觉任务。我们的代码库旨在成为一个易于使用和用户友好的代码库,并简化学术研究活动和工程任务。
代码仓库:https://github.com/open-mmlab/mmpretrain
文档教程: https://mmpretrain.readthedocs.io/en/latest/
1.1 算法库与任务组成
支持开箱即用的推理API和模型,包含丰富的相关任务
- 图像分类(Image Classification)
- 图像描述(lmage Caption)
- 视觉问答(Visual Question Answering)
- 视觉定位(Visual Grounding)
- 检索(Retrieval,lmage-To-lmage, Text-To-lmage,Image-To-Text)
1.2 框架概览
代码框架:
数据流介绍:整体模型流程
配置文件的运行方法:
二、经典主干网络
2.1 ResNet
根据ALexNet(2012),VGG(2014),GoogleNet(2014),训练得知;
1,模型层数增加到一定程度后,分类争取率不增反降,深度增加模型收敛出现问题,
现象:卷积退化为恒等映射时,深层网络与浅层网络相同,所以,深层网络应具备不差于浅层网络的分类精度
猜想:虽然深层网络有潜力达到更高的精度,但常规的优化算法难以找到这个更优的模型即,让新增加的卷积层拟合一个近似恒等映射,恰好可以让浅层网络变好一点
ResNet-34 ImageNet Top-5 准确率:94.4%;
深度学习领域影响力最大、使用最广泛的模型结构之一,获得CVPR 2016 最佳论文奖
残差结构也一直被广泛应用至今,不论计算机视觉的如今的各类视觉 Transformer 或者是ConvNeXt这类卷积神经网络,亦或是近期大火的GPT 及各类大语言模型中都有着残差结构的身影。
2.2 Vision Transformer
- 将图像切分成若干16x16 的小块,所有块排列成词向量”,先经过线性层映射,一张H,WC]维度的图片变为[L,C],再经多层Transformer Encoder 的计算产生相应的特征向量
- 图块之外加入额外的token,用于query 其他 patch 的特征并给出最后分类
- 注意力模块基于全局感受野,复杂度为尺寸的4次方
三、自监督学习
市面上存在海量数据,标注好的数据很少,研究员们为了利用这些数据,而不依赖标注,让深度神经网络能够从数据本身学到对应的特征表达;
早期是根据各种概率任务进行,图像上色,乱序重拍等
3.1 SimCLR
基本假设:如果模型能很好地提取图片内容的本质,那么无论图片经过什么样的数据增强操作,提取出来的特征都应该极为相似。
3.2 MAE
基本假设:模型只有理解图片内容、掌握图片的上下文信息,才能恢复出图片中被随机遮挡的内容。
四、多模态算法
4.1 CLIP
4.2 BLIP