Answers.Body: <p>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 <em>manifold</em> inside that space.</p>
  
  <p>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 <a href="https://ai.stackexchange.com/questions/92/how-is-it-possible-that-deep-neural-networks-are-so-easily-fooled/4051#4051">everywhere</a>.</p>
  
  <p>So your question can be reformulated like this: can we learn the data manifold given the neural network and some partial data?</p>
  
  <p>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.</p>
  
  <p>Hope this answers your question.</p>
  
  <p>I'd like to mention here one very promising technique called <a href="https://en.wikipedia.org/wiki/Generative_adversarial_network" rel="nofollow noreferrer">GAN</a>, 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.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-09-30T18:16:34.443Z
Answers.LastActivityDate: 2017-09-30T18:16:34.443Z
Answers.UserDisplayName: Maxim
Answers.Body: <p>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 <em>maybe</em> predict or estimate the inputs but I do not think those values would be correct.</p>
  
  <p>For more on this, I encourage you to check out <a href="http://www.palisade.com/downloads/pdf/academic/DTSpaper110915.pdf" rel="nofollow noreferrer">this paper</a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-09-28T16:36:59.073Z
Answers.LastActivityDate: 2017-09-28T16:36:59.073Z
Answers.UserDisplayName: hisairnessag3
Body: <p>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.</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-09-27T22:34:29.873Z
Comments.Text: Not in general; the output could easily ignore one (or more) of the inputs.
Comments.UserDisplayName: antlersoft
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-09-28T00:20:49.650Z
Comments.Text: @antlersoft I was assuming that one would have access to the weights as well, but I'll clarify that in the question.
Comments.UserDisplayName: Beryllium
Tags: <neural-networks>
Title: In a neural network given partial inputs and complete outputs, is it possible to predict remainig inputs
UserDisplayName: Beryllium
ThreadText: # In a neural network given partial inputs and complete outputs, is it possible to predict remainig inputs
  
  (Asked by: username_0 on 2017-09-27)
  
  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.
  
  **Tags:** neural-networks
  > **Comments:**
  > **username_1**: Not in general; the output could easily ignore one (or more) of the inputs.  
  > **username_0**: @antlersoft I was assuming that one would have access to the weights as well, but I'll clarify that in the question.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2017-09-30. Score: 1
  
  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](https://ai.stackexchange.com/questions/92/how-is-it-possible-that-deep-neural-networks-are-so-easily-fooled/4051#4051).
  
  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](https://en.wikipedia.org/wiki/Generative_adversarial_network), 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.
  
  
  ---
  
  ### Answer by username_3 on 2017-09-28. Score: 0
  
  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](http://www.palisade.com/downloads/pdf/academic/DTSpaper110915.pdf)
  
  
  ---
  
  