In example, if there is a simple feed-forward neural network with 3 input neurons, 3 hidden neurons, and one output neuron; is it possible to predict a the value of an input neuron given the values and weights for the other two inputs and the output.
-
$\begingroup$ Not in general; the output could easily ignore one (or more) of the inputs. $\endgroup$– antlersoftSep 27, 2017 at 22:34
-
$\begingroup$ @antlersoft I was assuming that one would have access to the weights as well, but I'll clarify that in the question. $\endgroup$– BerylliumSep 28, 2017 at 0:20
2 Answers
It's important to understand that though neural networks generalize to the whole input space, usually the meaningful input space, from which the training data is taken, is a manifold inside that space.
For example, the image classifier can take any image, including white noise, but it's usually trained on photos, which generally have some nice structure and statistical properties, e.g. smoothness of color, and is expected to work well on photos, not everywhere.
So your question can be reformulated like this: can we learn the data manifold given the neural network and some partial data?
If we ignore deliberately crafted small examples (like ones in which the output just equals to one of features) and consider real world, high-dimensional tasks, we see that the manifold is quite resistant to small perturbations. In high-dimensional spaces a change of one dimension doesn't drastically change the distance to the manifold, it's still very very close. Example: a change of a single pixel is very unlikely to affect the output, hence it would be impossible to predict it. The larger the space is, the less is influence of each individual dimension.
Hope this answers your question.
I'd like to mention here one very promising technique called GAN, which basically does this: it uses one neural network for classification and the other to learn the data manifold. And it works so good that it'd be fair to say that both these networks actually complement each other, not derive from one another.
One can do this to a certain extent but I don't think to the point you are thinking. If the weights are known, you can then find the relative importance of each input to the outputs. From there one could maybe predict or estimate the inputs but I do not think those values would be correct.
For more on this, I encourage you to check out this paper