1.一种基于概率图和ViT模型的图片分类方法,其特征在于,包括以下步骤:S1、将输入模型的图片进行分块,然后将每个图片块展平成一维向量,最后通过线性变换生成patch embedding;
S2、给每个patch embedding加上位置编码,补充位置信息;
S3、增加一个用于分类的Token,学习其他图片patch的整体信息;
S4、基于头部交互的Transformer Block,把attention values看作隐变量,利用概率图模型中的Explaining‑away Effects以及Transformer的层级结构,将attention logits层层传递,并将相邻层的值进行融合,促进不同头部之间的交互;
S5、使用两层全连接层,将分类Token输入分类层,得到图片的分类结果。
2.根据权利要求1所述的一种基于概率图和ViT模型的图片分类方法,其特征在于,所述S1的具体步骤为:S11、将输入模型的图片进行分块、展平,具体操作为:将图片patch的长宽均设置为P,即将图片数据H*W*C变换为其中,N为一张图分割的patch数量,C为通道数,H为图片高度,W为图片宽度;
S12、将patch向量线性变换为patch embedding:patch_embedding=nn.Linear(patch_dim,dim)其中,patch_dim为patch向量的维度,dim为patch embedding的维度。
3.根据权利要求1所述的一种基于概率图和ViT模型的图片分类方法,其特征在于,所述S2的具体操作为:pos_embedding=nn.Parameter(torch.randn(1,num_patches+1,dim))其中,pos_embedding为patch的位置编码,num_patches为patch的数量。
4.根据权利要求1所述的一种基于概率图和ViT模型的图片分类方法,其特征在于,所述S3的具体操作为:添加一个专门用于分类的可学习编码,与输入进行拼接,具体为:cls_token=nn.Parameter(torch.randn(1,1,dim))其中,cls_token为分类Token,然后与其他patch token进行拼接。
5.根据权利要求1所述的一种基于概率图和ViT模型的图片分类方法,其特征在于,所述S4的具体步骤为:S41、attention head序列建模,将attention value看作隐变量,p(Y∣X)=∫Ap(Y∣A,X)p(A∣X)ΔdA其中,Y为图片label,X为输入照片,A为中间层Attention values,p(A∣X)是联合先验分布;
S42、Transformer层次化建模,利用transformer的层级结构,将此过程可表示为:j j j‑1 j
其中,A表示第j层的attention分布,A 的计算需要依赖A 的递归结构,具体来讲,A的计算通式如下:S43、相邻层的attention融合,在Transformer的层级Block的多头注意力计算模块添加MLP,将各层之间的attention vlaue进行融合交互,促进不同头部的去冗余,将此过程可表示为:j j j j‑1
A=softmax(z+MLP(z ,z ))j
其中,z 为第j层的attention logits,MLP是两层全连接层,用于相邻层注意力值得融合交互。
6.根据权利要求1所述的一种基于概率图和ViT模型的图片分类方法,其特征在于,所述S5的具体操作公式为:x=self.to_cls_token(x[:,0])y=self.mlp_head(x)
其中,x为输出的分类Token,mpl_head()为分类层,y为输出的预测。