行人属性分类算法:自适应权重多任务学习

论文:http://www.yugangjiang.info/publication/17MM-PersonAttribute.pdf

github地址:https://github.com/qiexing/adaptive_weighted_attribute

Adaptively Weighted Multi-task Deep Network for Person A!ribute Classification

 

一、创新点

这是2017年复旦大学提出的一种行人多属性分类算法,在常规的多任务学习基础上提出一种自适应权重更新方法,在网络训练的过程中根据验证损失的大小计算和更新每个属性分类任务的权重,总的损失是所有属性分类损失加权和。

 

1、网络结构

行人属性分类算法:自适应权重多任务学习_第1张图片

行人属性分类算法:自适应权重多任务学习_第2张图片

基网络采用ResNet-50,所有分类任务共享,在基网络提取的共享特征之上分别对每个属性进行分类。网络的输入分为两个部分,训练图片及验证图片,其中验证图片用于计算每个batch的验证损失(假设有M个属性,则记录每个属性分类分支的验证损失)。文中设置batch size=20,其中训练图片10张,验证图片为10张。

 

2、网络损失函数

base model

    

文中改进方案

行人属性分类算法:自适应权重多任务学习_第3张图片

其中\lambda表示权重。

从实验结果来看,自适应加权损失方法相比等权重损失(即每个属性的分类损失权重都为1,base model)分类精度提升1.4。相比对每个属性单独训练一个二分类模型方案(Separate Models)提升2.2。

行人属性分类算法:自适应权重多任务学习_第4张图片

3、损失权重更新迭代的方法

M个属性分类的训练损失权重初始化为1(M维的向量)。每训练迭代k个batch后(文中设置为200),根据当前记录的k个验证损失及上一次记录的k个验证损失计算每个属性权重并更新。基本思想是根据验证损失大小判断每个属性分类模型的泛化能力,泛化能力差的模型会增大损失权重,使训练过程能更好的拟合该属性,提升分类精度。类似在训练过程中做在线困难样本采样(OHEM)。

行人属性分类算法:自适应权重多任务学习_第5张图片

行人属性分类算法:自适应权重多任务学习_第6张图片

 

4、标签生成

文中一个图片会有多个类别标注,如果存在该属性则label标为1,否则标为-1。损失函数使用的是平方误差损失,而非常规的binary cross entropy loss。感觉这是可以尝试改进的点,标签也可以按常规标注为0和1。

测试时,对某个属性的预测值若大于0,则图片标识存在该属性。

行人属性分类算法:自适应权重多任务学习_第7张图片

你可能感兴趣的:(CNN)