具有用户图像标记的图像分类模型的专业化

时间:2017-01-23 15:52:47

标签: image-processing machine-learning computer-vision software-design training-data

我有一个关于机器学习的软件过程/架构设置的概念性问题。我有一个网络应用程序,我正在尝试合并一些机器学习算法,像Facebook的面部识别(除了一般的对象)。因此,模型可以更好地分类上传到我的服务中的特定图像(例如fb如何对特定人员进行分类等)。

粗略的轮廓是:

event:       User uploads image; image attempts to be classified
if failure:  draw a bounding box on object in image; return image
interaction: user tags object in box; send image back to server with tag
????:        somehow this new image/label pair will fine tune the image classifier

我需要最后一步的帮助。通常,在转移学习或一般的培训中,程序员拥有一个充满图像的大型数据库。在我的情况下,我有一个预训练模型(谷歌的初始-v3),但我的微调数据库不存在,直到用户开始上传内容。

那么如何使用该标记方法来构建专门的数据库呢?我确定FB遇到了这个问题并解决了它,但我可以找到他们的解决方案。经过一番思考(以及不确定的研究),我能想到的唯一策略是:

A) stockpile tagged images and do a big batch train

B) somehow incrementally input a few tagged images as they get 
   uploaded, and slowly over days/weeks, specialize the image classifier. 

理想情况下,我想避免使用选项A,但我不确定B是多么逼真,也不确定是否有其他方法可以完成此任务。谢谢!

1 个答案:

答案 0 :(得分:2)

是的,这听起来像是online learning的典型例子。

特别是对于深度网络,给定一些新数据,例如,可以在其上运行几次随机梯度下降迭代。如果需要的话,调整学习率可​​能是一个好主意(这样可以调整给定样本的重要性,具体取决于一个人对它的信心)。 正如你所提到的,你也可以保存“迷你批次”来做到这一点(取决于你的设置)。

另外,如果您想让学习者(例如用户之间)更专业一点,请查看domain adaptation