我想使用神经网络来学习输入向量和输出向量的映射。该问题的物理原理有限制,某些输入节点仅对某些输出节点有影响。我想在训练中使用这个约束。
如果我将神经网络表述为有向图,我想象从某些输入节点到输出节点的路径被“阻塞”,并且错误消息不应通过此类路径反向传播。例如,在下图中,我显示了一个具有 2 个输入和 2 个输出节点的神经网络。输入节点 1 不应对输出 4 产生任何影响,因此从节点 1 到 4 的任何路径(如虚线所示)不应具有反向传播。
我无法简单地将某些边/权重设置为零来满足约束,因为约束是在路径上,而不是在单个边/权重上。
我感谢任何人就这个问题分享想法和经验。也许这是一个经过深思熟虑的问题,但经过艰苦的搜索我还没有找到任何东西。
最佳答案
有趣的案例。恐怕神经网络不是这样工作的。层被认为是独立的:前向和反向传递流经所有可用连接,并且每个层不知道当前张量是如何累积的。
您在架构方面的选择是阻止各个连接,例如 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/