Deep Learning Java von Grund auf neu Kapitel 2 Perceptron

Inhaltsverzeichnis

2.3 Implementierung von Perceptron

2.3.1 Einfache Implementierung

Perceptron kann als Funktion implementiert werden (statische Methode).

public static int AND(int x1, int x2) {
    double w1 = 0.5, w2 = 0.5, theta = 0.7;
    double tmp = x1 * w1 + x2 * w2;
    if (tmp <= theta)
        return 0;
    else
        return 1;
}
assertEquals(0, AND(0, 0));
assertEquals(0, AND(1, 0));
assertEquals(0, AND(0, 1));
assertEquals(1, AND(1, 1));

2.3.2 Einführung von Gewichten und Vorurteilen

Mit ND4J wird es wie folgt.

INDArray x = Nd4j.create(new double[] {0, 1});
INDArray w = Nd4j.create(new double[] {0.5, 0.5});
double b = -0.7;
assertEquals("[0.00,0.50]", Util.string(w.mul(x)));
assertEquals(0.5, w.mul(x).sumNumber().doubleValue(), 0.000005);
assertEquals(-0.19999999999999996, w.mul(x).sumNumber().doubleValue() + b, 0.000005);

2.3.3 Umsetzung nach Gewicht und Voreingenommenheit

Unter Verwendung der "Gewichts- und Vorspannungsmethode" können UND-, NDND- und ODER-Gatter wie folgt implementiert werden.

public static int AND2(int x1, int x2) {
    INDArray x = Nd4j.create(new double[] {x1, x2});
    INDArray w = Nd4j.create(new double[] {0.5, 0.5});
    double b = -0.7;
    double tmp = w.mul(x).sumNumber().doubleValue() + b;
    return tmp <= 0 ? 0 : 1;
}

public static int NAND(int x1, int x2) {
    INDArray x = Nd4j.create(new double[] {x1, x2});
    INDArray w = Nd4j.create(new double[] {-0.5, -0.5});
    double b = 0.7;
    double tmp = w.mul(x).sumNumber().doubleValue() + b;
    return tmp <= 0 ? 0 : 1;
}

public static int OR(int x1, int x2) {
    INDArray x = Nd4j.create(new double [] {x1, x2});
    INDArray w = Nd4j.create(new double[] {0.5, 0.5});
    double b = -0.2;
    double tmp = w.mul(x).sumNumber().doubleValue() + b;
    return tmp <= 0 ? 0 : 1;
}
assertEquals(0, AND2(0, 0));
assertEquals(0, AND2(1, 0));
assertEquals(0, AND2(0, 1));
assertEquals(1, AND2(1, 1));
assertEquals(1, NAND(0, 0));
assertEquals(1, NAND(1, 0));
assertEquals(1, NAND(0, 1));
assertEquals(0, NAND(1, 1));
assertEquals(0, OR(0, 0));
assertEquals(1, OR(1, 0));
assertEquals(1, OR(0, 1));
assertEquals(1, OR(1, 1));

2.5 Mehrschichtiges Perceptron

2.5.2 XOR-Gate-Implementierung

XOR-Gates können mithilfe mehrerer Perceptron-Schichten montiert werden.

public static int XOR(int x1, int x2) {
    int s1 = NAND(x1, x2);
    int s2 = OR(x1, x2);
    int y = AND2(s1, s2);
    return y;
}
assertEquals(0, XOR(0, 0));
assertEquals(1, XOR(1, 0));
assertEquals(1, XOR(0, 1));
assertEquals(0, XOR(1, 1));

Recommended Posts

Deep Learning Java von Grund auf neu Kapitel 2 Perceptron
Deep Learning Java von Grund auf neu Kapitel 1 Einführung
Deep Learning von Grund auf neu Java Kapitel 4 Lernen neuronaler Netze
Deep Learning Java von Grund auf neu Kapitel 3 Neuronales Netzwerk
Lernen Sie Deep Learning von Grund auf in Java.
Deep Learning Java von Grund auf 6.1 Parameteraktualisierung
Deep Learning Java von Grund auf 6.3 Batch-Normalisierung
Deep Learning Java von Grund auf neu Kapitel 5 Methode zur Fehlerrückübertragung
[Deep Learning von Grund auf neu] in Java 3. Neuronales Netzwerk
Deep Learning Java von Grund auf 6.2 Anfangswert des Gewichts
Schnellstes PC-Setup für tiefes Lernen von Grund auf
[Deep Learning von Grund auf neu] 2. In Java gibt es kein NumPy.
Java-Leben von vorne anfangen
[Deep Learning von Grund auf neu] in Java 1. Zur Zeit Differenzierung und teilweise Differenzierung
Java Scratch Scratch
Erste Schritte für tiefes Lernen in Java
Effektives Java Kapitel 2
Für JAVA-Lernen (2018-03-16-01)
Java-Lerntag 5
Effektives Java Kapitel 6 34-35
Effektives Java Kapitel 4 15-22
Effektives Java Kapitel 3
Java-Lerntag 2
Java-Lerntag 1
Erstellen Sie die VS Code + WSL + Java + Gradle-Umgebung von Grund auf neu
[Hinweis] Erstellen Sie mit Docker eine Java-Umgebung von Grund auf neu
Schnell lernen Java "Einführung?" Teil 3 Von der Programmierung wegreden
Rufen Sie Java von JRuby aus auf
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Java Learning 2 (Lernen Sie die Berechnungsmethode)
Java-Lernen (bedingter Ausdruck)
Java-Lernnotiz (Methode)
Eval Java-Quelle von Java
Java lernen (1) -Hallo Welt
Rails Tutorial Kapitel 3 Lernen
Greifen Sie über Java auf API.AI zu
Java-Lernnotiz (grundlegend)
Von Java zu Ruby !!
Rails Tutorial Kapitel 4 Lernen
Java-Lernnotiz (Schnittstelle)
Rails Tutorial Kapitel 1 Lernen
Rails Tutorial Kapitel 2 Lernen
Java-Lernnotiz (Vererbung)
Java Performance Kapitel 3 Java Performance Toolbox
Objektorientiertes Kind !? Ich habe Deep Learning mit Java ausprobiert (Testversion)
Lernen aus den Grundlagen Lehrbuch für künstliche Intelligenz Kapitel 3 Kapitelende Probleme
Lernen aus den Grundlagen Lehrbuch für künstliche Intelligenz Kapitel 4 Kapitelende Probleme
Lernen aus den Grundlagen Lehrbuch für künstliche Intelligenz Kapitel 2 Kapitelende Probleme
Lassen Sie uns auf Deep Java Library (DJL) eingehen, eine von AWS veröffentlichte Bibliothek, die Deep Learning in Java verarbeiten kann.