我想使用多层感知器进行预测。我的数据有 3 个属性 x、y、z。我的窗口大小(输入)为 3。也就是说,使用 3 组 x、y、z 值来预测下一组 x、y、z。我的输入神经元数量应该是多少?
对于 3 组 x、y、z 值,它应该是 6 个输入神经元吗?
还是应该是 3 个输入神经元,每个神经元有 3 个 x、y、z 输入?
我想使用多层感知器进行预测。我的数据有 3 个属性 x、y、z。我的窗口大小(输入)为 3。也就是说,使用 3 组 x、y、z 值来预测下一组 x、y、z。我的输入神经元数量应该是多少?
对于 3 组 x、y、z 值,它应该是 6 个输入神经元吗?
还是应该是 3 个输入神经元,每个神经元有 3 个 x、y、z 输入?
我对这个问题的理解是,您正在使用基本的 MLP(前馈神经网络)来处理您所调用的 3 维向量数据- 尽管请注意,您阅读的大多数符号都会称为整个观察这将是一个向量. 您想接受该数据的第 1、2、3 次观察的输入(一些可能较长系列的窗口),并预测第 4 次观察。
对于给定的架构,预测是在提供的输入上立即进行的——MLP 对以前的输入没有“记忆”——所以你需要 3 x 3 = 9 个输入来表示系列中的每个 (x,y,z)。对于 MLP,你如何安排这个输入并不重要——例如你可以有或者或任何其他安排,只要您对每个训练示例和预测都保持一致。
您通常不希望或不需要以某种方式组合 x、y 和 z 值来创建具有 3 个输入的预处理层,或者创建一个特殊的层来组合. 如果您对序列如何工作的理解允许您提出对重要事物进行建模的特征,您可能会这样做。然而,更常用的方法是让神经网络从训练数据中找出多个输入是如何组合的。
您可能想查看循环神经网络 (RNN) 的替代架构,它具有更多处理序列预测的选项。对于 RNN,您将有 3 个输入神经元,您将依次运行网络 3 次,并在第三次运行后读取预测。
您已经正确地注意到,MLP 在内部没有“理解”,即您在步骤 1 中的 x in (x,y,z) 与步骤 2 和步骤 3 中的 x 是相同类型的变量。MLP 将有 9 个单独的输入和将忽略任何直接关系,甚至忽略正在预测的序列。在 RNN 中,这两个细节都作为核心假设构建到模型中。在某些情况下,这可能是 RNN 的一个重要优势。但仍然值得首先尝试更简单的 MLP,并测试其预测是否足以达到目的。