Étudiez le Deep Learning à partir de zéro en Java.

※Mise en garde Cet article est de bas niveau car il y a de nombreux éléments autosuffisants que j'écris pour moi-même qui commencent tout juste à lire ce livre Le contenu peut être incorrect ou le code peut être étrange. De plus, je n'explique pas grand chose sur les termes, donc je pense que cela n'a aucun sens pour les personnes qui ne connaissent pas l'apprentissage automatique. Je mettrai à jour cet article progressivement.

(Monocouche) Implémentation de Perceptron

Perceptron: Un type d'algorithme. L'algorithme qui était à la base du réseau neuronal. Une fonction d'étape est utilisée comme fonction d'activation. Avec une seule couche, seule une région linéaire peut être exprimée.

** Exprimez AND, OR et NAND en transmettant le biais et le poids de chaque signal d'entrée au constructeur. ** **

public class PerceptronSample {

    private double b, w1, w2;

    PerceptronSample(double b, double w1, double w2){
        this.b = b;
        this.w1 = w1;
        this.w2 = w2;
    }

    int perceptron(int x1, int x2){
       double tmp = (x1*w1 + x2*w2) + b; //Somme
        return tmp > 0 ? 1: 0;
    }




    public static void main(String[] args) {

        PerceptronSample perceptronSample = new PerceptronSample(-0.5, 0.3, 0.3); 
        //biais,Entrée 1,Entrée 2
        //Cette fois et circuit


        System.out.println("" +
                perceptronSample.perceptron(0, 0) +
                perceptronSample.perceptron(1, 0) +
                perceptronSample.perceptron(0, 1) +
                perceptronSample.perceptron(1, 1)
        );

    }

}

Le résultat est 0001.

Express XOR avec un perceptron multicouche.

Une couche plus profonde de Perceptron. Il peut résoudre des problèmes qui ne peuvent être résolus par un perceptron monocouche.

XOR est exprimé par NAND, OR et AND.

public class MultilayerPerceptronSample {

    private double b, w1, w2;

    MultilayerPerceptronSample(double b, double w1, double w2){
        this.b = b;
        this.w1 = w1;
        this.w2 = w2;
    }

    int perceptron(int x1, int x2, MultilayerPerceptronSample m1, MultilayerPerceptronSample m2){

        if (m1 != null && m2 != null){
            int x[] = {x1, x2};
            x1 = m1.perceptron(x[0], x[1], null, null);
            x2 = m2.perceptron(x[0], x[1], null, null);
            double tmp = (x1*w1 + x2*w2) + b;
            return tmp > 0.0 ? 1 : 0;
        }else {
        double tmp = (x1*w1 + x2*w2) + b; //Somme

        return tmp > 0.0 ? 1 : 0;
        }
    }






    public static void main(String[] args) {

        MultilayerPerceptronSample AND = new MultilayerPerceptronSample(-0.5, 0.3, 0.3);
        MultilayerPerceptronSample NAND = new MultilayerPerceptronSample(0.5, -0.3, -0.3);
        MultilayerPerceptronSample OR = new MultilayerPerceptronSample(-0.3, 0.5, 0.5);




        System.out.println(" " +
                AND.perceptron(0, 0, NAND, OR)+
                AND.perceptron(1, 0, NAND, OR)+
                AND.perceptron(0, 1, NAND, OR)+
                AND.perceptron(1, 1, NAND, OR)


        );


    }

}

Recommended Posts

Étudiez le Deep Learning à partir de zéro en Java.
[Deep Learning from scratch] dans Java 3. Réseau neuronal
Deep Learning Java from scratch 6.4 Régularisation
Deep Learning Java à partir de zéro Chapitre 1 Introduction
Deep Learning Java from scratch 6.1 Mise à jour des paramètres
Deep Learning Java à partir de zéro Chapitre 2 Perceptron
Deep Learning Java from scratch 6.3 Normalisation par lots
Deep Learning from scratch Java Chapter 4 Apprentissage des réseaux de neurones
Deep Learning Java à partir de zéro Chapitre 3 Réseau neuronal
Deep Learning Java from scratch 6.2 Valeur initiale du poids
[Deep Learning from scratch] en Java 1. Pour le moment, différenciation et différenciation partielle
Deep Learning Java from scratch Chapter 5 Méthode de propagation de retour d'erreur
Premiers pas pour l'apprentissage profond en Java
Configuration PC la plus rapide pour un apprentissage en profondeur à partir de zéro
La vie Java à partir de zéro
Collecte de copies approfondies en Java
Enfant orienté objet!? J'ai essayé le Deep Learning avec Java (édition d'essai)
Apprendre Java (0)
Java scratch scratch
Voyons la Deep Java Library (DJL), une bibliothèque capable de gérer Deep Learning en Java, publiée par AWS.
Appel de méthodes Java à partir de JavaScript exécutées en Java
OCR en Java (reconnaissance de caractères à partir d'images)
Inverser la clé de la valeur dans la carte Java
Obtenir l'historique du serveur Zabbix en Java
GetInstance () à partir d'une classe @Singleton dans Groovy à partir de Java
Étudions Java
9 meilleurs sites pour apprendre Java par auto-apprentissage
Pour l'apprentissage JAVA (2018-03-16-01)
Découvrez comment HashMap fonctionne en Java
Jour d'apprentissage Java 5
Partition en Java
Appel de méthode Java depuis RPG (appel de méthode dans sa propre classe)
L'histoire de l'apprentissage de Java dans la première programmation
Changements dans Java 11
Janken à Java
Comment obtenir une classe depuis Element en Java
Extraction de texte en Java à partir de PDF avec pdfbox-2.0.8
Capture et sauvegarde de l'installation de sélénium en Java
Obtenez unixtime (secondes) de ZonedDateTime dans Scala / Java
[Java] Notes d'étude
Étudier Java 8 (répétable)
Mémorandum d'étude Java
Taux circonférentiel à Java
Étudier Java Silver 1
Générer OffsetDateTime à partir de Clock et LocalDateTime en Java
FizzBuzz en Java
[Java] Obtenir KFunction à partir de la méthode / du constructeur en Java [Kotlin]
java learning day 2
java learning day 1
Essayez d'appeler des méthodes synchronisées à partir de plusieurs threads en Java
Créer un environnement VS Code + WSL + Java + Gradle à partir de zéro
Tout supprimer du SDK Java dans Azure CosmosDB
[Mémo personnel] Créez une copie complète simple avec Java
[Note] Créez un environnement Java à partir de zéro avec docker
Soustraire les constantes Enum des chaînes et des valeurs en Java
Appeler un programme écrit en Swift depuis Processing (Java)
Apprentissage rapide de Java "Introduction?" Partie 3 Parler de programmation
Lire JSON en Java