IncentionV3 提出一种通过估计 label-dropout 的边缘化效应(marginalized effect)来正则分类器层的机制,即Label-smoothing Regularization,LSR.
参数汇总:
$z_i$ - logits,未被归一化的对数概率.
$p$ - predicted probability,样本的预测概率.
$q$ - groundtruth probability,样本的真实类别标签概率. one-shot 时,样本的真实概率为 Dirac 函数,即 $q(k) = \delta _{k, y}$,$y$ 为真实的类别标签.
对于每个训练样本 $x$,网络模型计算其关于每个类别标签 $k \in \lbrace 1 ... K \rbrace$ 的概率值,Softmax 层输出的预测概率:
$p(k|x) = \frac{exp(z_k)}{\sum _{i=1}^K exp(z_i)}$.
其中, $z_i$ 是 logits 或者未归一化的 log-概率值(log-probability).
假设对该样本关于类别标签 $q(k|x)$ 的 groundtruth 分布,进行归一化,有:
$\sum _k q(k|x) = 1$.
简单起见,忽略关于样本 $x$ 的 $p$ 和 $q$ 之间的依赖性.
定义样本的损失函数为交叉熵(cross entropy):
$\mathcal{l} = - \sum _{k=1}^K log(p(k)) q(k)$.
最小化该交叉熵损失函数,等价于最大化特定类别标签的期望 log 似然值,该特定类别标签是根据其 groundtruth 分布 $q(k)$ 选定的.
交叉熵损失函数时关于 logits $z_k$ 可微的,因此可以用于深度模型的梯度训练. 其梯度的相对简洁形式为:
$\frac{\partial l}{\partial z_k} = p(k) - q(k)$,其值区间为 [-1, 1].
假设只有单个 groundtruth 类别标签 $y$ 的情况,则 $q(y) = 1$,$q(k) = 0 (k \neq y 时)$,此时,最小化交叉熵损失函数等价于最大化正确类别标签(correct label) 的 log-likelihood.
对于某个样本 $x$,其类别标签为 $y$,对 $q(k)$ 计算最大化 log-likelihood,$q(k) = \delta _{k,y}$,其中 $\delta _{k,y}$ 为 Dirac 函数,即,$k=y$ 时,$\delta _{k,y} = 1$;$k \neq y$ 时,$\delta _{k,y} = 0$.
在采用预测的概率来拟合真实的概率时,只有当对应于 groundtruth 类别标签的 logit 值远远大于其它类别标签的 logit 值时才可行. 但其面临两个问题:
- 可能导致过拟合 - 如果模型学习的结果是,对于每个训练样本都将全部概率值都分配给 groundtruth 类别标签,则不能保证其泛化能力.
- 其鼓励最大 logit 值和其它 logits 值间的差异尽可能的大,但结合梯度 $\frac{\partial l}{\partial z_k}$ 的有界性,其削弱了模型的适应能力.
也就是说,只有模型对预测结果足够有信心时才可能发生的情况.
InceptionV3 提出了一种机制,鼓励模型少一点自信(encouraging the model to be less confident).
虽然,对于目标是最大化训练标签的 log-likelihoodd 的问题,不是所期望的;但,却能够正则化模型,并提升模型的适应能力.
假设有类别标签的分布 $u(k)$,其独立于训练样本 $x$,和一个平滑参数 $\epsilon$,对于 groundtruth 类别标签为 $y$ 的训练样本,将其类别标签的分布 $q(k|x) = \delta _{k, y}$ 替换为:
$q^{'} (k|x) = (1 - \epsilon ) \delta _{k, y} + \epsilon u(k)$
其是,原始 groundtruth 分布 $q(k|x)$ 、固定分布 $u(k)$ 、权重 $1 - \epsilon$ 和权重 $\epsilon$ 的组合.
可以将类别标签 $k$ 的分布的计算可以看作为:
- 首先,将类别标签设为 groundtruth 类别标签,$k = y$;
- 然后,采用概率 $\epsilon$ ,将从分布 $u(k)$ 中的采样值来取代 $k$;
InceptionV3 中采用类别标签的先验分布来作为 $u(k)$. 如,均匀分布(uniform distribution),$u(k) = \frac{1}{K}$,则:
$q^{'} (k|x) = (1 - \epsilon ) \delta _{k, y} + \epsilon \frac{1}{K}$
对此,称为类别标签平滑正则化(label-smoothing regularization, LSR).
LSR 交叉熵变为:
$H(q^{'}, p) = - \sum _{k=1} ^K log(p(k) q^{'}(k)) = (1 - \epsilon) H(q, p) + \epsilon H(u, p)$
等价于将单个交叉熵损失函数 $H(q, p)$ 替换为一对损失函数 $H(q, p)$ 和 $H(u, p)$.
损失函数 $H(u, p)$ 惩罚了预测的类别标签分布 $p$ 相对于先验分布 $u$ 的偏差,根据相对权重 $\frac{\epsilon}{1 - \epsilon}$. 该偏差也可以从 KL divergence 的角度计算,因为 $H(u, p) = D_{KL}(u || p) + H(u)$,$H(u)$ 时固定. 当 $u$ 时均匀分布时,$H(u, p)$ 是评价预测的概率分布 $p$ 与均匀分布 $u$ 间的偏离程度.
在 ImageNet 实验中,$K=1000$ 个类别标签,先验分布为 $u(k) = 1/1000$,$\epsilon = 0.1$. ILSVRC2012 对于 top1 和 top5 大约有 0.2% 的精度提升.
tf.losses.softmax_cross_entropy:
new_onehot_labels = onehot_labels * (1 - label_smoothing) + label_smoothing / num_classes