问题
如何让网络关注细小细节
举个栗子
通过树叶判断植物类别,花朵判断花的品种,以及人脸识别等任务
1. CenterLoss
1.1 传统分类学习存在的问题:
类内距离可能超过类间距离,对一些模棱两可的样本不好区分
1.2 Center Loss方案
- 让特征向量有更好的区分性能,有点像做一个内部聚类,把特征向量约束到一起,让不同类别距离(类间距离)尽量大,相同类别(类内距离)尽量小,
- CenterLoss作用后的区分特征再做分类,能够更好的鉴别出模棱两可的图片
1.3 实现原理/公式解析
- 计算类与该类别中心的Loss,再做一个L2正则,即向量的平方,如下图所示。中心点坐标为该类别所有相加的和处于类别个数,即均值。
-
算法
-
{xi}为训练集. θC为卷积层里的参数.权重参数W和{cj|j=1,2, …, n}为损失层里的参数。
-
超参数λ为聚类程度的参数指标,α指的是控制每次中心点更新的波动情况(α=1:完全不考虑波动;α<1:进行圆滑处理),μt为学习率.
-
对于第6步,注意的是,中心点的向量不是一直固定不变的,每个batchsize训练后,中心点是会改变的。Δcj更新方式如下
δ(condition) = 1; condition为True δ(condition) = 0; condition为False
-
-
结果
- λ越大,越靠近中心点,聚类能力越强,特征越可区分性;λ越小,越远离中心点,分类能力越强
- 在MNIST数据集上表现良好,但在CIFAR数据集上表现不佳
- λ越大,越靠近中心点,聚类能力越强,特征越可区分性;λ越小,越远离中心点,分类能力越强
2. 其他Loss
- Triplet Loss/ Contrastive Loss