[PYTHON] Implémentation de réseau neuronal simple à l'aide de la description du modèle Chainer-

Depuis la dernière fois, j'écris un article pour créer un réseau de neurones en utilisant Chainer, qui est un cadre d'apprentissage en profondeur. Cette fois

  1. Préparation des données

  2. Description du modèle

  3. Optimisation des paramètres d'algorithme

  4. Apprentissage

  5. Sortie de résultat De

  6. Description du modèle

Je vais écrire sur.

Réseau de neurones à construire

Dernière fois Comme je l'ai écrit, les données Iris utilisées cette fois sont entrées. Il est de 4 dimensions et sa sortie est de 3 dimensions. Si vous pensez très simplement, le réseau peut être construit comme le montre la figure ci-dessous.

Irisのネットワーク_1.png

Cependant, ce qui devrait être construit est un réseau de neurones avec une couche intermédiaire. Une couche est requise entre l'entrée et la sortie. Simplifiez le cas et ajoutez une couche intermédiaire. Le nombre de nœuds est de six.

Ensuite, le réseau sera comme indiqué dans la figure ci-dessous. Irisニューラルネットワーク_2.png

Cependant, comme je l'ai écrit dans About Chainer's basic objects ~ links ~, le mappage de la couche l à la couche l + 1 est

y = wx + b

Il est exprimé par le linéaire. En d'autres termes, la polarisation b est requise pour chacune de la couche d'entrée et de la couche intermédiaire. Le chiffre qui prend cela en considération est le suivant.

Irisニューラルネットワーク_3.png

Modèle Iris

Maintenant, exprimons le modèle de réseau neuronal d'Iris en utilisant un objet Chain.

class IrisChain(Chain):
    def __init__():
        super(IrisChain, self).__init__(
             l1 = L.Linear(4, 6),
             l2 = L.Linear(6, 3),
    )

    def __call__(self, x, y):
        return F.mean_squared_error(self.fwd(x), y)

    def fwd(self, x):
        h1 = F.sigmoid(self.l1(x))
        h2 = self.l2(h1)
        return h2

Pour une explication détaillée, reportez-vous à l'article ici. Couche d'entrée: 4 Couche intermédiaire: 6 Couche de sortie: 3 Alors 4 → 6

l1 = L.Linear(4, 6)

6 → 3

l2 = L.Linear(6, 4)

Il est exprimé comme.

C'est tout pour cette fois. La prochaine fois, j'écrirai sur l'optimisation pour trouver la valeur minimale de l'erreur obtenue par ce modèle.

référence

Takayoshi Yamashita Apprentissage profond du Kodansha visible sur l'illustration Hiroyuki Shinno Apprentissage en profondeur pratique avec Chainer-Comment implémenter des NN-Ohm complexes

Recommended Posts

Implémentation de réseau neuronal simple à l'aide de la description du modèle Chainer-
Implémentation simple d'un réseau neuronal à l'aide de Chainer
Implémentation de réseau neuronal simple à l'aide de la préparation Chainer-Data-
Implémentation simple d'un réseau de neurones à l'aide de Chainer ~ Définition d'un algorithme d'optimisation ~
Théorie et implémentation simples des réseaux neuronaux
Implémentation de réseaux neuronaux "flous" avec Chainer
Implémentation de réseau neuronal en python
Implémentation d'un réseau de neurones convolutifs utilisant uniquement Numpy
Implémentation de réseau neuronal (NumPy uniquement)
Apprentissage des classements à l'aide d'un réseau neuronal (implémentation RankNet par Chainer)
Implémentation d'un réseau de neurones à deux couches 2
PRML Chapitre 5 Implémentation Python du réseau neuronal
Modèle de classification simple avec réseau neuronal
Essayez d'utiliser TensorFlow-Part 2-Convolution Neural Network (MNIST)
Apprentissage par renforcement 10 Essayez d'utiliser un réseau neuronal formé.
Une autre méthode de conversion de style utilisant le réseau neuronal convolutif
Réseau neuronal paramétrique
Estimation de l'auteur à l'aide du réseau neuronal et de Doc2Vec (Aozora Bunko)
Modèle utilisant un réseau neuronal convolutif dans le traitement du langage naturel
Mise en œuvre de l'optimisation bayésienne des hyper paramètres du réseau de neurones (Chainer + GPyOpt)
Implémenter un réseau neuronal convolutif
Implémenter le réseau neuronal à partir de zéro
Expérience de réseau de neurones pliable
Essayez de créer un réseau de neurones en Python sans utiliser de bibliothèque