loss_function_search
1.0.0
王晓波*、王硕*、池成、张世峰、梅涛
这是我们针对人脸识别的损失函数搜索的正式实现。它已被 ICML 2020 接受。
在人脸识别中,设计基于边缘(例如,角度、加性、加性角度边缘)的softmax损失函数在学习判别性特征中起着重要作用。然而,这些手工设计的启发式方法并不是最优的,因为它们需要付出很多努力来探索巨大的设计空间。我们首先分析,增强特征区分度的关键实际上是如何降低softmax概率。然后,我们为当前基于保证金的 softmax 损失设计一个统一的公式。因此,我们定义了一个新颖的搜索空间并开发了一种奖励引导的搜索方法来自动获得最佳候选者。各种人脸识别基准的实验结果证明了我们的方法相对于最先进的替代方法的有效性。
为了验证我们的搜索空间的有效性,我们可以简单地选择 random-softmax。在train.sh中,可以设置do_search=1。如果我们使用随机 softmax 来训练我们的网络,我们会得到下面的结果。
需要 Pytorch 1.1 或更高版本。
在当前的实现中,我们使用 lmdb 来打包我们的训练图像。我们的lmdb的格式主要来自于Caffe。您可以编写自己的 caffe.proto 文件,如下所示:
syntax = "proto2";
message Datum {
//the acutal image data, in bytes.
optional bytes data=1;
}
除了 lmdb 之外,还应该存在一个描述 lmdb 的文本文件。文本文件的每一行包含 2 个由空格分隔的字段。文本文件中的行如下:
lmdb_key label
./train.sh
您可以使用./train.sh。请注意,在执行 train.sh 之前,您应该提供自己的 train_source_lmdb 和 train_source_file。更多使用请
python main . py - h