package opt.example; import dist.AbstractDistribution; import shared.DataSet; import shared.Instance; /** * A distribution for neural network weights * @author Andrew Guillory gtg008g@mail.gatech.edu * @version 1.0 */ public class NeuralNetworkWeightDistribution extends AbstractDistribution { /** * The weight count */ private int weightCount; /** * Make a new neural network weight distribution * @param weightCount the weight count */ public NeuralNetworkWeightDistribution(int weightCount) { this.weightCount = weightCount; } /** * @see dist.Distribution#probabilityOf(shared.Instance) */ public double p(Instance i) { return 1; } /** * @see dist.Distribution#generateRandom(shared.Instance) */ public Instance sample(Instance ignored) { double[] weights = new double[weightCount]; for (int i = 0; i < weights.length; i++) { weights[i] = random.nextDouble() - .5; } return new Instance(weights); } /** * @see dist.Distribution#generateMostLikely(shared.Instance) */ public Instance mode(Instance ignored) { return sample(ignored); } /** * @see dist.Distribution#estimate(shared.DataSet) */ public void estimate(DataSet observations) { return; } }