【问题标题】:How to store neural network knowledge data?如何存储神经网络知识数据?
【发布时间】:2016-06-07 11:22:16
【问题描述】:

我是那个领域的新手,所以这个问题可能看起来很奇怪。然而,在询问之前,我已经阅读了大量关于机器学习的关键点以及神经网络的作用部分是什么的介绍性文章。包括非常有用的那一个What is machine learning。基本上我知道了 - 受过教育的神经网络是(如果错了,请纠正我):

  1. 神经元之间的一组连接(可能是自连接的,可能有门等)
  2. 在每个连接上形成激活概率。

在训练过程中,这两件事都进行了调整,以尽可能接近预期输出。然后,我们对受过教育的 NN 做什么——我们将数据的测试子集加载到其中并检查它的性能如何。但是,如果我们对测试结果感到满意并且想要存储教育结果,并且以后在数据集获得新值时不再运行训练,会发生什么情况。

所以我的问题是 - 教育知识是否存储在 RAM 之外的某个地方?可以转储(以某种方式考虑对象序列化),这样您就不需要用明天或以后获得的数据来教育您的 NN。

现在我正在尝试使用 synaptic.js 使用我的数据集制作简单的演示,但我无法在项目的 wiki 中发现那种保存教育的概念。 那个库只是一个例子,如果你引用一些python库就好了!

【问题讨论】:

  • 如果您使用的是突触,您可以将您的神经网络保存为 JSON 格式供以后使用。您甚至可以将其转换为独立的 javascript 函数!

标签: javascript python machine-learning neural-network


【解决方案1】:

关于通过 synaptic.js 存储它:

这很容易做到!它实际上有一个内置的功能。有两种方法可以做到这一点。

如果您想在不重新训练的情况下使用网络

这将为您的网络创建一个独立的功能,您可以在任何地方使用 javascript 使用它,而无需 synaptic.js! Wiki

var standalone = myNetwork.standalone();

如果您想稍后修改网络

只需将您的网络转换为 JSON。这可以随时使用 synaptic.js 再次加载! Wiki

// Export the network to a JSON which you can save as plain text
var exported = myNetwork.toJSON();

// Conver the network back to useable network
var imported = Network.fromJSON(exported);

【讨论】:

    【解决方案2】:

    我会在我的回答中假设您使用的是简单的multi-layer perceptron (MLP),尽管我的回答也适用于其他网络。

    “训练”MLP 的目的是找到正确的突触权重,以最大限度地减少网络输出的错误。

    当一个神经元连接到另一个神经元时,它的输入被赋予一个权重。神经元执行一个函数,例如所有输入的加权和,然后输出结果。

    一旦您训练好网络并找到这些权重,您就可以使用验证集来验证结果。

    如果您对自己的网络表现良好感到满意,您只需记录您应用于每个连接的权重即可。您可以将这些权重存储在您喜欢的任何位置(以及网络结构的描述),然后稍后再检索它们。无需在每次使用时都重新训练网络。

    希望这会有所帮助。

    【讨论】:

    • 所以基本上你的意思是“知识”(某些数据集上的有效结果)是描述 NN(层数、激活系数等)的程序代码的明确结果?所以这不是将程序代码应用于训练数据集的结果吗?
    • @shershen 没错。网络的行为完全由其结构和每个神经连接上的系数/权重来表征。
    • @shershen 训练期间权重/系数会发生变化。当您停止训练时,您将停止修改权重
    • 你说“网络的行为完全由它的结构来表征......” - 明白了!但是 - “当你停止训练时,你停止修改权重” - 那些修改后的权重是否保存在某个地方?
    • @shershen 最初您选择一组随机权重,并使用反向传播(或其他方法)训练网络,以使其随着时间的推移更加准确。在每个训练时期/迭代之后,您将新的权重保存下来。当您对自己的网络表现良好感到满意时,您需要将最终权重保存在某个地方,以便以后轻松检索它们。
    猜你喜欢
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多