行人重識(shí)別的訓(xùn)練需要收集大量的人體數(shù)據(jù)到一個(gè)中心服務(wù)器上夕膀,這些數(shù)據(jù)包含了個(gè)人敏感信息箫章,因此會(huì)造成隱私泄露問題都办。聯(lián)邦學(xué)習(xí)是一種保護(hù)隱私的分布式訓(xùn)練方法嫡锌,可以應(yīng)用到行人重識(shí)別上,以解決這個(gè)問題琳钉。但是在現(xiàn)實(shí)場景中势木,將聯(lián)邦學(xué)習(xí)應(yīng)用到行人重識(shí)別上因?yàn)閿?shù)據(jù)異構(gòu)性,會(huì)導(dǎo)致精度下降和收斂的問題歌懒。
數(shù)據(jù)異構(gòu)性:數(shù)據(jù)非獨(dú)立分布 (non-IID) 和 各端數(shù)據(jù)量不同啦桌。
這是篇來自 ACMMM20 Oral 的論文,主要通過構(gòu)建一個(gè) benchmark及皂,并基于 benchmark 結(jié)果的深入分析甫男,提出兩個(gè)優(yōu)化方法,提升現(xiàn)實(shí)場景下聯(lián)邦學(xué)習(xí)在行人重識(shí)別上碰到的數(shù)據(jù)異構(gòu)性問題验烧。
論文地址:Performance Optimization for Federated Person Re-identification via Benchmark Analysis
開源代碼:https://github.com/cap-ntu/FedReID
本文主要對(duì)這篇文章的這三個(gè)方面內(nèi)容做簡要介紹:
- Benchmark: 包括數(shù)據(jù)集板驳、新的算法、場景等
- Benchmark 的結(jié)果分析
- 優(yōu)化方法:知識(shí)蒸餾碍拆、權(quán)重重分配
Benchmark
數(shù)據(jù)集
數(shù)據(jù)集由9個(gè)最常用的 行人重識(shí)別 數(shù)據(jù)集構(gòu)成若治,具體的信息如下:
這些數(shù)據(jù)集的數(shù)據(jù)量、ID數(shù)量感混、領(lǐng)域都不同直砂,能夠有效的模擬現(xiàn)實(shí)情況下的數(shù)據(jù)異構(gòu)性問題。
算法
傳統(tǒng)聯(lián)邦學(xué)習(xí)算法 Federated Averaging (FedAvg) 要求端邊全模型同步浩习,但是 ReID 的分類層的維度由 ID數(shù)量決定,很可能是不同的济丘。所以這篇論文提出了只同步部分的模型 Federated Partial Averaging (FedPav).
FedPav 的每一輪訓(xùn)練可以通過4個(gè)步驟完成:
- Server 下發(fā)一個(gè)全局模型到每個(gè) Client
- 每個(gè) Client 收到全局模型后谱秽,將全局模型加上本地的分類器,用本地?cái)?shù)據(jù)進(jìn)行訓(xùn)練摹迷,每個(gè) Client 得到一個(gè) local model
- Client 將 local model 的 backbone 上傳到 Server
- Server 對(duì)所有 client 收到的 model 進(jìn)行加權(quán)平均疟赊。
完整的算法可以參考下圖:
Benchmark 結(jié)果
通過 Benchmark 的實(shí)驗(yàn),論文里描述了不少聯(lián)邦學(xué)習(xí)和行人重識(shí)別結(jié)合的洞見峡碉。這邊著重提出兩點(diǎn)因數(shù)據(jù)異構(gòu)性導(dǎo)致的問題近哟。
1. 大數(shù)據(jù)集在聯(lián)邦學(xué)習(xí)中的精度低于單個(gè)數(shù)據(jù)集訓(xùn)練的精度
- FedPav: 聯(lián)邦學(xué)習(xí)總模型的精度
- FedPav Local Model: 聯(lián)邦學(xué)習(xí)各邊端模型模型上傳前在各自邊端測試的精度
- Local Training: 基準(zhǔn),每個(gè)數(shù)據(jù)集單獨(dú)訓(xùn)練和測試的精度
Local Training 效果比聯(lián)邦學(xué)習(xí)的效果好鲫寄,說明這些大數(shù)據(jù)集沒法在聯(lián)邦學(xué)習(xí)中受益吉执。需要有更好的算法來提高精度疯淫。
2. 聯(lián)邦學(xué)習(xí)訓(xùn)練不收斂
通過這兩個(gè)數(shù)據(jù)集測試曲線可以看出,因?yàn)閿?shù)據(jù)異構(gòu)性的影響戳玫,精度波動(dòng)較大熙掺,收斂性差。
優(yōu)化方法
采用知識(shí)蒸餾咕宿,提高收斂
因?yàn)閿?shù)據(jù)的異構(gòu)性的原因币绩,導(dǎo)致參與聯(lián)邦學(xué)習(xí)多方上傳前的本地模型的性能優(yōu)于云端服務(wù)器進(jìn)行模型融合后的模型性能,另外數(shù)據(jù)異構(gòu)性還導(dǎo)致了訓(xùn)練的不穩(wěn)定性和難收斂的問題府阀。針對(duì)這個(gè)問題缆镣,本方案提出使用知識(shí)蒸餾的方法,將參與聯(lián)邦學(xué)習(xí)的多方的本地模型當(dāng)成教師模型试浙,云端服務(wù)器的模型作為學(xué)生模型董瞻,用知識(shí)蒸餾的方法更好的將教師模型的知識(shí)傳遞到學(xué)生模型,以此提高了模型訓(xùn)練的穩(wěn)定性和收斂性川队。完整算法可以參考下圖:
下面的實(shí)驗(yàn)結(jié)果顯示力细,采用知識(shí)蒸餾(橙線)的訓(xùn)練收斂效果能夠得到有效提高。
提出權(quán)重重分配固额,提高精度
原算法在 Server 上做模型整合眠蚂,采用的是加權(quán)平均的方法,用每個(gè) Client 的數(shù)據(jù)量作為權(quán)重斗躏,進(jìn)行加權(quán)平均逝慧。每個(gè) Client 的數(shù)據(jù)量差距可能非常大,有的占比 40%啄糙,有的占比不到 1%笛臣,所以該論文提出了進(jìn)行權(quán)重分配。調(diào)整聯(lián)邦學(xué)習(xí)模型融合時(shí)各方模型更新的權(quán)重:給訓(xùn)練效果越好的邊端隧饼,分配更大的權(quán)重沈堡,在模型融合時(shí)產(chǎn)生更大的影響。訓(xùn)練效果的衡量是通過比較每一方本地訓(xùn)練前后模型用一批數(shù)據(jù)做推理產(chǎn)生的特征的余弦距離燕雁,余弦距離越大诞丽,該訓(xùn)練產(chǎn)生的變化越大,該分配的權(quán)重越大拐格。完整算法可以參考下圖:
下表格的實(shí)驗(yàn)結(jié)果顯示僧免,權(quán)重重分配使所有邊端模型的性能都超過 Local Training,帶來普遍的性能提升捏浊。
總結(jié)
針對(duì)數(shù)據(jù)隱私問題懂衩,這篇論文將聯(lián)邦學(xué)習(xí)應(yīng)用到行人重識(shí)別,并做了深入的研究分析。構(gòu)建了一個(gè) Benchmark浊洞,并基于實(shí)驗(yàn)結(jié)果帶來的洞見牵敷,提出了使用<u>知識(shí)蒸餾</u>和<u>權(quán)重重分配</u>的方法來解決數(shù)據(jù)異構(gòu)性帶來的性能問題。
算法細(xì)節(jié)和更多實(shí)驗(yàn)結(jié)果沛申,推薦閱讀原論文和開源代碼劣领。