使用低级库,例如 Theano 或 TensorFlow,您很可能可以构建减少张量的新方案(可能通过一些可学习的权重向量等)。在 TensorFlow 中,您还可以获得自动梯度计算,因此您应该仍然能够定义成本函数并使用现有的优化器,而无需自己分析新设计或重新编写反向传播公式。
通用逼近定理本质上表明,为了拥有一个可以学习特定函数的网络,您只需要一个使用标准矩阵乘法加上非线性激活函数的隐藏层。因此,新架构的发明和使用需要一些理由。原因通常是这些添加提高了可以学习的速度或范围,它们从训练数据中更好地概括,或者它们对问题域中的某些东西进行了很好的建模。
毫无疑问,随着时间的推移,对标准 NN 模型的各种变化进行了探索。那些已经流行起来的都在某些任务上证明了自己,并且经常有相关的论文证明它们的有用性。
例如,卷积神经网络已经证明自己擅长基于图像的任务。二维 CNN 层的设计与图像中的像素在本地如何相互关联具有逻辑匹配——定义边缘、纹理等,因此模型中的架构很好地匹配某些问题域。
如果您可以从向量乘法模型中找到与特定问题域的良好匹配,那么这表明它可能值得实施以测试该理论。如果您只是想探索其他 NN 结构以查看它们是否有效,您仍然可以这样做,但是如果没有特定目标,您将寻找要解决的问题(除非您偶然发现一些通常有用但之前被忽略的东西)。
要解决标题中的问题:
为什么神经网络模型不允许输入相乘?
一些低级的(例如TensorFlow)。然而,这并不是一个已经证明自己有用的架构,因此高级库(例如 Keras)的作者没有理由实现或支持它。这种情况有可能是疏忽,这个想法通常是有用的。在这种情况下,一旦有人可以展示这一点,您会发现它会很快得到积极开发的库的支持,因为它看起来很容易实现。