CVPR-2019
文章目录
1 Background and Motivation
作者探索了一下在基于深度学习的年龄预测任务中,the limits of compact model for small scale image(小模型小输入),提出 Compact yet efficient Cascade Context-based Age Estimation model(C3AE)方法,在 IMDB-WIKI / Morph II / FG-NET 数据集上取得了惊艳的效果!
2 Related Work
- Age Estimation
- Compact Model
3 Advantages / Contributions
结合 Two Points Representation of Age 和多尺度输入,提出 C3AE,模型小,精度高
4 Method
Compact basic model, Casaced training and multi-scale Context
1)Compact Model for Smallscale Image: Revisiting Standard Convolution
比较正常 conv 和 depth-wise separable conv 的计算量
作者的结论是小网络,小输入,正常卷积的代价比 DWS卷积的小……
别慌,我们看看作者葫芦里卖的什么药
先看 mobilenet 论文中的公式(来自【MobileNet】《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》)
小网络 N N N 再怎么小,也小不过 D K 2 D_K^2 DK2,作者是怎么得出深度可分离卷积比正常卷积计算量小的结论呢?
来看看作者的观点
the depth-wise convolution often requires much more channel numbers in order to perform comparable to standard convolution on small-scale images
两种 Conv 输入输出通道数
M
M
M 和
N
N
N 都不一样,比了个寂寞……
好吧,跟着作者的诡辩,得出
M M ^ ⋅ N ^ + M N M ^ ⋅ N ^ ⋅ D K 2 = 144 32 × 32 + 144 × 144 32 × 32 × 3 2 = 2.39 > 1 \frac{M}{\hat{M} \cdot \hat{N}} + \frac{MN}{\hat{M} \cdot \hat{N} \cdot D_K^2} = \frac{144}{32 \times 32} + \frac{144 \times 144}{32 \times 32 \times 3^2} = 2.39 > 1 M^⋅N^M+M^⋅N^⋅DK2MN=32×32144+32×32×32144×144=2.39>1
输入输出通道都比别人小了 4 倍多,计算量才是别人 1 2.39 \frac{1}{2.39} 2.391……
2)Two Points Representation of Age
利用两点来表示年龄
对于第
n
n
n 张图片的年龄
y
n
y_n
yn,我们可以用两个整数的
z
n
1
z_n^1
zn1 和
z
n
2
z_n^2
zn2 (年龄
y
n
y_n
yn 落在年龄间隔之间,
z
n
1
z_n^1
zn1<
y
n
y_n
yn<
z
n
2
z_n^2
zn2)加权来表示,加权系数为
λ
1
\lambda_1
λ1 和
λ
2
\lambda_2
λ2(
λ
1
+
λ
2
=
1
\lambda_1 + \lambda_2 = 1
λ1+λ2=1)
比如,68 可以用 60 和 70 加权表示, 68 = 60 ∗ 0.2 + 70 ∗ 0.8 68 = 60 *0.2 + 70 * 0.8 68=60∗0.2+70∗0.8
当年龄间隔区间服从( z n 2 − z n 1 = K z_n^2 - z_n^1 = K zn2−zn1=K)均匀分布的时候,
年龄可以重新表示为
z n 1 = ⌊ y n K ⌋ ⋅ K z_n^1 = \left \lfloor \frac{y_n}{K} \right \rfloor \cdot K zn1=⌊Kyn⌋⋅K
z n 2 = ⌈ y n K ⌉ ⋅ K z_n^2 = \left \lceil \frac{y_n}{K} \right \rceil \cdot K zn2=⌈Kyn⌉⋅K
实验中 K = 10 K = 10 K=10
这样我们可以通过分布的形式来监督年龄了(可以理解为 two-hot)
假设 K = 10,范围 10~80岁,则年龄区间为, { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 } \{10, 20, 30, 40, 50, 60, 70, 80\} {10,20,30,40,50,60,70,80}(对应图 2 中的 w 2 w_2 w2)
68 的 two-hot(Distribution y ⃗ \vec{y} y) 为 [ 0 , 0 , 0 , 0 , 0 , 0.2 , 0.8 , 0 ] [0, 0, 0, 0, 0, 0.2, 0.8, 0] [0,0,0,0,0,0.2,0.8,0]
这样可以监督 two-hot 的分布了,不是单纯的 regression 68,也不需要像 one-hot 那样 80-10+1 类
但是 Each point can also be represented by two points or any other more points
eg 50 = 0.5 × 0 + 0.5 × 100 = 0.2 × 10 + 0.2 × 40 + 0.2 × 60 + 0.2 × 90 50 = 0.5 \times 0+0.5 \times100 = 0.2 \times10+0.2 \times 40+0.2 \times 60+0.2 \times 90 50=0.5×0+0.5×100=0.2×10+0.2×40+0.2×60+0.2×90
所以网络怎么监督也很关键,作者采用了 cascade 的方式
3)Cascade Training
I n → c o n v X → w 1 y n ⃗ → w 2 y n I_n \overset{conv}{\rightarrow} X \overset{w_1}{\rightarrow} \vec{y_n} \overset{w_2}{\rightarrow} y_n In→convX→w1yn→w2yn
y n ⃗ \vec{y_n} yn 也即 distribution y ⃗ \vec{y} y
KL 监督 two-hot 分布
MAE 监督年龄
实验中
α
=
10
\alpha = 10
α=10
4)Context-based Regression Model
多尺度输入
5 Experiments
5.1 Datasets and Metrics
1)数据集
-
IMDB-WIKI
523051 images,0~100岁,noise 比较多,本文仅用于 pre-train
-
Morph II
55000 face images of 13000 subjects with age label,16~77岁,平均 4 images per subject
-
FG-NET
1002 face images from 82 non-celebrity subjects,0~69 岁,平均 12 images per subject
2)评价指标
mean absolute value (MAE)
5.2 Ablation Study
1)the Plain Model of C3AE
精度
Morph II(M-MAE), IMDB (I-MAE) and WIKI (W-MAE)
速度
train-val loss
residual 结构和 SE block
res 的引入增大了 error,SE 的引入降低 error
2)Cascade and Context Module
横坐标 w 2 w_2 w2,纵坐标 y n ⃗ \vec{y_n} yn,上面一行是多尺度输入的结果,下面是各个单尺度输入的结果
但尺最后一个 bin 学的不太准,92.73 和 55.49,应该是 80,作者给出的解释为
we found that there are only 9 samples in the range [70, 80], and it is easy to explain why the last element is abnormal.
5.3 VS SOTA
1)Comparison with State-of-the-arts on Morph-II
2)Comparison with State-of-the-arts on FGNET
6 Conclusion(own) / Future work
摘抄一些优秀的论文解读:
-
两点表示法结合 KL 监督学分布
-
SSR-Net:A Compact Soft Stagewise Regression Network for Age Estimation
-
Ordinal Regression
有序回归: Ordinal Regression的理解
逻辑回归
原始的逻辑回归只解决二分类问题,由二分类问题进而也可以扩展到多分类问题。参考李航的《统计学习方法》。
分类问题可用于对猫,狗,鸟,花等的分类。
有序回归
但是,当不同类别的类别之间有一定的顺序关系时,仅仅使用分类损失是不够的。
比如:我们对人的年龄进行分类:0 岁,1 岁和 2 岁。这时仅仅使用分类损失是不够的。
如果一个样本的真实年龄是0,如果用分类方法,我们把它的年龄分类成 1 岁和 2 岁时的损失是相等的。但是,明显1岁要比2岁,更加接近于 0 岁,1 岁是一个比 2 岁更可被接受的分类。因此从应用意义上,1 岁应该比 2 岁有更小的损失。
有序回归就是解决这个问题,除了考虑分类损失以外,还要考虑误分类的类别和真实类别之间的排序关系,排序更近的损失应该更小。