クラス間分散が大きくクラス内分散を小さくなるように softmax loss を改良した損失関数を提案。DNN を用いた顔認識タスクにおいて、SOTA を実現
2. 先行研究と比べてどこがすごいの?
従来の DNN を用いた顔認識モデルの損失関数としては、softmax loss が広く採用されていた。
しかしながら、softmax loss で学習されたネットワークでは、各特徴量のクラス間分散が小さくなるように分布され、分類境界付近では曖昧な分類結果となる。このことは、顔認識モデルなどの所属クラスを識別するタスクでは問題となる。
本手法では、クラス間分散が大きくクラス内分散を小さくなるように softmax loss を改良することで、DNN を用いた顔認識タスクにおいて、SOTA を実現している。
3. 技術や手法の"キモ"はどこにある?
従来の softmax loss の問題点
従来の顔認識モデルの損失関数には、以下の式で定義される softmax loss が広く採用されてきた。
この softmax loss を、簡単のため として変形すると、
以下の式のようになる。
この softmax loss の変形式より、softmax loss で学習されたネットワークにおける中間特徴量は、左下図のような超球面を構成することがわかる。
この図より、softmax loss では各特徴量を大まかに分類するが、分類境界が曖昧になっていることがわかる。
言い換えると、クラス間分散が小さくなっており、このことは顔認識モデルなどで各クラスを識別 or 判別する際には問題となる。
そのため arcface では上図 (b) のように、クラス間分散が大きくクラス内分散を小さくなるように softmax loss の改良を行う。
arcface の損失関数
前述のように、従来の softmax loss では、クラス間分散が小さくなるために、顔認識モデルなどで各クラスを識別する際には不適切であるという問題が存在する。
arcface では、クラス間分散が大きくクラス内分散を小さくなるように softmax loss の改良を行う。
0. 論文情報・リンク
1. どんなもの?
2. 先行研究と比べてどこがすごいの?
3. 技術や手法の"キモ"はどこにある?
従来の softmax loss の問題点 従来の顔認識モデルの損失関数には、以下の式で定義される softmax loss が広く採用されてきた。
arcface の損失関数 前述のように、従来の softmax loss では、クラス間分散が小さくなるために、顔認識モデルなどで各クラスを識別する際には不適切であるという問題が存在する。 arcface では、クラス間分散が大きくクラス内分散を小さくなるように softmax loss の改良を行う。
ネットワーク構成 arcface の損失関数は、一般的な DNN 全般で有効な損失関数になっているが、本論文では、ResNet-50, ResNet-101 のネットワーク構造を採用している。 但し最終 conv 層の後に、BatchNorm + Dropout + FC + BathNorm 層を追加し、512 次元の特徴ベクトルを出力するようにしている。(x_i∈Rd (d=512)) また、入力データの前処理として、5つの顔特徴で正規化した 112x112 の顔クロップ画像を生成する処理を行っている。
4. どうやって有効だと検証した?
5. 議論はあるか?
6. 次に読むべき論文はあるか?
7. 参考文献