簡易なコードで、超球面上の損失関数計算を実現する「ArcFace」の紹介

参考論文 : ArcFace: Additive Angular Margin Loss for Deep Face Recognition

 

Deep Convolutional Neural Network : 深層畳み込みニューラルネットワーク (以下、DCNN)を利用したモデルにおける重要な問題の一つに、パラメータ最適化のための「損失関数の設定」が挙げられます。

これまで、様々な損失関数が考案されてきました。最適化手法における損失関数としては現在、以下二つの最も多く使われるものがあります。

ひとつはSoftmax Loss(Softmax損失関数)を用いた多クラス分類を適用する方法で、もう一つはTriplet Loss(Triplet 損失関数)を用いた、埋め込みベクトルを直接学習していく方法です。しかしそのどちらも、サンプル数の増大や計算処理の問題など、欠点を抱えています。

これらの主な損失関数に対して、「Centre Loss」や「Sphere Face」と言った画像認識により適したいくつかの手法が提案されています。

本稿で紹介する「ArcFace」では、新たな損失関数として、 Additive Angular Margin Loss(付加的角度マージン損失関数)を提案しています。ArcFaceは超球上の測地線距離が正確に一致するので、従来の手法と比較し、明快に解釈することができ、かつ様々な利点を含んでいます。

Fig.1 球面上測地線を用いたクラス間距離のイメージ(赤線)

Arc Faceの利点

今回、新たな損失関数を導入したArcFaceの利点は大きく分けて以下の4つです。

1.理論的進展性

理論的に斬新な超球上の測地線距離を導入することで、クラス分類の最適化を行います。

2.効果

動画や大量の画像など10種もの顔認識データセットを適用し、従来モデルと比較した結果、最高精度の結果を記録しています。

3.利用の単純さ

数行のコードで記述することが出来、かつ現在利用されているディープラーニングのフレームワーク(例 : MxNet、PyTorch、Tensorflow)において実装可能です。また、結果を安定させるためにそのほかの損失関数などと組み合わせる必要もありません。

4. 効率性

学習時における計算複雑さは無視できるほどのものです。加えて、昨今のGPUは何百万人単位の学習が可能であり、モデルの並列ストラテジーによってより多くの人物に対応できます。

 

Fig.2 (a)Softmax関数  と (b)ArcFace イメージの比較

Fig.2は、Softmax損失関数とArcFace損失関数を用いて”8人の異なる人物の顔写真”を、2次元($d=2$)で分類した時のイメージ(Toy example)になります。やや特殊な表記になっていますが、色ごとの各線が分類を表しており、Softmax関数に対して、ArcFaceの計算手法を用いることにより、精密に各色の線毎の分類を行うことが可能になります。

モデル概要

Fig.3 ArcFace のモデル概要

上画像(Fig.3)は、ArcFaceのモデル概要になります。

ArcFacedの損失関数は以下の式で出力として得られます。

$$L_{3}=-\frac{1}{N} \sum_{i=1}^{N} \log \frac{e^{s \cos \left(\theta_{y_{i}}+m\right)}}{e^{s \cos \left(\theta_{y_{i}}+m\right)}+\sum_{j=1, j \neq y_{i}}^{n} e^{s \cos \theta_{j}}}$$

モデルは、以下のようなアルゴリズムによって計算されています。

はじめに、DCNNによって画像から特徴量を抽出します。抽出されたベクトルから分類すべきクラス数を得るために、L2正則化された入力ベクトルに行列W(こちらも各列にL2正則化を行う)を用いて変換を行います。ここで、正解のクラスに該当する要素に正解ラベルからのマージンを加えてより明確な差別化を行うために、それぞれ変換後の形(cosθ)の逆関数を取り、角度を”m”分加えることでマージンを与えます。

最後に、得られた出力(cosθ : [-1,1])をsoftmax関数に入力することで最終的な出力を得ることができます。

実験結果

 

Table1. 従来モデルとArcFace(下2行)の分類精度比較

上表(Table1)は、ArcFaceと従来モデルを用いた顔画像分類の精度比較を行なった結果になります。本実験においては、MegaFaceと呼ばれる大量のデータセットを用いています。id(%)は識別率を表しており、Ver(%)は訓練精度を表しています。

実験の結果から、従来モデルにおける訓練精度の最高値が、によるCosFaceの89.99(%)であるのに対し、同様の条件においてArcFaceを用いた場合は92.34(%)の精度を記録しており、約2(%)の精度向上を達成が出来ています。

 

 

Fig.3 モデルの学習スピードの比較

また、上画像(Fig.3)は学習段階((a)CMC)と訓練段階((b)ROC)における学習スピードの比較を行いました。黄線が未加工データのArcFaceの学習を表しており、緑色がグラフが未加工データのCosFace(従来モデル)の学習を表しています。既存モデルと比較し、わずかに緑線より黄色線が上に出てる部分が多いため、既存モデルより高い性能を示していることがわかりました。

まとめ

本論文にて提案されているAdditive Angular Margin Loss(ArcFace)により、DCNNを用いた顔認識器の識別能力を効果的に高めることができます。先に述べた、過去にとても良い識別能力を記録した損失関数の欠点を補う新たな損失関数として、このArcFaceの価値は今後さらに高まっていくでしょう。