论文:SSR-Net: A Compact Soft Stagewise Regression Network for Age Estimation
Github:https://github.com/shamangary/SSR-Net
论文提出了多stage结构的,紧凑,轻量化的年龄识别网络结构SSR-Net(Soft Stagewise Regression Network)。其中,多stage策略(multi-stage strategy),动态区间策略(dynamic range),都有助于模型精度的提升。最终模型大小仅仅0.32M。
问题定义:
N:一共的图片数目
Y:图片的标签
整体的loss为 mean absolute error (MAE),本质年龄识别问题就是一个回归问题。
DEX方法到多stage策略(Stagewise Regression):
DEX方法,将整个年龄的回归问题,分解为分类问题。将整个年龄区间 Y = [0; V ] 分解为s个不相交的子区间,每一个子区间的宽度为w
W=v/s
那么第i个子区间ui=i*(V/s)
最终预测的年龄为每一个区间的概率和,即
为了使得模型更加精确,DEX方法设置每一个bin的宽度为1岁,也就是对于 Y = [0::100],一共有101个bin。
但是这样整,参数量比较大。为了减少最后全连接层的参数量。本文基于DEX方法的基础上,提出了分stage策略。
假设年龄一共0-90岁,区间宽度为10,那么DEX方法的全连接层就需要9个神经元 (0 ∼ 10,10 ∼ 20,20 ∼ 30,30 ∼ 40,40 ∼ 50,50 ∼ 60,60 ∼ 70,70 ∼ 80,80 ∼ 90)。而采用多stage策略后,第一个stage只需要3个神经元 (0 ∼ 30,30 ∼ 60,60 ∼ 90),第二个stage在第一个stage的基础上,也只需要3个神经元,因为第一层的3个stage共用第二层的3个神经元,即第二层的stage在第一层stage的基础上,只需要区分(小,中,大)就可以实现0-90岁的分类了。2个stage加起来,只需要6个神经元就可以达到。
动态区间(Dynamic Range):
动态区间就是在原始DEX这种不重叠的区间的基础上,增加一个尺度scale,一个偏移shift,变化为一个动态的区间
∆k为网络输出的结果,1+ ∆k就是偏移shift
w为动态区间的宽度,
η为偏移offset,
最终网络的预测结果就是所有分类预测结果的和,
网络结构:
整个网络结构,输入图片为64*64,网络分为3个stage,整体结构是一个双流类型的结构。
这2个流的区别就是激活函数的区别(RELU vs Tanh),池化的区别(average vs maximum)。
每一个stage之间,都会对双流的输出进行特征融合。然后分别输出3个预测结果,分别是
年龄的分布p,尺度 ∆k,偏移η。
实验结果:
MobileNet,DenseNet,SSR-Net的训练结果,验证结果。SSR-Net的网络拟合能力更好。
SSR-Net的模型更小,精度更高。
结论:
(1)SSR-Net一个实用的年龄预测网络结构。
(2)Stagewise Regression和 Dynamic Range的思想非常值得借鉴。