112. 【論文理解】Partial FC: Training 10 Million Identities on a Single Machine

之前的方法主要基于softmax損失函數(shù)的改進,但訓練大量人臉比較困難干毅。
softmax損失中的負類在人臉表示中的重要性并不如想象中重要,文中為了softmax-based損失函數(shù)只隨機采樣了10%的類別瘸味,比全量訓練精度并沒有下降塞关。
同時使用了高效分布式采樣算法姐扮,同時考慮到模型精度與訓練效率絮供。
8張顯卡完成1千萬人的分類任務。

介紹

人臉識別學習過程中茶敏,單人的特征被映射到嵌入空間,基于歐幾里得距離缚俏,屬于同一個人的特征被拉到一起惊搏、屬于不同人的被推開。
黃金法則就是忧换,人越多恬惯,模型學習到的信息越多,區(qū)分這些特征的能力越強亚茬。
softmax及其變體用于人臉識別的目標函數(shù)酪耳,一般是在嵌入特征與線性變換矩陣的相乘過程中進行全局的特征到類別的比較。
有方法通過并行減輕GPU壓力刹缝,很少的通信進行full-class softmax的計算碗暗;但人多到如1千萬的數(shù)量級時,通過特征取類別的計算量(logits)還是不可忽視梢夯,分布式GPU的內存節(jié)約有瓶頸言疗。GPU多了確可以解決權重矩陣的存儲問題,但最后的logits還是給GPU新增負擔颂砸。

文中提出一種高效人臉識別訓練策略噪奄,用于超大人臉集。

  • 首先在所有GPU上均勻按序存儲softmax線性轉換矩陣的不交疊子集人乓。
  • 每個GPU負責計算存儲在自身的采樣子矩陣和輸入特征的點積的和勤篮。
  • 每個GPU集結其他GPU的局部和,以近似full-class的softmax損失色罚,通過少量的通信采樣到局部和碰缔,以近似full-class的softmax。大大減少單塊GPU的通信保屯、計算和存儲成本手负,效率提升好幾倍。
    Glint360K中含有干凈的姑尺、合并了的現(xiàn)有公開人臉數(shù)據(jù)集竟终,本文方法只需用10%的類別計算softmax,就與當前最好效果不相上下切蟋。

貢獻:

  • softmax近似算法统捶,使用10%類別中心便可以維持準確度
  • 高效分布式訓練策略,很容易地用大數(shù)量類別來訓練分類任務
  • 干凈合并后的公開數(shù)集,最大最干凈的人臉數(shù)據(jù)集Glint360K喘鸟,在此數(shù)據(jù)集訓練匆绣、用此訓練策略的基準模型達到最優(yōu)效果輕而易舉。

相關工作

1)人臉識別
深度神經(jīng)網(wǎng)絡在人臉識別領域越來越重要什黑,pipeline一般是深度神經(jīng)網(wǎng)絡在給每個圖像提取特征崎淳,學習過程就是逐漸減小類內距離、增大類間距離的過程愕把。
目前有很多成功的softmax分類器及其變體拣凹,但人臉識別需要更大量的人臉。
基于softmax損失函數(shù)的方法中恨豁,人變多了嚣镜,線性轉換矩陣會線性增長,人多到一定程度則單卡無法承擔這樣的權重矩陣橘蜜。

2)softmax加速

  • 選active類中心構建隨機hash森林菊匿,通過特征取出近似的最近類中心(但類中心放在RAM中,取特征的計算時間不容忽視)
  • 將softmax損失分為類內和類間目標计福,減少類間目標的冗余計算(但對其他softmax-based損失不可拓展)
    這些方法在多GPU訓練時基于數(shù)據(jù)并行跌捆,GPU間通信代價高昂。ArcFace提出模型并行棒搜,將softmax權重矩陣分給不同的GPU疹蛉,然后用很小代價計算full-class的softmax損失,其在單機上使用多卡很成功力麸,但有內存限制——人多到一定程度可款,GPU內存消耗會到頂,盡管GPU數(shù)量多了也不行克蚂。
    所以本文分析的是模型并行中的GPU內存使用闺鲸。

方法

  • 詳述模型并行,分析其中設備間通信開銷埃叭、存儲代價和內存限制
  • 不降性能的近似方法
  • 分布式近似方法

1)模型并行
劃分softmax權重矩陣為k個給不同的GPU摸恍,每個GPU集結其他的GPU的特征。
數(shù)據(jù)并行要傳遞權重矩陣梯度赤屋,但模型并行只要傳達局部和立镶,通信代價大小為batchsize*4(float32)。
通信和矩陣操作描述第i個GPU上的模型并行過程类早,包括前后向傳播媚媒,大大減小GPU之間的通信。其中類別數(shù)C>>N*(k+1)涩僻,N為每個GPU上mini-batch的大小缭召。

2)模型并行的內存限制
不管C多大栈顷,因為模型并行完全可以解決權重的存儲、傳達問題嵌巷,所以加GPU就可以了萄凤。
每個GPU存儲子矩陣w的內存大小不變:
Mem_w = d*(C/k) *4 bytes
C變大,k也變大搪哪,此處C/k不變靡努。
此外預測的logits也存在GPU上,logits = X*w
Mem_logits = N*k*(C/k)*4bytes

因此分類層占據(jù)的GPU內存表示為:
Men_FC = 3*Mem_w + 2*Mem_logits

如果每個GPU上mini-batch的大小為64且嵌入特征維度為512噩死,則1百萬分類任務需8個GPU颤难,1千萬則需至少80個,logits會花費w的10倍的內存已维,則使存儲logits成為模型并行的新瓶頸(訓練大量人臉并不僅僅增加GPU就可以)。

3)近似策略

  • 正負類角色:
    廣泛使用的softmax分類損失:



    x_i表示第i個樣本的深度特征已日,屬于y_i類垛耳,w_j表示權重矩陣W(R_{d*C})的第j列。
    f_j表示帶有w飘千、b的全連接層的激活值堂鲜,簡便起見b設為1:



    w和x都l2歸一化后,預測值只取決于特征和權重之間的角度护奈。

線性權重矩陣的每一列表示一個類中心缔莲,第j列表示第j類的類中心,x_i的正類中心是w_y_i霉旗,其他就是負類中心痴奏。

用類中心的子集來近似softmax:全部采樣正類中心,隨機采樣負類中的10%厌秒,即正類加隨機負類(PPRN)

訓練時x_i和w_y_i之間的余弦距離的平均值CA_pcc:



實驗表明读拆,不采樣正類中心,x_i梯度只會使樣本遠離負中心而不會考慮類內聚集的目標鸵闪;
沒有采樣P_i時檐晕,和帶有PPRN的采樣策略P_i_{^}預測到的概率,在一定情況下很相似:


其中S表示采樣到的類別集蚌讼,r表示采樣率辟灰。
PPRN不斷優(yōu)化正類中心,正類概率P_gt和采樣到的類別和sum_P_j不斷增大篡石,訓練后期芥喇,負類概率之間的gap越來越小,就是說夏志,負類中心的方向乃坤、放大和采樣率關系不大苛让,采樣率0.1、0.5湿诊、1.0結果相似狱杰。

  • 分布式近似:
    采樣正類以及采樣隨機負類,可以達到與最優(yōu)效果不相上下的結果厅须。
    為訓練大量人臉仿畸,模型并行中,為平衡每個GPU的計算和存儲開銷朗和,每個GPU上的類別中心個數(shù)應相等错沽,采樣過程如下:
    【1】 獲得該GPU上的正類中心
    根據(jù)順序均分W:


k是GPU個數(shù),x_i樣本的標簽是y_i眶拉,其正類中心是W線性矩陣的第j列, 所以當前GPU上的正類中心集W_i_{p}千埃,很容易就從當前batch中特征的標簽y得到。

【2】計算負類中心的個數(shù)
當前GPU存儲的類中心個數(shù)為|w_i|, 正類就是|w_i_{p}|, 隨機采樣的負類中心的個數(shù)就是:


r就是PPRN采樣率
【3】隨機采樣負類
在w_i和w_i_{p}之間差集中隨機采樣負類中心忆植,得到負類中心為w_i_{n}:

將所有的類中心放到softmax計算中, W_{s}:

其中放可,W_{p} = [w_1_{p}, ..w_k_{p}], W_{n} = [w_1_{n}, .. w_k_{n} ].

W_{n}:

這種方法就是一種平衡每個GPU負載的近似算法。

參考:
paper: https://arxiv.org/pdf/2010.05222.pdf
code: https://github.com/deepinsight/insightface/tree/master/recognition/partial_fc#glint360k

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末朝刊,一起剝皮案震驚了整個濱河市耀里,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拾氓,老刑警劉巖冯挎,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異咙鞍,居然都是意外死亡房官,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門奶陈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來易阳,“玉大人,你說我怎么就攤上這事吃粒×拾常” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵徐勃,是天一觀的道長事示。 經(jīng)常有香客問我,道長僻肖,這世上最難降的妖魔是什么肖爵? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮臀脏,結果婚禮上劝堪,老公的妹妹穿的比我還像新娘冀自。我一直安慰自己,他們只是感情好秒啦,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布熬粗。 她就那樣靜靜地躺著,像睡著了一般余境。 火紅的嫁衣襯著肌膚如雪驻呐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天芳来,我揣著相機與錄音含末,去河邊找鬼。 笑死即舌,一個胖子當著我的面吹牛佣盒,可吹牛的內容都是我干的。 我是一名探鬼主播顽聂,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼沼撕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了芜飘?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤磨总,失蹤者是張志新(化名)和其女友劉穎嗦明,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚪燕,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡娶牌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了馆纳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诗良。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鲁驶,靈堂內的尸體忽然破棺而出鉴裹,到底是詐尸還是另有隱情,我是刑警寧澤钥弯,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布径荔,位于F島的核電站,受9級特大地震影響脆霎,放射性物質發(fā)生泄漏总处。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一睛蛛、第九天 我趴在偏房一處隱蔽的房頂上張望鹦马。 院中可真熱鬧胧谈,春花似錦、人聲如沸荸频。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽试溯。三九已至蔑滓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間遇绞,已是汗流浹背键袱。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留摹闽,地道東北人蹄咖。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像付鹿,于是被迫代替她去往敵國和親澜汤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內容