论文来源:journal homepage: www.elsevier.com/locate/eswa
论文标题:Condition-CNN:Ahierarchicalmulti-labelfashionimageclassification
model
1.对于多标签任务分类历史研究
基本就是用修改的VGG16,VGG16是2+2+3+3+3,但是BCNN每个block就是2个conv层,2个BN层,一个MAXPOOLING层,总共4个block。
2.condition-cnn架构
这是在训练时的模型
需要用标签数据,但是引入了CPWM(条件概率权重矩阵):相对来说比较重要的创新点。
对于理解CPWM需要有概率论的知识,首先提出了P(A)
P(A)其实就是贝叶斯公式中的归一化证据因子。
其中P(A=aj)是细粒度类为j的概率,P(B=bi)是粗粒度类为i的概率,因为细粒度的分类为J,粗粒度的分类为I,所以CPWM矩阵为I*J。其中每一行相加为1(也是用到贝叶斯定理)
证明如下:
最初的CPWM是由父粒度生成的独热编码,将CPWM变成可训练的。
再通过softmax的输出为父粒度的概率
再将V和CPWM相乘得到:
这是推理定义的条件CNN,首先通过真值来训练CPWM,然后再将训练后的CPWM作为test,为定值,在test上是将前一个softmax的输出乘以CPWM。
3.损失函数
对于三个分支都使用的是交叉熵函数,但是三个loss的损失权重是随时间变化的,epoch越往后,对于细粒度的权重就越高。
大致思路就是这样,代码地址:GitHub - bKolisnik/Condition-CNN