IWeightNoise instances operate on an weight array(s), modifying values at training time or test
time, before they are used. Note that the weights are copied before being modified - the original parameters
are not changed. However, if the pameters are not changed, the original array is returned.
This interface can be used to implement functionality like DropConnect, weight quantization and weight