摘要
随着深度学习的快速发展,人脸识别准确率显着提高。然而,训练人脸识别模型需要将私人数据收集到中央服务器,以获得所需领域的高性能。由于联邦学习是一种在不向服务器收集数据的情况下训练模型的技术,因此它是一种合适的架构,可以使用个人智能手机中保存的隐私敏感面部图像来训练面部识别模型。本研究提出了将联邦学习应用于人脸识别模型训练的策略。
一、介绍
为了训练人脸识别模型,需要通过收集来自同一域的数据来构建训练数据集,即输入的分布。数据集构建的第一个选项是使用开放式面部数据集。网上有很多人脸数据集,每个数据集的数据量也足够大。因此,这些数据集可用于训练人脸识别模型。但是,训练模型的预期性能受限于训练数据集域中的面部图像。
不幸的是,不太可能找到所需域中的开放数据集。
构建训练数据集的另一种方法是直接将用户数据收集到服务器。在此数据集上训练的模型将能够达到预期的性能。
然而,在人脸识别模型的情况下,用户所需的数据将是隐私的人脸照片。这不仅需要用户同意收集,还存在个人信息泄露的潜在危险。潜在的危险是致命的,因为面部是不容易更改的重要个人信息之一。
因此,人脸识别模型应该在代表单个人的所有分布式数据上表现出良好的性能。此外,人脸识别模型应该也适用于新添加的身份。识别新添加的人是一项不同的任务,因为与其他人相比,他的面部数据集遵循完全不同的分布。换句话说,人脸识别中的任务数量会随着时间的推移而增加。这些属性显示出与持续学习的相似性,我们将它们命名为“连续”。这些连续属性与联邦学习的其他应用(例如下一个词预测)不同。在本文中,我们提出了一些关于正数据标记、数据管理、更新模型评估和考虑人脸识别连续特性的训练的策略。
二、联合学习策略
1.人脸数据标注策略
当人脸数据不断产生时,我们会标记这些数据是否对应于设备的所有者。
换句话说,每个数据都是正的或负的。
由于我们使用 ArcFace 损失函数,它只需要带有正标签的数据。我们提出了一种策略,可以根据特定标准有效地标记人脸数据。在一定时间内,根据fps的不同,存在着大量的人脸数据。如果超过一半的人脸数据被标记为正,我们得出结论,其他标记为负的数据也是正的。
2.数据管理策略
引言中提到,单个身份在一段时间内不断获得大量的人脸数据。由于所有这些人脸数据都对应相同的身份,我们希望人脸识别模型对所有数据都表现出一致的高性能。通过标准的训练方式,人脸识别模型往往会在最近的数据上表现出更好的表现,这种趋势被称为“灾难性遗忘”。为了防止这种情况,过去的数据需要参与培训。然而,由于移动设备的内存限制,不可能存储过去的所有数据,尤其是人脸图像。此外,移动设备的计算能力无法承受使用过去收集的所有数据进行训练的工作量。因此,我们提出了一种有效提取重要数据的策略。 ArcFace 模型返回表示人脸图像数据的高维(MobileFaceNets [6] 为 128D)向量。在这些向量中,只会保留一组最大化距离的少数向量,而其他向量将被删除。
3.模型评估策略
当从聚合创建新的全局模型时,并不一定意味着它的性能与以前的版本相比有所提高。因此,我们需要一个测试数据集来评估更新后的全局模型的性能。但是,由于面部数据是私有的,我们无法将用户数据直接收集到服务器。为了解决这个困难,我们随机将设备的角色以一定的比例(例如 8:2)分配给训练和评估。假设人口规模很大,20% 的随机样本可以在统计上代表整个人口。在模型更新聚合后,具有评估角色的设备接收全局模型的原始版本和更新版本,并根据本地数据产生模型的准确性。综合评估结果用于接受或拒绝全局模型的替换。如果更新的模型连续下降了几个轮(例如 50 轮),全局模型将回滚到具有最佳精度的最新全局模型。
4.更新缓冲策略
希望让尽可能多的设备在每一轮中做出贡献。传统联邦学习过程的每一轮都从选择可用设备开始。这只会选择当时可用的设备,很难鼓励更多的设备为这一轮做出贡献。为了改善这一点,我们建议使用缓冲区让设备在可用时进行训练。例如,在设备完成第一次训练后,它可能会积累更多的面部数据。通过我们的缓冲策略,设备可以在满足训练条件时使用新数据重新训练模型。缓冲区可以存储和管理所有从设备不定期发送的 ArcFace 模型的权重更新。因此,该策略允许尽可能多的设备参与每一轮。
上述相关工作中讨论的联邦学习往往由服务器主导和控制。通过应用更新缓冲区策略,我们让客户端设备积极参与联邦学习过程并启用异步协作学习,如图 1 所示
总结
本文提出了将联邦学习应用于人脸识别模型训练的策略。联邦学习允许在确保用户隐私的同时训练人脸识别模型以专门用于服务领域。据我们所知,这是第一份讨论考虑人脸识别连续特性的联邦学习过程的出版物。