-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[2018] ArcFace: Additive Angular Margin Loss for Deep Face Recognition #24
Comments
最近ちょっと tripletloss などを扱っていて、なかなかコントロールが難しいという実感を持っていた。 |
まず、顔認識のやり方として典型的には {通常の分類として softmax を使って解く, tripletloss で特徴量学習を使う} の二種類がある。こいつらそれぞれのダメなところを挙げると以下。
|
最近の傾向は分類をより discriminative にするためにマージンを工夫するという流れになっている。 ちとややこしいが class1 の赤枠がクラス中心のサンプルで、class2 の紫枠がクラス中心のサンプルになっている。 |
ということで提案手法の説明。 まず画像分析のモデルから特徴量を持ってくる。ここでは この特徴量を $ x_i ∈ R^d $ とする。分類問題の学習においては、これは GroundTruth のラベルとセットなので $ {x_i, y_i} $ となっている。 この cos θ は真面目にベクトルとして書くと、$ cos θ_j ( j = 1,2,...,n) $ というものになっている。 こうして GroundTruth に該当する要素だけマージンを加えた特徴量ができるので、これを適当にスケールして(これは cos だと [-1,1] が値域で softmax を計算するときに違いが出づらいのでスケールしてるものと思われる)、あとは通常通り softmax につなぐ。 これの効果を定性的に考えてみる。
こういうのはアイデアが難しくないので、先行研究とかを辿らずともちょっと考えれば分かるので読むのがラクだ。 |
先行研究として、SphereFace と CosFace があるのでそれらとの違いを比較する。 あまり細かい違いには興味がないので詳しくは調べていないが、提案手法になぞらえて表現をすると以下のようにまとめて書けるとのこと。 ここで、m1 が SphereFace で m2 が ArcFace で m3 が CosFace の寄与となっている。 ということで比較をしてみたのが下図。 マージンがどのように取られるかは手法によって振る舞いが異なり、ArcFace は角度そのものにマージンを加えているので、下図のように線形にマージンが確保されている。その方が良い、という類のものではないが、一応幾何学的な解釈としてはこのような違いがある、というもの。 |
この論文は比較実験はたくさんしている。 SphereFace や CosFace などの先行研究の他にも、マージンなしで構築した loss function に以下の三つの要素を合わせたモデルも比較している。
|
実験を網羅的に説明するのはあまりやりたくないのでいくつか抜粋。 まずは典型的な Labeled Faces in the Wild (LFW) などの結果。 興味深いのは ArcFace にさらに Triplet-Loss などを加えても性能向上には寄与しないという点だ(ほぼサチってるからという可能性もあるが)。同じような効果が期待できるものなので、ArcFace だけで十分だという結果になっている。 それ以外にも MegaFace dataset はラベルの付け間違いが多かったので手動で付け直してその結果も載せたりしている。いやー頑張りますね。 その他にも色々なデータセットで比較しているが、ほとんどの場合で ArcFace が確かに良い性能を示している、という結果になっている。いいじゃん。 |
最後の方には大規模データに対して並列学習ができるかとか 512d の特徴量で十分に見分けられるか等を議論していて、どちらも結論は yes となっている。 |
ということで読み終わり。 以前 closed set での予測に苦労したりもしてたのでそういうのにも使えそうだし試してみたい感じもする。 |
Thanks for the great comments. |
論文リンク
https://arxiv.org/abs/1801.07698
公開日(yyyy/mm/dd)
2018/01/23
概要
大規模顔認識で使える特徴量学習において、超球面上の幾何学的な距離とマージンを考えることで、分類問題として学習するだけでより discriminative な特徴量を学習できるという手法を提案した。
具体的には、通常の softmax に使う特徴量に対して、工夫を施す。まずは特徴量を l2-normalize してそれと列ごとに l2-normalize した weight を掛けて、それぞれの要素が $ cosθ_i $ として表せる特徴量を作る。この要素数は最終的な予測クラス数と同じになっていて、GroundTruth のラベルに対応する要素には $ cos(θ + m) $ とマージンを入れることでクラス間をより分離するようにして、この特徴量を softmax につなぐということをする。
かなり色々な実験で先行手法、特に SphereFace と CosFace、と比較して良い性能を示した。性能がめちゃくちゃ上がるという感じでもないが、シンプルな単一の loss で高性能であることに加えて、先行手法を包括的に整理しているところが良い点。
The text was updated successfully, but these errors were encountered: