Memory 神经网络/机器学习记忆存储

Memory 神经网络/机器学习记忆存储,memory,machine-learning,neural-network,Memory,Machine Learning,Neural Network,我目前正在尝试建立一个用于信息提取的神经网络,我对神经网络的(基本)概念非常熟练,除了一个似乎让我困惑的概念。这可能很明显,但我似乎找不到关于它的信息 神经网络在哪里/如何存储它们的记忆?(/机器学习) 网上有很多关于神经网络和机器学习的信息,但它们似乎都跳过了记忆存储。例如,在重新启动程序后,它在哪里找到继续学习/预测的内存?许多在线示例似乎无法“保留”内存,但我无法想象这对于实际/大规模部署来说是“安全的” 我有一个困难的时间措辞我的问题,所以请让我知道,如果我需要详细一点。 谢谢 编辑:

我目前正在尝试建立一个用于信息提取的神经网络,我对神经网络的(基本)概念非常熟练,除了一个似乎让我困惑的概念。这可能很明显,但我似乎找不到关于它的信息

神经网络在哪里/如何存储它们的记忆?(/机器学习)

网上有很多关于神经网络和机器学习的信息,但它们似乎都跳过了记忆存储。例如,在重新启动程序后,它在哪里找到继续学习/预测的内存?许多在线示例似乎无法“保留”内存,但我无法想象这对于实际/大规模部署来说是“安全的”

我有一个困难的时间措辞我的问题,所以请让我知道,如果我需要详细一点。 谢谢


编辑:-跟进以下答案


每个神经网络都有与其相关联的边权重。 这些边缘权重在a组的训练过程中进行调整 神经网络

这正是我正在努力的地方,我该如何看待这个二级记忆?
这像公羊吗?那似乎不合逻辑。。我之所以问这个问题,是因为我没有在网上遇到一个定义或指定这个二级内存的例子(例如,在更具体的东西中,比如XML文件,甚至可能是一个巨大的数组)。

我希望对模型(神经网络)设计的讨论与对实现的讨论分开,解决了耐久性等数据要求

一个特定的库或框架可能有一个关于持久存储的特定答案,但如果您是从头开始开发自己的库或框架,那么这取决于您自己

例如,为什么不将经过训练的权重和拓扑写入文件中?YAML或XML之类的东西可以作为一种格式


此外,当我们讨论状态/存储和神经网络时,您可能会对研究感兴趣。

每个神经网络都会有与其相关的边权重。这些边权重在神经网络的训练过程中进行调整。我想你的怀疑是关于存储这些边权重。好的,这些值分别存储在辅助存储器中,以便它们可以保留下来供将来在神经网络中使用。

存储器存储是特定于实现的,而不是算法本身的一部分。考虑需要存储的内容可能比考虑如何存储更有用

考虑一个三层多层感知器(完全连接),它在输入层、隐藏层和输出层中分别有3、8和5个节点(在本讨论中,我们可以忽略偏差输入)。然后,通过两个矩阵来表示所需权重的合理(且有效)方法是:输入层和隐藏层之间的权重的
3x8
矩阵和隐藏层和输出层之间的权重的
8x5
矩阵


对于本例,需要存储权重和网络形状(每层的节点数)。有很多方法可以存储这些信息。它可以是XML文件或用户定义的二进制文件。如果使用python,则可以将两个矩阵保存到二进制
.npy
文件中,并在文件名中对网络形状进行编码。如果您实现了该算法,那么如何存储持久数据将取决于您。另一方面,如果您使用的是现有的机器学习软件包,它可能有自己的I/O功能来存储和加载经过训练的网络。

我认为您的方法是错误的。神经网络不是我们在计算机上看到的内存转储。没有特定内存块所在的地址。所有神经元一起确保给定的输入导致特定的输出

让我们把它和你的大脑比较一下。当你品尝糖时,舌头的味蕾是输入节点,它读取化学信号并将电信号传输给大脑。然后,大脑利用各种电信号组合来确定味道


没有查找表。没有主要和次要记忆,只有短期和长期记忆。

这可以通过两个步骤来回答:

  • 什么是神经网络(称为NN)中的“记忆” 当神经网络(NN)被训练时,它会建立一个数学模型 它告诉NN为特定输入提供什么作为输出。思考 当你训练某人说一门新语言时会发生什么。这个 人类大脑创造了语言的模型。类似地,NN创建 你试图教它的数学模型。它将输入到输出的映射表示为一系列函数。这个数学模型 是记忆。该数学模型是网络中不同边的权重。通常,对NN进行训练,并将这些权重/连接写入硬盘(XML、Yaml、CSV等)。每当需要使用NN时,这些值都会被读回并重新创建网络

  • 你怎么能让网络忘记它的记忆 想想一个学过两种语言的人。让我们假设一个人15-20年来从未讲过其中一种语言,而是每天使用另一种语言。很有可能每天会学习几个新单词,而许多不太常用的单词会被遗忘。这里最关键的部分是人类每天都在“学习”。在神经网络中,通过使用新数据训练网络,可以观察到类似的现象。如果新的训练样本中未包含旧数据,则基础数学模型将发生很大变化,旧的训练数据将不再在模型中表示。通过改变训练过程,可以防止神经网络“忘记”旧模型。然而,这有一个副作用,即这种神经网络无法学习全新的数据样本

    是的,我在哪里