Advertisement
maxrafiandy

Untitled

May 24th, 2014
472
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.92 KB | None | 0 0
  1. import com.neuralnetwork.Backpropagation;
  2. import com.neuralnetwork.Layer;
  3. import java.util.Random;
  4.  
  5. /************************
  6.  * @author Max Rafiandy *
  7.  ************************/
  8. public class Main {
  9.  
  10.     public static void main(String[] args) {
  11.         final Random random = new Random();
  12.         double[][] learning_x = { {0, 0}, {0, 1}, {0, 1}, {1, 0} };
  13.         double[][] target_out = { {0}, {0}, {0}, {1} };
  14.        
  15.         Layer input_layer = new Layer(learning_x[0].length, Layer.INPUT);
  16.         Layer hidden_layer = new Layer(learning_x[0].length
  17.                 + target_out[0].length, Layer.HIDDEN);
  18.         Layer output_layer = new Layer(target_out[0].length, Layer.OUTPUT);
  19.        
  20.         for(int j=0; j<hidden_layer.neuron.length; j++) {
  21.             hidden_layer.bias[j] = random.nextDouble();
  22.             hidden_layer.weight = new double[input_layer.neuron.length]
  23.                     [hidden_layer.neuron.length];
  24.             for (int i=0; i<input_layer.neuron.length; i++) {
  25.                 hidden_layer.weight[i][j] = random.nextDouble();
  26.             }
  27.         }
  28.        
  29.         for(int k=0; k<output_layer.neuron.length; k++) {
  30.             output_layer.bias[k] = random.nextDouble();
  31.             output_layer.weight = new double[hidden_layer.neuron.length]
  32.                     [output_layer.neuron.length];
  33.             for (int j=0; j<hidden_layer.neuron.length; j++) {
  34.                 output_layer.weight[j][k] = random.nextDouble();
  35.             }
  36.         }
  37.        
  38.         while (true) {
  39.             double mse = 0;
  40.             for (int i=0; i<learning_x.length; i++) {
  41.                 input_layer.neuron = learning_x[i];
  42.                 mse += Backpropagation.learning(input_layer, hidden_layer,
  43.                         output_layer, target_out[i], 0.5);
  44.             }
  45.             System.out.println("Updating Error: " + 0.5*mse);
  46.             if (0.5 * mse < 1e-5) break;
  47.         }
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement