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

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

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

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

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

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

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

この記事をシェアする