Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package perceptron.nor;
- import java.util.Arrays;
- public class Main {
- public static void main(String[] args) {
- double threshold = 1;
- double learningRate = 0.1;
- double[] weights = {0.0, 0.0, 0.0};
- int[][][] trainingData = {
- {{1, 0, 0}, {1}},
- {{1, 0, 1}, {0}},
- {{1, 1, 0}, {0}},
- {{1, 1, 1}, {0}},
- };
- while (true) {
- int errorCount = 0;
- for (int i=0; i < trainingData.length; i++) {
- System.out.println("Starting weights: " + Arrays.toString(weights));
- double weightedSum = 0;
- for (int ii=0; ii < trainingData[i][0].length; ii++) {
- weightedSum += trainingData[i][0][ii] * weights[ii];
- }
- int output = 0;
- if (threshold <= weightedSum) {
- output = 1;
- }
- System.out.println("Target output: " + trainingData[i][1][0] + ", "
- + "Actual output: " + output);
- int error = trainingData[i][1][0] - output;
- if (error != 0) {
- errorCount++;
- }
- for (int ii=0; ii < trainingData[i][0].length; ii++) {
- weights[ii] += learningRate * error * trainingData[i][0][ii];
- }
- System.out.println("New weights: " + Arrays.toString(weights));
- System.out.println();
- }
- if (errorCount == 0) {
- System.out.println("Final weights: " + Arrays.toString(weights));
- System.exit(0);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement