我很好奇即使是专家设计的神经网络也可能存在哪些局限性。特别是关于这一个,我需要一些见解:
已知条件:
一组非平凡大小的随机整数(假设至少500个)
一个由专家创建和训练的神经网络。
任务:
数字字母组合: 在给定时间内,创建可能的最大表示形式的无限整数序列,该序列要么可以用闭合形式表示(例如 n^2, 2x+5 等),要么在 OEIS 中注册(http://oeis.org/)。用于创建序列的数字可以从输入集合中以任何顺序取用。因此,如果网络输入的是(3, 5, 1, 7…),返回(1, 3, 5, 7 …)将是一个可接受的结果。
据我所知,人工神经网络可以被训练来寻找特定的序列模式(再次强调 – n^2, 2x+5 等)。我好奇的是,它是否能被训练来识别更一般的模式,如 n^y 或 xy+z。我的想法是它做不到,因为 n^y 可以生成看起来彼此足够不同的序列,以至于无法建立稳定的“基础模式”。也就是说,由于人工神经网络的工作方式(接受输入集并与其被训练寻找的静态模式进行模糊匹配),它们在可以被训练寻找的范围上有局限性。
我理解得对吗?
回答:
继续我们之前在评论中进行的对话:
神经网络仍然可能有用。不是训练神经网络去寻找单一模式,而是可以训练神经网络来预测数据。如果数据中包含可预测的模式,神经网络可以学习到它,并且神经网络的权重将代表它所学到的模式。我认为这可能是你想要做的。
如果你这样做,以下几点可能会对你有帮助:
自编码器进行无监督学习,并且可以学习单个数据点的结构。
循环神经网络可以对数据序列建模,而不仅仅是单个数据点。这听起来更像是你所寻找的。
组合模式生成网络(CPPNs)是一个非常花哨的词,用来描述一个以数学函数作为激活函数的神经网络。这将允许你建模那些不容易被具有简单激活函数(如 sigmoid 或 ReLU)的神经网络近似的函数。但通常情况下这是不必要的,所以在你有一个简单的 NN 工作之前不要太担心它。
Dropout 是一种简单的技术,每次迭代时你都会移除一半的隐藏单元。这似乎能显著减少过拟合。它阻止了神经元之间形成复杂的关系,这应该会使模型更易于解释,这似乎是你的目标。