人脸识别(可扩展性问题)

数据挖掘 机器学习 训练 可扩展性
2022-03-10 23:28:54

背景

我想为某种服务的注册和登录建立一个人脸识别模型。例如,使用这种方法(CNN + SVM)。

当新用户想要注册服务时,会记录他/她的面部图像,并使用这些图像训练机器学习模型。然后,当有人请求服务时,模型会识别此人是否为会员。


问题

但是当有新用户注册时,机器学习模型必须重新训练并扫描所有以前的图像(或特征向量)。当用户数量很大时,这种方法似乎存在可扩展性问题。

我已经阅读了这篇文章,但我的情况与建议的答案不太一样,因为我的机器学习模型旨在区分成员与非成员。有谁知道如何解决这个可扩展性问题?谢谢。

4个回答

您描述的问题可以通过在线机器学习来解决,您可以在新数据到达时不断更新模型,避免再训练的计算密集型部分。

对于深度神经网络,在这个方向上有一些工作。

scikit-learnVowpal Wabbit也提供了一些在线算法。

我面临着类似的问题。但我的问题有点不同,每当我训练一个 svm 分类器模型时,我的旧类都会因为新类而受到干扰。我使用了具有更高 C 值的 scikit-learn svm 模型,它部分解决了我的问题。

您可以使用谷歌的 facenet 使用另一种方法来实现可扩展性。我已将图像、模型和分类器转移到数据库。并使用这种技术来实现可扩展性。链接在下方,在此处输入链接描述在我的情况下,每次有新图像增量时,只有分类器会更新。

有一个专门的在线学习包,叫做creme您可以在此博客上找到一些快速指南文档也很好。

我会坚持使用 CNN,它非常适合从数据中提取特征。我会从预训练模型开始,只是砍掉最后一层并留下 conv 层。然后将这些功能带到creme.