Neural network 神经网络再训练

Neural network 神经网络再训练,neural-network,Neural Network,我正在编写一个简单的神经网络,但我想到了一个困扰我的问题。 此NN用于在输入中查找类别。为了更好地理解这一点,假设类别是“数字”(0,1,2…9) 要实现这一点,输出层是10个节点。假设我用几个输入输出对训练这个神经网络,并将学习到的权重保存在某个地方。由于学习过程需要相当长的时间,在那之后我去休息一下。第二天再来,用新的输入输出对重新开始学习。好漂亮好漂亮 但如果在那个时候,我决定要识别十六进制(0,1,…9,A,B,…E,F)。。。因此,这些类别正在增加 我怀疑这意味着改变神经网络的结构,因

我正在编写一个简单的神经网络,但我想到了一个困扰我的问题。 此NN用于在输入中查找类别。为了更好地理解这一点,假设类别是“数字”(0,1,2…9)

要实现这一点,输出层是10个节点。假设我用几个输入输出对训练这个神经网络,并将学习到的权重保存在某个地方。由于学习过程需要相当长的时间,在那之后我去休息一下。第二天再来,用新的输入输出对重新开始学习。好漂亮好漂亮

但如果在那个时候,我决定要识别十六进制(0,1,…9,A,B,…E,F)。。。因此,这些类别正在增加

我怀疑这意味着改变神经网络的结构,因此我应该从头开始重新训练神经网络

是这样吗

如有任何意见、建议或分享您的经验,我们将不胜感激

编辑:此问题已标记为重复。我读了另一个问题,虽然类似,但我的问题更具体。另一个问题是笼统的,答案也是相当笼统的——我举了一个例子,说明我的问题非常具体:

如果我训练神经网络识别十进制数,然后决定添加数据使其识别十六进制数,这可能吗?怎么用?我必须重新培训整个NN吗?换句话说,神经网络的结构是否需要保持静止,从一开始就有10个或16个输出

我将非常感谢你对此作出具体答复。谢谢

一些注意事项
  • 您的培训集和测试集应该具有相同的分布

    除非你能像某些算法那样指定样本权重,否则你应该不惜一切代价避免对有偏见的数据进行训练。一般来说,机器学习是如此,而不仅仅是神经网络

  • 从上一节课恢复训练相当于使用良好的初始值

    从技术上讲,您只是使用以前的网络作为初始值,而不是随机值。您应该一如既往地在整个数据集中进行训练,以避免出现有偏见的网络

  • 简短回答 是的,您应该始终对网络进行再培训,如果再培训是指使用完整的数据集进行例行培训

    如果你只是说再培训是一次非常长的培训迭代,那无论如何也不是你的选择。您必须始终训练网络,直到训练错误和测试错误(或交叉验证错误)收敛。如果您重用以前训练过的网络,那么这种情况可能会更快发生

    你看,这是真的,无论什么样的模式改变。如果更改网络体系结构或数据集,或两者(您的示例)或某些其他参数


    当然,如果您更改网络体系结构,那么在重用以前的网络时会遇到一些问题。您可以重新使用从保留的节点学习的参数,并随机初始化新节点的参数。

    可能重复感谢您的回答。这是一个有趣的概念:当改变结构(架构)时,使用学习的权重作为起点,而不是随机的。再次感谢