首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >机器实时学习

机器实时学习
EN

Software Engineering用户
提问于 2020-01-25 21:46:55
回答 1查看 105关注 0票数 4

我已经阅读了一些关于使用Python和库学习机器的教程,包括SciKit学习和张量流。(基本教程,比如创建一个算法来预测给定的输入值)。

我发现这些工具非常强大,但是它们看起来也很慢,并且由于数据的过度拟合或不足,需要进行大量的调整。

如果您正在处理一批数据(例如您每天接收一组新的数据,您想要计算预测值),这不会是一个问题,但我认为这很难实时运行。我知道有许多站点和应用程序正在实时执行机器学习算法,所以我试图了解它们是如何实现的。我能想到的几种可能性是:

  1. 他们使用这些ML工具(如Python、SciKit学习、张量流)实时预测实时值并不断学习,但需要大量的计算能力和优化才能将性能保持在可接受的水平。
  2. 他们使用这些ML工具进行实时预测,但只在某种离线或批处理过程中定期更新该算法。这仍然需要大量的计算能力和实时预测的优化,但不像选项1那么多。
  3. 他们脱机使用这些ML工具来计算算法,然后将该算法转换成更适合他们需要的其他语言(如Java、C++、JavaScript等)。这样做似乎很乏味。

还是我错过了第四个选择?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2020-01-26 07:39:59

我不知道“他们”是如何做到的,但我已经将ML应用于一个实时问题(基于SMTP对话框中可用数据的垃圾邮件检测,即在实际消息发送之前)。

一件事是,训练和应用神经网络是根本不同的操作。

  • 训练是迭代的,需要仔细选择网络结构、训练算法和参数,因此确实需要花费大量的时间,而且随着训练样本的增加,这一次增加了很多。这使得实时培训在我的情况下是不可行的,而且可能在其他大多数情况下都是不可行的。
  • 将经过训练的网络应用于一组输入数据可以在基本恒定的时间内完成,因为它只需要一定数量的乘法、加法、激活函数应用程序和比较才能得到结果。一些非常量的数据准备也是必要的,但这并没有很大的区别。

因此,对于我的特殊情况,您的第二个选项适用,并且大胆地从单个示例推断,我猜许多实时应用程序都具有类似的特性。

然而,拥有更多经验和资源的组织完全有可能选择不同的选择来取得更好的结果(特别是为了更好地应对不断变化的情况)。

票数 4
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/404268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档