machine-learning - 神经网络: constraint certain input nodes contribution to certain output nodes

标签 machine-learning tensorflow neural-network deep-learning

我想使用神经网络来学习输入向量和输出向量的映射。该问题的物理原理有限制,某些输入节点仅对某些输出节点有影响。我想在训练中使用这个约束。

如果我将神经网络表述为有向图,我想象从某些输入节点到输出节点的路径被“阻塞”,并且错误消息不应通过此类路径反向传播。例如,在下图中,我显示了一个具有 2 个输入和 2 个输出节点的神经网络。输入节点 1 不应对输出 4 产生任何影响,因此从节点 1 到 4 的任何路径(如虚线所示)不应具有反向传播。

我无法简单地将某些边/权重设置为零来满足约束,因为约束是在路径上,而不是在单个边/权重上。

我感谢任何人就这个问题分享想法和经验。也许这是一个经过深思熟虑的问题,但经过艰苦的搜索我还没有找到任何东西。

A simple neural network with 2 inputs and 2 outputs

最佳答案

有趣的案例。恐怕神经网络不是这样工作的。层被认为是独立的:前向和反向传递流经所有可用连接,并且每个层不知道当前张量是如何累积的。

您在架构方面的选择是阻止各个连接,例如 DropConnect ,但如果可能的话,没有随机性。

您还可以为每个输出考虑单独的网络,例如一个网络,其中 (1, 2) 预测 3,另一个网络,其中 2 预测 4 。这样,您就可以强制施加约束,但会失去不同网络之间的共享权重,这并不理想。

另一种选择:我可以想象您可以扩充数据集,以便网络实际上了解到某些输入不会影响某些输出。根据您的实际问题,这可能会很耗时,但至少在理论上它可能有效:对于给定的输入/输出对 (1, 2) -> (3, 4) 您可以添加几个额外的对 (1*, 2) -> (3*, 4) 以显示更改 1 会影响第一个输出 3*,但不是第二个4

关于machine-learning - 神经网络: constraint certain input nodes contribution to certain output nodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45929889/

相关文章:

neural-network - 全连接 1 (fc1) 层的输入展平值来自哪里(MNIST 示例)

c# - 模式识别霍普菲尔德

keras - 使用keras训练ANN分类时损失NAN

tensorflow - 为什么我们必须在 tensorflow 的反卷积过程中指定输出形状?

numpy - Tensorflow 密集层操作

tensorflow - 初始化 LSTM 隐藏状态 Tensorflow/Keras

machine-learning - 如何提高 Apache Spark 多层感知器分类器的准确性?

javascript - 在 React 中将数据从一个函数传递到另一个函数

python - 我已经实现了一个简单的人工神经网络,但没有得到所需的输出

apache-spark - 使用 ALS.recommendation 得到错误的推荐