Xiaobo Wang*、Shuo Wang*、Cheng Chi、Shifeng Zhang、Tao Mei
これは、顔認識用の損失関数検索の正式な実装です。 ICML 2020 で承認されました。
顔認識では、マージンベース(角度マージン、加算マージン、加算角度マージンなど)のソフトマックス損失関数の設計が、識別特徴の学習において重要な役割を果たします。ただし、これらの手作りのヒューリスティック手法は、広い設計空間を探索するために多大な労力を必要とするため、最適とは言えません。まず、特徴の識別を強化する鍵は、実際にはソフトマックス確率をどのように下げるかであることを分析します。次に、現在のマージンベースのソフトマックス損失の統一公式を設計します。したがって、私たちは新しい検索空間を定義し、最適な候補を自動的に取得するための報酬誘導型検索手法を開発します。さまざまな顔認識ベンチマークの実験結果により、最先端の代替手段よりも私たちの方法の有効性が実証されました。
検索スペースの有効性を検証するには、random-softmax を選択するだけです。 train.sh では、do_search=1 を設定できます。ランダム ソフトマックスを使用してネットワークをトレーニングすると、次の結果が得られます。
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