我有一个带有 N 个输入节点和 N 个输出节点的神经网络,其中可能还有多个隐藏层和循环,但让我们先忘记这些。神经网络的目标是学习一个 N 维变量 Y*,给定 N 维值 X。假设神经网络的输出是 Y,学习后应该接近 Y*。我的问题是:是否有可能得到输出 Y* 的神经网络的逆?也就是说,当放入神经网络时,我如何获得会产生 Y* 的值 X*? (或接近它的东西)
问题的一个主要部分是 N 非常大,通常在 10000 或 100000 的数量级,但是如果有人知道如何为没有重复或隐藏层的小型网络解决这个问题,那可能已经很有帮助了。谢谢你。
最佳答案
如果你可以选择神经网络使得每层节点数相同,权重矩阵是非奇异的,并且传递函数是可逆的(例如leaky relu),那么该函数将是可逆的。
这种神经网络只是矩阵乘法、偏置加法和传递函数的组合。要反转,您只需要以相反的顺序应用每个操作的反转。 IE。取输出,应用逆传递函数,乘以最后一个权重矩阵的逆矩阵,减去偏差,应用逆传递函数,乘以倒数第二个权重矩阵的逆矩阵,依此类推.
关于neural-network - 神经网络的局部逆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15131713/