首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当新数据输入时,如何对神经网络进行再训练?

当新数据输入时,如何对神经网络进行再训练?
EN

Data Science用户
提问于 2017-11-13 09:03:12
回答 3查看 7K关注 0票数 3

我刚开始深造。谁能帮我实现网上学习的深度学习模式。根据我的理解,我可以在培训后保存一个keras/tensorflow模型,当新数据出现时,我可以重新加载网络并使用新的数据对网络进行再培训。我没有看到任何地方记录这个方法。我的理解不正确吗?如果是的话,请告诉我可以做些什么,这样当新的数据输入时,模型就会继续接受再培训?

EN

回答 3

Data Science用户

回答已采纳

发布于 2017-11-13 11:44:27

非常简单。做这件事有很多方法。我假设您熟悉随机梯度下降。我要告诉你一种天真的做法。

  • 将模型重新加载到RAM中。
  • 编写像SGD(X,y)这样的SGD函数。它将采取新的样本和标签,并运行一个步骤的SGD,并保存更新的模型。
  • 正如您所看到的,这将是非常低效率的,一个更好的方法是保存一些样本,然后在其上运行一步随机的批处理梯度下降。这样,您就不必每次给它一个新的示例时重新加载更新的模型。

我希望这能让您对实现的方法有一个大致的了解。您可以很容易地找到更高效和可伸缩的方法来实现这一点。如果您不熟悉像SGD这样的with算法,我建议您熟悉它们,因为在线学习只是一个小批处理梯度下降算法。

票数 1
EN

Data Science用户

发布于 2017-11-13 11:44:10

是的,有一些基于库的方法。此功能的适当关键字是检查点。因此,您可以检查函数以保存或恢复硬盘上的检查点,以便在新会话中继续学习或预测。例如,您可以在Tensorflow中看到以下内容:

tf.train.Saver类提供了保存和还原模型的方法。tf.train.Saver构造函数为图中的所有变量或指定的列表添加保存和还原操作。Saver对象提供了运行这些操作的方法,为要写入或读取的检查点文件指定路径。

有关Tensorflow中这方面的更多细节,您可以遵循这个链接

要完成这个案例,您可以在另一个库中跟踪这个主题,比如此链接中的CNTK。

票数 1
EN

Data Science用户

发布于 2017-12-13 16:54:53

拥有更多的数据并不意味着你有在线学习。以上答案是正确的,如果您假设即将到来的新数据样本将没有任何概念漂移。这意味着真正的数据生成分布可能会发生变化,因为您当前(最近的模型)所处的位置与新数据分布的最佳最小值相差甚远。我建议您阅读更多关于“概念漂移”的内容,并了解您的数据是否会有任何概念漂移。尝试寻找NN如何处理概念漂移。不幸的是,我不知道任何技术或方法可以使神经网络适应概念漂移。如果您不期望任何概念漂移,那么如果您使用随机梯度下降,那么保存检查点和继续培训将是一个很好的解决方案。

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

https://datascience.stackexchange.com/questions/24660

复制
相关文章

相似问题

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