I'm using a NN created with CNTK's SimpleNetworkBuilder to make choices (specifically in board games). I specified ReLU as the layer type, so outputs can be arbitrary numbers.
When evaluating a custom set of features, getting the "choice" of the function/model is simple: Look for the output signal with the highest value. However, there are times when I wish to introduce some randomness and assign probabilities to each output signal, then select the choice based on each output's probability.
Currently, what I'm doing is manually normalizing all the output using a sigmoid function specified here: https://en.wikipedia.org/wiki/Logistic_function Then, I multiply them all by a scalar such that the sum total of all outputs is 1.
At this point, I pick a random number 0..1, and see where along the map it falls; that is my selected choice.
What I'd like to know is, is there a better way?