ArcFaceの拡張「MagFace」をまとめてみたよ


↓論文
[Magface: A universal representation for face recognition and quality assessment.](https://arxiv.org/abs/2103.06627)

# MagFaceって読む価値あるの？



深層距離学習モデルArcFaceを拡張し、**顔認識分野においてSoTA**を達成しています。
※ 深層距離学習ってなに？ArcFaceってなに？という方は、[@yu4u](https://qiita.com/yu4u/items/078054dfb5592cbb80cc)さんがわかりやすく解説くださっています。

コンピュータービジョンの世界トップカンファレンス**CVPR2021**に採択されました。
論文が公開されたのはつい最近の今年6月なのに、すでに**被引用数11**に登っています。(2021/8/29現在）

つまり、**現在非常に「ホット」な論文**です！

顔認識だけでなく**cos類似度**を聞いたことのある人、使ったことのある人は必見ですよ！！！

# 要約（30秒でわかるMagFace）
ArcFaceは特徴ベクトルの「向き」しか考慮しないのに対し、
MagFaceは特徴ベクトルの**「向き」と「大きさ」**に着目し、次のように意味づけします。

- 向き : 画像間の類似度
- 大きさ : **画像の品質**

**高品質なデータはクラス中心に集まる**ように学習することで、
顔認識、品質評価、クラスタリングの実験において、高い精度を示しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/ecf5da3f-1e24-d298-04ed-b0059ab5ddfd.png)







# MagFaceのモチベーション
下記3つのモチベーションを同時に解決するために、ArcFaceを拡張します。

### 1. 【Quality】 データ品質を定量化したい
データの品質は、**明るさ・角度・隠れ具合**などさまざまな要素が複雑に絡み合っています。
→ MagFaceでは、**データ品質 =「顔認識の難しさ」**と定義することで定量化をはかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/50f1faba-6048-09ac-3698-130413b79746.png)


### 2. 【Recognition】 顔認識の精度を向上させたい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/fc07f58f-4420-c3c3-d837-ebb444f6affa.png)

 上図は顔認識で高精度を発揮しているArcFaceの幾何学的解釈（[こちら](https://ichi.pro/kao-ninshiki-to-arcface-fukai-kao-ninshiki-no-tame-no-tsuika-no-kakudo-ma-jin-sonshitsu-4719033880940)参照）です。
 しかしArcFaceでは、ノイズの大きいサンプル画像の重みが大きくなってしまいます。
→ MagFaceでは、**「顔認識の難しさ」＝「特徴ベクトルの大きさ」**となるような制約を追加することでノイズの大きいサンプルの影響を小さくさせます。

### 3. 【Clustering】 顔のクラスタリング精度を向上させたい

→ MagFaceでは、**クラスタの中心には高品質なデータ、つまり自信の高いデータを集める**ことで、クラスタリング精度向上に寄与します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/89a864bc-aef4-476e-b25d-c59b7cdac65d.png)



# ArcFaceと何がちがうの？
特徴ベクトルの**「向き」だけでなく「大きさ」**にも着目します。
ちなみに、MagFace の Mag は **magnitude（大きさ）**の略です。

### 幾何学的解釈
ArcFaceとMagFaceの最適化済み特徴空間を比較します。

- ArcFace （正規化なし）
    - サンプルに依らない一様なマージン$m$を学習に用いる
    - → 赤領域に入った3種類の朴槿恵前大統領には罰則（ペナルティ）なし
    - → 3種類の朴槿恵はデータ品質に関わらず任意の位置に留まる
    - → **クラス内分布が不安定になる**
- MagFace
    - 下記２つの条件のもと学習させる
        - 1. サンプルが高品質なほど特徴ベクトルの大きさ$a$を大きくする
        - 2. 特徴ベクトルの大きさ$a$が大きいほどマージン$m$を大きくする
    - → **高品質な朴槿恵ほどクラス中心$W$に近づく**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/5c9030dc-a788-595b-493f-e4a72ad86a04.png)
※ 円の半径は特徴の分散を示し、半径が小さいと高品質を意味する

### 損失関数の設計

- ArcFace
    - コサイン類似度に基づく顔認識損失 (マージン$m$)
- MagFace
    - コサイン類似度に基づく顔認識損失 
        - $𝑚(𝑎_𝑖 )$ :  特徴ベクトルの大きさ $a_i$ が大きいとマージンは大きくなる（狭義単調増加凸関数 ）
    - 特徴ベクトルの大きさ$a_i$ の大きいサンプルに報酬を与える正則化項
        - $𝑔(𝑎_𝑖 )$ : 特徴ベクトルの大きさ $a_i$ が大きいと$g$は小さくなる（狭義単調減少凸関数）
        - $\lambda_g$ : 正則化項の強さを決定するハイパーパラメータ
        - → $𝑔(𝑎_𝑖 )$は一見すると何やってるかわからないが、**「データ品質が高い、すなわち円の半径が小さいサンプルのみ$a_i$の自由度が高い」**という性質を活かした簡単な設計となっているみたい


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/244e78a3-656f-1d35-ab11-44d240f7fbac.png)
※ MagFaceの左図においておそらく$B_1$と$B_3$は論文著者のミスで実際は逆

この結果ArcFaceは、$m(a_i)=m, g(a_i)=0$ のMagFaceにおける特殊なケースと考えることができます。






### 数理的保証
特徴ベクトルの大きさ $a_i$ が有界区間 $[l_a, u_a]$ に入り、$λ_g$ が十分に大きいと仮定すると、$a_i$上の$L_i$を最適化する際に以下の2つの特性が常に成立することを証明しています。

- 【収束性】  $a_i∈[l_a, u_a]$ に対して、$L_i$ は厳密に凸関数であり、唯一の最適解 $a_i^*$ を持つ
    - → **$a_i$の最適解が一意**であることと、**高速収束**が保証される
- 【単調性】 最適解 $a^∗_i$ は、そのクラス中心へのcos距離が減少し他クラスへのcos距離が増加すると、単調に増加する。
    - → **特徴量の大きさがデータ品質を表す指標として扱うことができる**ことを保証

証明の詳細は論文の補足資料をご覧ください。



# 実験結果

設計したMagFace損失で著者の意図通り学習できているかをセクション０で検証したのち、
先に説明した３つのモチベーションが解決されているかを分析します。

### 0. MagFace損失の効果を可視化

広く使われているMS1M-V2データセットで実験を行い、収束時の学習サンプルについて**特徴ベクトルの大きさとクラス中心との類似度の関係**を調べています。

- (a) Softmax : 放射状の分布となる（相関なし）
    - → 特徴ベクトル $a$ の大きさに対する明確な制約がないため、各サンプルのネガティブ損失の値はその大きさにほとんど依存しない
- (b) ArcFace : データの品質に関わらず右側に集中する
    - クラス中心$W$との類似度$\cosθ$ が大きい高品質なサンプルは、特徴ベクトルの大きさ(縦軸)の上下が激しい
    - 認識が難しい（$\cosθ$が小さい）低品質のサンプルに対しては、固定角マージンのせいで下限値(緑の破線）より小さくなることはない
- (c) MagFace : MagFaceのモチベーションを正しく反映している
    - **特徴ベクトルの大きさと $a$ クラス中心とのcos類似度に強い相関**がある
    - 特徴ベクトルの大きさ $a$ が小さくなるにつれて、サンプルはクラス中心からより強く乖離している

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/c4af820b-ade1-1082-da70-4fba5a116b13.png)
※ モデルはMS1M-V2で学習され、最後のiterationの512サンプルを可視化に使用




### 1. 【Quality】 データ品質の定量化指標「a」
下図より、特徴ベクトルの大きさ $a$ が大きくなると、対応する平均顔がより詳細になることがわかります。これは、高品質な顔は、より正面を向いていて特徴的になる傾向があるからです。これは、**MagFaceで学習した特徴ベクトルの大きさ $a$ がデータ品質を表す良い指標**であることを意味しています。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/491be34e-6ea0-7c6f-a0d3-e89ceb1334f3.png)
※ IJB-Cデータセットから抽出した100k枚の画像の平均顔を視覚化したもの。各平均顔は、MagFaceによって学習された特徴量の大きさレベルに基づいて、顔のグループに対応しています。


### 2. 【Recognition】 顔認識の精度向上
ArcFace論文の設定に準拠して実験した結果、精度はほぼ飽和状態ですが、**MagFaceは総合的に最良の結果**を得ています。（横列はデータセットの種類）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/e2e322b1-cd74-229a-4aae-aefbc3d131d8.png)


また、IJB-Bとそれを拡張したIJB-Cデータセットを用意し、指標 True Acceptance Rate (TAR@FAR=1e-6,1e-5,1e-4) で評価しています。
その結果MagFaceは、**IJB-BのFAR=1e-6を除く全てのFAR基準でトップを維持**しています。これにより難易度の高いデータセットにおいてMagFaceが優れていることを示しています。
なお、1つのIDに対して複数の画像が存在する場合、**特徴ベクトルの大きさで重み付けされた特徴量を集約する (MagFace++) ことで、精度をさらに向上**させることができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/141affc2-73d9-2254-1e79-a22335968034.png)


### 3. 【Clustering】 顔のクラスタリング精度向上
MagFaceは、データセットに関わらずF-scoreとNMIの両方の評価指標において、常に**ArcFaceよりも優れた性能を達成**しています。MagFaceの方がクラス内の特徴分布が優れていることに起因していると考えられる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/908679be-1912-4403-ba3c-af6a328b44f8.png)

下図よりIJB-B-1dデータセットでは、**MagFaceの大きさがクラス中心である確率と正の相関がある**ことがわかりました。この結果は、**高品質のサンプルはクラス中心に分布し、低品質のサンプルは中心から離れている**という、予想されたクラス内構造をMagFace特徴が示していることを反映しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269839/c3286b6c-3c96-8dba-6006-00c5c4c8994f.png)
※ 各サンプルがクラス中心である確率は、顔の特徴によって定義される隣接構造に基づいて推定されます。局所的な接続が密なサンプルはクラス中心確率が高く、接続が疎なサンプルや複数のクラスターの境界に存在するサンプルはクラス中心確率が低くなります。詳細は [46] をご覧ください。

# まとめ
MagFaceはデータ品質を考慮して顔表現を学習するために2つの原則に従っています。

1. 同じクラスの異なる品質の顔画像が与えられたとき、**高品質のものはクラス中心に近く、低品質のものは境界に分布するようなクラス内分布**を学習しようとする
2. **特徴量計算と同時に品質も測定する**ため、既存の推論アーキテクチャを変更するための**コストを最小限**に抑えることができる

これによってArcFaceなどの既存マージンベース手法と比較して、よりよい精度が出ています。

さらに、特徴の**角度だけでなく大きさも着目する**というアイデアは、今後さまざまなタスクに拡張できそうです。


# 次に読むべき論文は？
↓論文
[T-vMF Similarity for Regularizing Intra-Class Feature Distribution.](https://openaccess.thecvf.com/content/CVPR2021/html/Kobayashi_T-vMF_Similarity_for_Regularizing_Intra-Class_Feature_Distribution_CVPR_2021_paper.html)

MagFaceと同じく**CVPR2021に採択**されており、なおかつ、
アプローチは違いますがこちらも**cos類似度を拡張した論文**です。
また、日本を代表する研究所**AIST**が発表してますので、日本人としても読んでおきたいですね。



# 参考文献
https://www.youtube.com/watch?v=BcwC3VBZWJU

[46] Lei Yang, Dapeng Chen, Xiaohang Zhan, Rui Zhao, Chen Change Loy, and Dahua Lin. Learning to cluster faces via confidence and connectivity estimation. In IEEE Conference on Computer Vision and Pattern Recognition, 2020. 3,8