多模态大模型:算法、应用与微调
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.3 大数据预训练

随着模型的扩大和数据集的增长,我们还没有看到Transformer模型有任何性能饱和的迹象,这就比较有意思了。因为我们知道,很多时候并不是一味扩大模型或者数据集就能取得很好的效果,尤其是当扩大模型的时候,很容易出现过拟合的问题,但是对于Transformer模型来说,目前还没有观测到这个瓶颈出现。

ViT的训练数据集主要是ImageNet-1k(1000个类别,1.3M大小的图像)和ImageNet-21k(21000个类别,14M大小的图像),还有谷歌自己收集的JFT数据集(18000个类别,303M大小的图像)。那么训练ViT到底需要多大的数据集呢?研究者做了一个相关实验,结果如图1-34所示,横轴表示不同大小的数据集,纵轴表示模型在ImageNet测试集上的准确率,图中BiT表示不同大小的ResNet,而其他颜色和大小不一的圆圈表示的就是不同规模的ViT模型。可以发现,在最小的ImageNet-1k上做预训练时,ViT的效果基本都不如BiT,这是因为训练Transformer模型时没有卷积神经网络的先验知识。当在ImageNet-21k上做预训练时,可以发现ViT的效果就和BiT的效果差不多了。最后当采用JFT-300M数据集进行预训练时,可以发现ViT的效果已经全面超过BiT的效果了。

总的来说,当在中型数据集(ImageNet)上训练ViT时,如果不加入一些强约束,那么ViT相比于同等大小的残差神经网络效果要弱一些,而在大型数据集(JFT-300M)上训练时,即使没有强约束,ViT也能够取得与最好的卷积神经网络相近甚至比之更好的结果。这是因为Transformer模型相比于卷积神经网络来说缺少了一些先验知识。在卷积神经网络中实际上有两个先验知识:第一个是局部特征性,因为卷积神经网络是以滑动窗口的形式提取特征的,其前提是我们认为图像上相邻的区域具有相似的特征;第二个是平移不变性,即,也就是说,不论先做卷积再做平移,还是先做平移再做卷积,最终的结果是一样的。卷积神经网络基于这两个先验知识进行训练时,相当于已经有了一定的基础,就不需要大量的数据进行训练了,因此在小数据集上进行训练也能取得比较好的结果。对于Transformer模型来说,没有这些先验信息,所以说它所具有的对视觉世界的感知能力,全都需要从数据中自己学习,因此训练Transformer模型需要相对较大的数据集。

图1-34还给我们提供了两个信息:第一个信息是,如果我们想用ViT模型,那么至少应该准备ImageNet-21k那么大的数据集,如果只有很小的数据集,那还是用卷积神经网络比较好;第二个信息是,如果我们有比ImageNet-21k更大的数据集,那还是用ViT比较好,它的可扩展性和训练效率比卷积神经网络更好。ViT证明了在大规模数据集上预训练一个Transformer模型,是能够取得比卷积神经网络更好或者与它差不多的结果的。

图1-34 ViT与卷积神经网络在不同预训练数据集上的ImageNet Top1准确率对比

既然卷积神经网络和Transformer模型各有优缺点,那么自然可以想到将二者组合起来使用,即混合架构。卷积神经网络可以很好地获取图像中的局部特征和平移不变性特征,但是全局特征的处理效果并不好。而Transformer模型可以很好地处理序列数据,如文本数据中的长依赖关系,更擅长捕获全局相关特征。因此,将卷积神经网络和Transformer模型结合起来可以取长补短,克服各自的局限性。混合架构的模型往往会使用一个小的卷积神经网络作为特征提取器,从原始图像中提取特征图,通常是一些局部特征,如边缘、纹理等,然后将这些特征图输入Transformer模型中进行处理,提取全局依赖关系,如物体的位置、大小等。