ElasticFace: Better than ArcFace?

Ahmad Irfan Luthfi
5 min readJan 11, 2022

--

Elastic Man (sumber)

Pada artikel sebelumnya, kita telah berdiskusi tentang dasar dari Face Recognition, yang berfokus pada dua metode, yaitu:

  • Metode tradisional menggunakan EigenFace, FisherFace dan LBPH
  • Metode modern menggunakan FaceNet

Nah pada artikel ini, kita akan mendiskusikan tentang ElasticFace, salah satu metode modern yang banyak digunakan untuk task Face Recognition.

Latar Belakang

Pada Face Recognition 101, kita sudah membahas tentang Triplet Loss dari FaceNet. Secara singkat, Triplet Loss memanfaatkan tiga gambar, yaitu Anchor (A), Positive (P) dan Negative (N). Tujuan kita pada FaceNet adalah membuat jarak antara embedding dari gambar A dan P sedekat mungkin, dan membuat A dan N sejauh mungkin. Tetapi, kendala dari penggunaan loss ini adalah ketika kita ingin melakukan training pada model kita menggunakan dataset yang besar. Saat ini, banyak yang mencoba pendekatan loss yang biasa digunakan pada task classification, seperti Softmax yang komputasinya tidak dipengaruhi oleh jumlah sampel. Tetapi, penggunaan Softmax tidak bisa langsung mengoptimisasi embedding dari model face verification.

Liu et al. mem-propose L-Softmax yang menggabungkan angular margin constraints dengan loss softmax dengan harapan pemadatan pada intra-class dan perenggangan pada inter-class sehingga pemisahan antara fitur yang dipelajari oleh model kita lebih bagus.

Liu pada 2017 juga berhasil menemukan modifikasi dari L-Softmax dengan cara normalisasi pada weight dari FCL terakhir dari arsitektur model dan menambah multiplicative angular penalty margin, yang dinamakan SphereFace.

Lalu, H Wang pada 2018 mencoba pendekatan yang berbeda dari SphereFace dengan menggunakan additive cosine margin pada cosinus sudut yang dibentuk antara fitur yang didapat dari backbone dan weightnya, yang membuat nama dari loss ini CosFace.

Ada juga pendekatan yang mirip dengan CosFace, yaitu ArcFace. Ditemukan oleh J Deng pada 2018, dengan menggunakan additive angular margin. Beberapa penemuan modifikasi softmax dengan menggunakan margin penalti pada sudut antara fitur yang didapat dari backbone dan weightnya berhasil membuat task face verification berkembang dengan pesat, dan berhasil mendapatkan performa yang sangat baik pada dataset yang biasa digunakan untuk benchmark face verification, seperti MegaFace dan LFW.

Hasil benchmark beberapa model umum (sumber)

Terlihat bahwa metode yang sudah dibahas sebelumnya berhasil mendapatkan akurasi yang bisa dibilang sangat bagus pada dataset benchmark umum.

Terdapat beberapa loss yang harus kita pahami sebelum kita membahas tentang ElasticFace. Sekarang, mari kita bahas beberapa loss tersebut.

Softmax Loss

Mungkin anda sering mendengar loss ini. Softmax loss memang salah satu loss yang paling sering digunakan untuk task classification, terutama multi-class classification. Pada diskusi kali ini, kita akan generalisasi task menjadi binary class classification. Dengan melakukan penurunan secara matematis, didapat bahwa loss dan batasan decision dari loss softmax adalah:

Dimana x adalah fitur dari sample z_i, W adalah matriks bobot dari model kita dan b adalah bias yang digunakan pada model kita. Salah satu kendala dari loss ini saat mempelajari face embedding adalah tidak bisa secara eksplisit melakukan optimisasi karena tidak ada batasan dari jarak minimal antara dua pusat dari suatu kelas, sementara pada face recognition ini kita butuh model memberi jarak antara dua kelas, agar dua face tidak saling timpa pada subspace yang kita buat. Untuk menghindari masalah ini, dibuatlah pendekatan softmax yang mengoptimisasi nilai cosinus antara sudut antara fitur dengan weights, dan memberikan margin penalti pada nilai cosinus ini.

Cosine Softmax Loss

Pada loss ini, bias pada softmax loss sebelumnya dihilangkan. Sudut tetha yang dibentuk diambil dari besar sudut antara fitur yang didapat dari model kita dan bobot dari FCL terakhir. Sehingga pada step ini, batasan decision dari loss cosine softmax adalah:

Walaupun pendekatan ini berhasil meningkatkan performa face verification, loss ini dinilai masih belum bisa menyelesaikan masalah yang kita hadapi sebelumnya. Disinilah Angular Margin Penalty-based Loss muncul.

Angular Margin Penalty-based Loss

Pada loss ini, nilai m_1, m_2 dan m_3 adalah parameter margin penalty dari SphereFace, ArcFace dan CosFace. Pada loss ini, bisa dibilang bahwa pemilihan nilai margin optimal (α) adalah hal yang paling penting. Salah satu langkah yang bisa dibilang “aman” adalah menggunakan nilai α besar yang mendekati batas atas margin sehingga jarak antar class menjadi lebih tinggi. Tetapi jika nilai α yang kita ambil terlalu besar, model tidak bisa mencapai konvergensi.

Elastic Angular Margin Penalty-based Loss (ElasticFace)

Nah, ini baru topik utama pembahasan kita. Setelah dijabarkan beberapa loss yang menjadi fondasi dari ElasticFace, kita akan membahas lebih lanjut tentang ElasticFace. Ide utama dari ini adalah dengan menggunakan nilai penalti margin yang diambil secara acak dari distribusi Gaussian.

Fadi Boutros, et al. menulis di papernya bahwa:

To demonstrate and prove our proposed elastic margin, we chose to integrate the randomized margin penalty in ArcFace (noted as ElasticFace-Arc) and CosFace (noted as ElasticFace-Cos) as they proved to have clearer geometric interpretation and achieved higher accuracy on mainstream benchmarks than the earlier SphereFace.

Visualisasi perbandingan antara ElasticFace, ArcFace dan CosFace

Bisa dilihat dari visualisasi diatas bahwa ElasticFace mengenalkan margin pada decision boundary dengan harapan agar kemampuan model untuk melakukan pemisahan class menjadi lebih baik.

Visualisasi fitur pada ruang vektor 2 dimensi

Dari visualisasi diatas, terlihat bahwa ElasticFace berhasil mendapatkan fitur yang terdistribusi lebih baik, karena besar sudut antar kelasnya lebih terdistribusi secara adil.

Hasil Benchmark ElasticFace

Tabel Perbandingan dari model face verification pada beberapa dataset benchmark (sumber)

Terlihat bahwa pada dataset benchmark (IJB-B, IJB-C, MegaFace (R) dan MegaFace), ElasticFace bisa dikatakan mengalahkan performa model model yang sebelumnya.

Referensi

--

--

Ahmad Irfan Luthfi
Ahmad Irfan Luthfi

Written by Ahmad Irfan Luthfi

AI Engineer at Delameta Bilano, MS Computer Science student at Georgia Tech

No responses yet