Machine learning 神经网络:约束某些输入节点对某些输出节点的贡献

Machine learning 神经网络:约束某些输入节点对某些输出节点的贡献,machine-learning,tensorflow,neural-network,deep-learning,Machine Learning,Tensorflow,Neural Network,Deep Learning,我想用神经网络来学习输入向量和输出向量的映射。该问题的物理特性有一些限制,使得某些输入节点仅对某些输出节点有影响。我想在训练中使用这种约束 如果我将NN表示为一个有向图,我会想象从某些输入节点到输出节点的路径是“阻塞的”,错误消息不应该通过这些路径反向传播。例如,在下图中,我显示了一个具有2个输入和2个输出节点的NN。输入节点1不应该对输出4有任何影响,因此从节点1到4的任何路径(如虚线所示)都不应该有back prop 我不能简单地将一些边/权重设置为零以满足约束,因为约束位于路径上,而不是单

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

如果我将NN表示为一个有向图,我会想象从某些输入节点到输出节点的路径是“阻塞的”,错误消息不应该通过这些路径反向传播。例如,在下图中,我显示了一个具有2个输入和2个输出节点的NN。输入节点1不应该对输出4有任何影响,因此从节点1到4的任何路径(如虚线所示)都不应该有back prop

我不能简单地将一些边/权重设置为零以满足约束,因为约束位于路径上,而不是单个边/权重上

我感谢任何人分享关于这个问题的想法和经验。也许这是一个经过深思熟虑的问题,但经过努力搜索,我没有发现任何东西


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

您在架构方面的选择是阻止单独的连接,类似于,但如果可能的话,不具有随机性

你也可以为每个输出考虑单独的网络,例如一个网络,其中<代码>(1, 2)< /代码>预测<代码> 3 <代码>,以及另一个网络,其中<代码> 2 < /代码>预测<代码> 4 < /代码>。这样,您可以强制约束,但会丢失不同网络之间的共享权重,这并不理想


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

我和你处于同一水平,那么体重呢?只是说说而已。