0

我有一个概念性问题,关于机器学习的软件过程/体系结构设置。我有一个网络应用程序,我试图合并一些机器学习算法,像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 

我需要最后一步的帮助。通常在转移学习或一般培训中,程序员拥有一个装满图像的大型数据库。在我的情况下,我有一个预训练模型(google的inception-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如何现实,也不如果有其他方式来完成这项任务。谢谢!

+0

你想让每个人都专注一个学习者,或者每个用户需要一个学习者?在任何情况下,采用新标记图像并在网络上运行随机梯度下降(或其他简单方法)几次迭代时会出现什么问题?请参阅[在线学习](https://en.wikipedia.org/wiki/Online_machine_learning)。 – user3658307

+0

是的,整个系统的一个学习者。好的,在线学习似乎是一种策略,让我可以用有限的动态数据“连续”更新模型。 –

回答

2

是的,这听起来像是一个典型的例子online learning。例如,对于深度转换网络,给定一些新的数据,可以对其进行几次迭代,例如随机梯度下降。如果需要的话,调整学习率也许是一个好主意(以便人们可以调整给定样本的重要性,取决于人们对其的信心)。 正如你所提到的,你也可以保存“小批量”(取决于你的设置)。另外,如果你想让你的学习者(例如用户之间)有更多的专业化,请查阅domain adaptation