如何在运行时训练ML .Net模型

时间:2019-11-27 18:29:00

标签: ml.net

有什么方法可以通过用户输入在运行时训练ml .net模型? 我已经创建了文本分类模型,在本地对其进行了培训,并进行了部署,现在我的用户正在使用它。

所需的工作流程:

文本将被分类,类别将显示给用户,他可以接受它或选择另一个预定义的类别,然后此反馈将再次训练模型。

谢谢!

1 个答案:

答案 0 :(得分:0)

您所描述的内容似乎像online learning

ML.NET没有任何真正的“在线”模型(我的意思是,这些模型可以通过示例适应新数据并立即刷新):所有ML.NET算法都是“批量”训练器,需要(通常是很大的)训练数据语料库以生成模型。

如果您的情况允许,您可以将用户的响应汇总为“其他训练数据”,并使用该数据(除了较旧的数据,可能会进行下采样或以其他方式衰减)定期重新训练模型。< / p>

正如@Jon所指出的,对上述机制的微小修改是“在新一批数据上增量地训练现有模型”。这仍然是批处理方法,但是可以减少重新培训时间。

在ML.NET的多级训练器中,只有LbfgsMaximumEntropyMulticlassTrainer支持此模式(请参阅documentation)。

将这种方法带到极限,并在一个示例的每个“批次”上“重新训练”模型可能很诱人。 除非您真的非常真正地知道自己在做什么,否则我会建议这样做:这样的培训制度很可能会迅速,灾难性地过度适应。