# Teaching neural network on fixed data

Imagine that we have a black box that have 100 binary inputs and 30 binary outputs.

We can generate values for inputs and get relevant set of outputs.

How does one teach a neural network to predict the binary inputs (or list of input values with probabilitys) using the outputs?

Need practice.

• I don't quite understand you last sentence. Can you rephrase it please? – Jaden Travnik Sep 12 '17 at 2:38
• I suggested an edit, is that what you meant? – Jaden Travnik Sep 12 '17 at 3:09
• Yes! It is what I mean – Denis Leonov Sep 12 '17 at 3:31
• @JadenTravnik The OP needs to go through community guidelines. – quintumnia Sep 12 '17 at 16:35

## 2 Answers

The problem you describe is a matter of perspective; although you want to predict the inputs, defining the outputs of the BB (blackbox) as the inputs to a new system (an inverse BB) whose outputs are that of the inputs of the original BB, then one can use previous literature. There are some assumptions using this method such as "each input can be calculated from an inverse function using 1 or more outputs" so take precaution.

I'd recommend reading through this paper by Richard Sutton. Its introduction defines the problem mathematically and references some common approaches as well as its own method.

• no practice in that paper – Denis Leonov Sep 12 '17 at 4:28
• Do you mean there is no code attached? They have experiments and refer to other methods. Understanding your problem mathematically and concretely is important to solving it. – Jaden Travnik Sep 12 '17 at 4:50

One of the biggest problems in training neural networks is creating high quality data sets. E.g. if you want to classify pictures, you need a huge set of correctly classified pictures as training input. In your scenario, you can automate this laborious job by feeding random data to your blackbox and store the output. Voila, you have your training data.

Your neural network will have the same input and output structure as your blackbox. You can use your generated training data the same way you you would use manually generated training data. I cannot provide any actual implementation, because the training mechanism depends on your technology stack incl. the frameworks you are using. But there is nothing out of the ordinary in your scenario when it comes to the training process itself and you can follow one of the many available tutorials for training neural networks - a pretty basic one for example would be this tutorial for Keras (if that's your choice of framework).