我想使用神经网络来学习输入向量和输出向量的映射。问题的物理特性具有约束,使得某些输入节点仅对某些输出节点有影响。我想在训练中使用该约束。
如果我将NN表示为有向图,我想象从某些输入节点到输出节点的路径被“阻止”,并且错误消息不应该通过这些路径反向传播。例如,在下图中,我显示了具有2个输入节点和2个输出节点的NN。输入节点1不应对输出4产生任何影响,因此从节点1到4的任何路径(如虚线所示)都不应具有反向支撑。
我不能简单地将一些边缘/权重设置为零以满足约束,因为约束是在路径上,而不是在单个边缘/权重上。
我感谢任何人分享有关此问题的想法和经验。也许这是一个经过深思熟虑的问题但我在经过艰苦的搜索后却找不到任何东西。
答案 0 :(得分:1)
有趣的案例。我担心神经网络不能像这样工作。层被认为是独立的:前向和后向流经过所有可用的连接,每层都不知道当前张量是如何累积的。
您在架构方面的选择是阻止个人连接,例如DropConnect,但如果可能的话,没有随机性。
您还可以为每个输出考虑单独的网络,例如一个网络,其中(1, 2)
预测3
,另一个网络2
预测4
。通过这种方式,您可以强制使用约束,但会丢失不同网络之间的共享权重,这是不理想的。
另一种选择:我可以想象你可以扩充数据集,以便网络实际学习某些输入不会影响某些输出。根据您的实际问题,这可能会非常耗时,但至少在理论上它可能有效:对于给定的输入/输出对(1, 2) -> (3, 4)
,您可以添加几个额外的对(1*, 2) -> (3*, 4)
以显示更改{{ 1}}影响第一个输出1
,但不影响第二个3*
。