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