# Consistent Instance False Positive Improves Fairness in Face Recognition [toc] ## introduction + 這篇paper最主要的目的是improve fairness, 而在fairness這個領域, 之前的研究通常是針對standard deviation這個metrics, 而作者是focus在false positive rate, 而且是instance false positive rate, 也就是只針對一個batch當中的samples去算false positive rate + 作者的作法是將FPR加入到softmax loss function中 + 第二個特點是instance FPR不需要demographic annotations, 因為只計算一個batch當中的FPR, 就不會受到demographic annotations的限制 + 剛剛有提到作者將FPR加入softmax loss function中, 而現在face recognition的SOTA method像是ArcFace, CosFace, SphereFace所使用的loss function都是softmax-based loss function, 所以作者的方法可以很容易針對SOTA method做修改 + 最後就是作者的方法對於不同的demographic group都能夠有效減少bias, 因為是去計算instance FPR, 所以不管是用什麼demographic attributes做切分, 都不影響instance FPR的計算 ## related work ### loss function + related work先介紹softmax loss以及ArcFace的loss function + ![](https://i.imgur.com/lqgtUNM.png) + 上圖中的$L_1$是一個一般的softmax loss function, $W$是weight matrix, $x_i$是第i個sample經過extract過後的deep feature, $b$是bias + 我們將$W$跟$x_i$的內積寫成圖中的樣子, 並對$W$跟$x_i$做L2 normalization, 再將$x_i$ rescale成$s$, 這樣我們就只需要看$cos\theta$就好了 + 所以我們可以把公式寫成下面的樣子, 分子是positive pair之間的$cos\theta$, 分母的第一項也是positive pair, 剩下$\sum$裡面的都是negative pairs + ![](https://i.imgur.com/wIFzyOK.png) + ArcFace做的改進是將positive pair $cos\theta$的角度再多增加一個angular margin penalty $m$ + 這樣做的好處是, 增加了這個$m$之後, 這個$L_3$會比原本的$L_2$還要大, 所以在training過程中$\theta$會被壓縮得更小, 就會讓positive pair之間的角度更小, 同時讓negative pair之間的角度更大, 就能達成intra-class之間的距離變小, inter-class之間的距離更大 ### dataset + 接下來針對dataset的related work做介紹 + ![](https://i.imgur.com/2GaNhNS.png) + BUPT這個dataset有兩個版本 + 第一個BUPT-BalancedFace是一個balanced dataset, 每個種族的data數量是差不多的 + 第二個BUPT-GlobalFace的data distribution是跟現實世界的人口分布差不多的 + ![](https://i.imgur.com/ORO4yJD.png) + RFW跟BFW這兩個dataset都是balanced dataset + RFW針對African American, Asian, Caucasian, Indian四個種族 + BFW這個dataset有比較多的attribute, 有identity, race, gender + 總共有8個demographic groups, 分別由2個性別和4個種族所形成 ### model design + 再來是針對model設計的related work #### Jointly De-biasing Face Recognition and Demographic Attribute Estimation + ![](https://i.imgur.com/m8Fb45o.png) + 這篇paper想將gender, age, race, identity這四個feature disentangle + 並將這四個feature所對應到的四個classifier做adversarial training, 原因是我們希望classifier predict出來的結果是unbiased, 那classifier本身也要盡量是unbiased + adversarial training的作法是, 假設今天有一個race feature要通過gender classifier, 會希望gender classifier predict出來的probability distribution跟uniform distribution越像越好, 因為uniform distribution的randomness最大, 代表gender classifier不知道要怎麼去分辨這個race feature, 這樣就達到我們的目的, 因為gender classifier對於其他三個feature要是一無所知的狀態 + 最後把gender, race, identity三個feature經過aggregation network, 得到predict出來的id feature #### Mitigating Face Recognition Bias via Group Adaptive Classifier + ![](https://i.imgur.com/Utj3bRm.png) + 這篇paper提出了 + adaptive convolution kernels + channel-wise attention maps + 每個種族都會有它們迪利對應的kernels跟maps + 這兩個東西實際的運作方法如下 + ![](https://i.imgur.com/7I6Z5Am.png) + 假設現在經過的這層layer有32個filter, 我們每次取一層出來當作$K_i$, 並跟kernel mask $K^{M}_{yDemo}$做element-wise multiplication + kernel mask $K^{M}_{yDemo}$也是每個種族都會有一個 + 做完element-wise multiplication的$K^{yDemo}_i$再拿去對input image X做convolution, 得到feature map + ![](https://i.imgur.com/HEDp15c.png) + 剛剛adaptive convolution kernels的作法會有一個問題, 就是每一次做element-wise multiplication的$K^{yDemo}_i$都是一樣的, 因為同個種族都是使用同一個mask, 對於同一張input image一定是同個種族; 所以作者認為這樣會代表每一層filter都一樣重要, 但事實上不是 + 於是作者又提出了attention maps, 如同上圖, 先找到demographic label(種族label)那一列, 再看現在在處理哪一層(i)filter, 去找到第i行, 把對應到的點經過sigmoid function, 再乘上剛剛我們得到的feature map, 得到最後的feature map + ![](https://i.imgur.com/IGzZcIE.png) + 最後作者提出一個automation module, 可以讓每一層layer根據一個算法來決定這層要不要使用kernels跟maps額外的資訊 + 做法是將剛剛每個種族都有一個對應的kernel mask reshape成1D vector, 並讓它們兩兩兩兩做cosine similarity + 如果平均起來的值超過一個threshold, 那就代表這些種族之間很相似, 不容易產生bias, 就不需要加上kernels跟maps額外的資訊 + 如果平均起來的值沒有超過threshold, 那就代表這些種族之間不太相似, 比較容易產生bias, 就需要加上kernels跟maps額外的資訊 + ![](https://i.imgur.com/rckOIC1.png) + 最後我們可以看到GAC的accuracy比baseline還要好, 四個種族的standard deviation也比baseline低 ## method + 在最前面有提到在fairness的領域, 之前的研究都是focus在standard deviation這個metrics, 但作者是先去觀察false positive rate以及false negative rate + ![](https://i.imgur.com/fy2YvUZ.png) + FPR: + $N^-$是這些negative pairs的cosine similarity的數量 + ${S^-[i]}$這個集合是negative pairs的cosine similarity + FPR就是看這些negative pairs的cosine similarity有誰超過threshold, 就是false positive pair, $1()$是一個indicator function, 就是括號內的公式成立的話就記一筆, 沒有的話就是0; 分子就是所有false positive pair的數量 + FNR: + FNR的話就相反過來, 看這些negative pairs有誰的cosine similarity是小於threshold, 就是false negative pair, 再去除上所有positive pair的數量 + ![](https://i.imgur.com/dvw6c6j.png) + 上圖是分析出來的結果, 可以看到在threshold在0.31的情況下, FPR的standard deviation比FNR還要高很多 + 所以作者決定要focus在FPR這個term, 希望能降低FPR進而減少整體的bias ### consistency of instance FPR + 作者計算的FPR是instance FPR, 也就是只針對一個batch當中這些samples所形成的FPR + 作者提出了兩個使用instance FPR的原因 1. demographic group可以被各種demographic attributes切分(age, race, gender, ...), 所以如果每次使用不同demographic attributes就要對loss function做改變的話會很沒效率 2. 在計算instance FPR的時候, 不需要demographic anntation, 因為只計算一個batch當中的samples, 所以不需要annotation也能計算 + ![](https://i.imgur.com/vb5W8h5.png) + 接下來我們來看一下作者是怎麼把FPR這個term加入到softmax loss function中 + 上圖上半部是一個正常的softmax loss function, 分子的$G()$ function是針對positive pairs, 分母的$H()$ function是針對negative pairs + 上圖下半部是ArcFace的loss function, $G()$ function就是剛剛提到的加入penalty $m$, 分母的$H()$ function就直接使用negative pairs的cosine similarity + ![](https://i.imgur.com/2IZATrV.png) + 上圖就是作者所提出的loss function, 針對positive pair一樣是使用ArcFace的做法, 主要是針對negative pair, 加上了一個$\alpha \frac{\gamma^+_i}{\gamma^+_u}$ + $\alpha$是一個大於0的factor + $\gamma^+_i$是instance FPR + $\gamma^+_u$是predefined好的overall FPR + $\gamma^+_u$是事先給定的所以不會變動, 唯一會變動的只有$\gamma^+_i$ + 所以$\gamma^+_i$越大, loss就會越大; 在training過程中instance FPR就會不斷減少, 來降低bias + ![](https://i.imgur.com/tDzmJzi.png) + $\gamma^+_i$的算法跟剛剛FPR很像, 去看這個batch當中這些negative pairs的cosine similarity有誰超過threshold, 再除上整體的negative pairs數量 + 總共有n個sample, 針對sample i來看, 會跟其他n - 1個samples形成n - 1個negative pairs, 所以分母是n - 1 + ![](https://i.imgur.com/vu6gxfQ.png) + 作者還提出了weight function, 針對high similarity的false positive pair給出更大的penalty + 做法是在原本分子後面再乘上一個weight function $F()$ + ![](https://i.imgur.com/CZEmsQP.png) + $F()$ function原本的寫法是$sgn(z)|z|^p$, 但threshold $T_u$通常是一個大於0的數, 而$cos\theta_j$又要大於$T_u$, 所以$cos\theta_j$一定是一個大於0的數 + 關於threshold $T_u$的計算方法後面會再說明 + 所以weight function可以簡化成$F(z) = z^p$ + 但我在看這個weight function的時候覺得有點怪怪的, 假設$cos\theta_j = 0.9$ & $p = 2$, 那原本沒有加入weight function的算法是用indicator function $1()$記一筆, 但如果用了weight function, 變成原本先記一筆再乘上$0.9^2$, 變成0.81, 這樣不是loss變得更小了嗎 + 這邊我有去問作者, 但沒有得到回應, 我後來自己覺得作者的意思應該是: 先用indicator $1()$記上一筆, 再加上$1 * F(cos\theta_j)$, 這樣就會是$1 + 1 * 0.9^2 = 1.81$, 這樣才有達到更大的loss的效果 + ![](https://i.imgur.com/SLdSapm.png) + 上圖是loss function的效果, 左邊是ArcFace在training過程中FPR的變化, 右圖是作者的方法在training過程中FPR的變化 + 很明顯可以看到作者的方法的standard deviation有降低 + Asian的FPR明顯下降 + African跟Caucasian的FPR幾乎一樣 + ![](https://i.imgur.com/TQp7BgJ.png) + 上圖是取一部份samples並且有包含false positive pairs的情況下, standard deviation的變化 + 可以看到作者的方法有比較低的standard deviation + ![](https://i.imgur.com/xAc8h9d.png) + 上圖是計算demographic FPR以及instance FPR在training過程中standard deviation的變化, 作者的方法不管在哪一種FPR計算方法下, 都有較低的standard deviation + ![](https://i.imgur.com/l1IQqaU.png) + 最後是剛剛有提到threshold的計算方式, 會先將所有negative pairs的cosine similarity由小排到大, 並取當中第$k$大的數當作threshold, $k = \lceil\gamma^+_un(c-1)\rceil$ + $\gamma^+_u$是overall FPR + n是sample的數量 + c是class數量 + 假設有10張照片, 有5個identity, 也就是每個人有兩張照片, 那就是n = 10, c = 5 + 而關於overall FPR範圍的選取, 一般的face benchmarks的範圍通常是在$10^{-1} \sim 10^{-6}$, 但太小的FPR會導致false positive pairs變少, 也就沒辦法讓loss function很好地發揮 + 所以最後作者將範圍定在$10^{-1} \sim 10^{-5}$ + 後面的ablation study會看到怎麼樣的overall FPR會有最好的performance ## experiment + ![](https://i.imgur.com/10Lnh7q.png) + training dataset就是我們前面介紹的BUPT兩個版本 + ![](https://i.imgur.com/pTOeA7F.png) + testing dataset也是剛剛提過的RFW以及BFW + ![](https://i.imgur.com/qXb34pX.png) + training setting的話會將每張臉crop成112 x 112, 使用ResNet34, 50, 100層當作embedding network + 使用SGD, epoch = 40 + ![](https://i.imgur.com/jgN3ajF.png) + 第一個實驗是針對overall FPR $\gamma^+_u$的ablation study + 可以看到在$\gamma^+_u = 10^{-4}$有最好的average accuracy, 但standard deviation應該是第二名, 第一名應該是$\gamma^+_u = 10^{-1}$ + ![](https://i.imgur.com/rUO7ZTG.png) + 剛剛有講到overall FPR $\gamma^+_u$會影響到threshold $T_u$的值, 我們來看一下不同的$\gamma^+_u$會對$T_u$有什麼影響 + 假設n = 100, c = 100 + 這邊計算方便, c就不減一了 + 可以看到$\gamma^+_u$越小, threshold的值就會越大; 反之亦然 + ![](https://i.imgur.com/JcFpJL8.png) + 如果$\gamma^+_u$是一個很小的值 + 那threshold $T_u$就會是一個很大的值 + 這樣就會造成很少negative pair會超過threshold, 就會減少false positive pairs, 也就會讓loss function沒辦法很好地發揮 + 如果$\gamma^+_u$是一個很大的值 + 那threshold $T_u$就會是一個很小的值 + 在training過程中, negative pairs的$\theta$就會一直被壓縮, 所以不管是false negative pair還是true negative pair的$\theta$都會變的小, 就容易小於threshold, 導致很多false negative pairs產生 + 所以最後的$\gamma^+_u = 10^{-4}$就不會是一個很大或很小的值 + ![](https://i.imgur.com/jQzvVDx.png) + 再來是針對weight function的exponent $p$的ablation study + 在$p = 2$的情況下, average accuracy跟standard deviation都有最好的performance + ![](https://i.imgur.com/LXL8PfH.png) + 這邊是作者的方法跟SOTA method的比較 + train在BUPT-Balancedface + test在RFW + 先看到backbone是ResNet34的部分, 作者的方法有最好的average acuracy, standard deviation則是第三名 + 在ResNet50或100的部分, 作者的方法在average accuracy以及standard deviation都有最好的performance + ![](https://i.imgur.com/MTkIaBS.png) + 這邊也是作者的方法跟SOTA method的比較 + train在BUPT-Globalface + test在RFW + 在這個table中作者的方法在各項表現的performance都是最好的 + 觀察Table 3 & Table 4可以發現 + train在balanced dataset的standard deviation確實會比較小, 但average accuracy卻也比較低 + 我認為這代表balanced dataset的確能減少bias, 但沒有辦法完全消除, 還是要靠model的設計或是loss function的設計才能進一步improve fariness + ![](https://i.imgur.com/QuJdHww.png) + 接下來介紹的這個bias degree $\delta$是作者所提出的metrics + $G$是group set, 就是African American, Asian, Caucasian, Indian這四個group + $N_G$是group number, 就 = 4 + $\gamma^+_g$就是各個group的FPR + $\mu$是四個group FPR的平均 + $\gamma^+$是predefined的FPR + 公式如上圖右方, 主要是$\gamma^+_g - \mu$, 也就是看每個group FPR跟平均FPR的差異大小 + 所以四個group的standard deviation越小, 這個bias degree就越小 + ![](https://i.imgur.com/QlwBOJr.png) + 上圖是作者的方法跟reinforcement learning的做法在FPR的比較(test on RFW), 可以看到在四個種族作者方法的ROC表現都是比較好 + ![](https://i.imgur.com/lmJYuUa.png) + 上圖是bias degree的比較, 不論overall FPR怎麼變動, 作者的方法都有比較低的bias degree, 也就代表作者方法的bias比較低 + ![](https://i.imgur.com/glUSXxb.png) + 上圖是上圖是作者的方法跟reinforcement learning的做法在FPR的比較(test on BFW) + BFW是由2個性別跟4個種族形成的8個demographic groups + 在8個demographic groups作者方法的ROC表現都是比較好的 + ![](https://i.imgur.com/Ilvdjrd.png) + 最後一樣是bias degree的比較, 一樣在不同的overall FPR下, 作者的bias degree都比較低, 擁有較低的bias ## conclusion + 作者focus在false positive rate, 並將FPR加入到softmax loss function中, 當成penalty term + 作者提出的FPR是instance FPR, 只去計算一個batch中的false positive rate, 所以並不需要demographic annotation也能夠進行計算 + 最後在剛剛的實驗可以看到作者的方法在每個實驗的average accuracy都是最好的performance, 所以在減少bias的同時還能持續提升accuracy + 在fairness這個領域, 通常bias跟accuracy常常是trade off的情況, 但作者的方法有效減少bias的同時還能增加accuracy