Advertisement
nocturnalmk

perceptron.nor

Mar 29th, 2014
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.75 KB | None | 0 0
  1. package perceptron.nor;
  2.  
  3. import java.util.Arrays;
  4.  
  5. public class Main {
  6.  
  7.     public static void main(String[] args) {
  8.         double threshold = 1;
  9.         double learningRate = 0.1;
  10.         double[] weights = {0.0, 0.0, 0.0};
  11.  
  12.         int[][][] trainingData = {
  13.                 {{1, 0, 0}, {1}},
  14.                 {{1, 0, 1}, {0}},
  15.                 {{1, 1, 0}, {0}},
  16.                 {{1, 1, 1}, {0}},
  17.         };
  18.  
  19.         while (true) {
  20.             int errorCount = 0;
  21.  
  22.             for (int i=0; i < trainingData.length; i++) {
  23.                 System.out.println("Starting weights: " + Arrays.toString(weights));
  24.  
  25.                 double weightedSum = 0;
  26.  
  27.                 for (int ii=0; ii < trainingData[i][0].length; ii++) {
  28.                     weightedSum += trainingData[i][0][ii] * weights[ii];
  29.                 }
  30.  
  31.                 int output = 0;
  32.  
  33.                 if (threshold <= weightedSum) {
  34.                     output = 1;
  35.                 }
  36.  
  37.                 System.out.println("Target output: " + trainingData[i][1][0] + ", "
  38.                                  + "Actual output: " + output);
  39.  
  40.                 int error = trainingData[i][1][0] - output;
  41.  
  42.                 if (error != 0) {
  43.                     errorCount++;
  44.                 }
  45.  
  46.                 for (int ii=0; ii < trainingData[i][0].length; ii++) {
  47.                     weights[ii] += learningRate * error * trainingData[i][0][ii];
  48.                 }
  49.  
  50.                 System.out.println("New weights: " + Arrays.toString(weights));
  51.                 System.out.println();
  52.  
  53.             }
  54.  
  55.             if (errorCount == 0) {
  56.                 System.out.println("Final weights: " + Arrays.toString(weights));
  57.                 System.exit(0);
  58.             }
  59.         }
  60.  
  61.  
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement