1.Motivation
A. 人脸的年龄变化是非线性的,而且平滑的转换
解释:随着时间的前进,人类的面部皮肤会缓慢老化,外貌以渐进的形式发生变化,而不是突然的转变,因此说年龄变化是非线性、平滑的。
B. 自动编码器从输入数据中学习潜在表示的能力
解释:自动编码器分编码器encoder和解码器decoder,它能讲数据映射到高维的特征空间中,并且将图像从特征表示出来,即进行重构,是的输出结果与输入结果相似。
自动编码器的相关文章:简单易懂的自动编码器
2.Contribution
A. 提出了coupled auto-encoder networks(CAN),用两个自动编码器来对同一个人的两张不同年龄照片进行重构,从而学习出图像的特征。
B. 两个单隐层神经网络来作为连接上述两个自动编码器的桥梁,目的是拟合一个老化和逆老化过程。
C. 在自动编码器的基础上,通过增加约束(Loss),将特征空间非线性地分解成三个特征子空间:identity-feature space, age feature space, and a noise space.
3.Proposed Approach
本文方法的输如是同一个人的两张不同年龄的图像,其中的年龄跨度会有限制,保证非线性拟合老化/逆老化过程的训练。,对数据,本文目的是学习出年龄不变的特征I,然后用它来做识别和检索任务。然后两个单隐层网络作为年龄特定的特征和之间的老化/逆老化过程的非线性函数,然后激动编码器结合和方向的
(1)Basic Reconstruction 用两个自动编码器单独对输入进行重构,尽可能学习到潜在的因子。在隐层中将图像映射到高维的特征空间:该优化函数的目的是减小自动编码器输出的重构结果与输入尽可能的接近。自动编码器的结构如下:
自动编码器有编码器和解码器两个部分,其中encoder表示为:
其实就是单层的神经网络,就是中间隐层的输出,即图像的特征表示。**函数采用sigmoid。Decoder则用位输入,重构出输入数据,也是一个权重乘积的过程:
这里和encoder略有不同的地方在于,是恒等函数,而非**函数。
(2)Transfer 对上一步的隐层输出增加约束,将其分解成三个特征子空间,分别是:, 和 . 约束如下:这个优化函数很重要,要对每一项进行解释:
a. - 是分解得到的年龄特征,是bridge中一个单隐层神经网络对进行老化拟合得到的输出,要让这两个年龄特征相似,才能学习出好的非线性老化函数
b. - 和第一项内容相似,但是它是逆老化过程的学习。因为输入的是统一规定的,的年龄比小,因此 是老化过程,反之为逆老化过程。
说明: 文章前面说过,人脸的年龄变化是一个非线性、平滑的过程,而单隐层神经网络又可以拟合任何复杂的光滑变化,所以用它来实现老化/逆老化过程的学习。其实还是基础的神经网络非线性操作:
其中 和 分别是老化(aging)和逆老化(de-aging)函数。这两项对应的结构框架如下:
c. - 和 分别表示 的identity-specific feature, 具有年龄不不变性。因为输入的图像对属于同一个人,那么它们之间的年龄不变特征应该尽可能一致,因此要相近。
d. 和 - “转移重构平方误差”,目的是训练第一步中的基础重构,让两个自动编码器分别重构出于输入数据相近的结果,以此学习出潜在的表示。
是结合老化拟合结果 和年龄不变特征 得到的;
也是结合逆老化结果 和年龄不变特征 得到的,一下是公式:
对应结构框架:
4.Experiments
文章用的自动编码器是非监督方法,因此不具有判别性。在得到 和 之后,对它们进行 PCA+LDA 降维操作,将最后的特征用于识别和检索任务。
- 训练算法: 前文的两个Loss分开优化,算法如下
- 人脸检测用的是 Viola-Jones人脸检测器 -> 关键点检测用 Face++ API -> 对齐人脸 -> 人脸裁剪 -> 用双三次插值对人脸rescale
- 三个数据集上的结果
- FG-NET
- CACD
- CACD-VS