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

Ben*_* Z. 19 memory machine-learning neural-network

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

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

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

我的问题很困难,所以如果我需要详细说明,请告诉我.谢谢,


编辑: - 跟进下面的答案

每个神经网络都具有与之相关的边权重.在神经网络的训练期间调整这些边缘权重.

这正是我在苦苦挣扎的地方,我应该如何/应该看到这个二次记忆?这就像RAM吗?这似乎不合逻辑.我问的原因是因为我没有遇到一个在线定义或指定这个辅助存储器的例子(例如,更具体的东西,如XML文件,甚至可能是一个巨大的数组).

bog*_*ron 8

内存存储是特定于实现的,而不是算法本身的一部分.这可能是考虑更加有用什么你需要存储,而不是如何保存它.

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

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


Dee*_*epu 5

每个神经网络都有与之关联的边权重。这些边缘权重在神经网络的训练过程中进行调整。我想您的疑问是关于存储这些边缘权重。好吧,这些值单独存储在辅助存储器中,以便可以保留它们以备将来在神经网络中使用。