[PYTHON] Implémentation simple d'un réseau neuronal à l'aide de Chainer

Jusqu'à la dernière fois, j'ai écrit sur les objets de base qui composent Chainer. A partir de ce moment, j'aimerais réellement implémenter un réseau de neurones en utilisant ces objets.

Vue d'ensemble du réseau neuronal

Lors de l'écriture d'un programme qui compose un réseau de neurones, la vue d'ensemble se compose à peu près des cinq suivantes.

  1. Préparation des données

C'est un programme qui prépare les données pour l'entraînement du modèle. Il existe différents types de données telles que des phrases, des images et des sons, mais nous les traitons sous la forme de données adaptées au réseau de neurones à construire.

  1. Description du modèle

Décrivez une classe qui hérite de la classe Chain. Pour plus de détails, consultez ici.

class MyChain(Chain):
    def __init__(self):
        super(MyChain, self).__init__(
Déclaration de fonction contenant des paramètres
        )
    def __call__(self, x, y):
Fonction de perte (erreur)
  1. Paramètres de l'algorithme d'optimisation (SDG, Adam, etc.)

Décrit le processus d'optimisation du modèle (minimisation de l'erreur). Pour plus d'informations, voir ici

model = MyChain()
optimizer = optimizer.Adam()
optimizer.setup(model)
  1. Apprentissage

Apprend le nombre de fois spécifié. En fonction de l'item, il peut être terminé tôt, mais cette fois nous allons simplement spécifier l'époque (nombre d'apprentissages). Il semble que le code de l'initialisation du gradient à la mise à jour des paramètres soit presque promis.

for epoch in range(Nombre de répétitions):
    model.zerograds()           #Initialisation du gradient
    loss = model(train, target) #Calcul d'erreur
    loss.backward()             #Calcul du gradient
    optimizer.update()          #Mise à jour des paramètres
  1. Sortie de résultat

Enregistrez le modèle du résultat de l'entraînement et effectuez le test.

Direction de la prochaine fois

Je ne veux pas regrouper ces informations dans un seul article, donc à partir de la prochaine 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

J'écrirai à ce sujet par petites parties. Jusqu'à ici pour cette fois

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 simple d'un réseau neuronal à l'aide de Chainer
Implémentation de réseaux neuronaux "flous" avec Chainer
Implémentation de réseau neuronal simple à l'aide de la préparation Chainer-Data-
Implémentation de réseau neuronal simple à l'aide de la description du modèle Chainer-
Théorie et implémentation simples des réseaux neuronaux
Apprentissage des classements à l'aide d'un réseau neuronal (implémentation RankNet par Chainer)
Réseau de neurones commençant par Chainer
Implémentation de réseau neuronal en python
Implémentation de réseau neuronal (NumPy uniquement)
Mise en œuvre de l'optimisation bayésienne des hyper paramètres du réseau de neurones (Chainer + GPyOpt)
Implémentation d'un réseau de neurones convolutifs utilisant uniquement Numpy
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
Prédiction des survivants à l'aide du réseau neuronal titanesque de Kaggle [80,8%]
Implémentation d'un réseau neuronal à 3 couches (pas d'apprentissage)
Implémentation d'un système de dialogue utilisant Chainer [seq2seq]
Essayez d'utiliser TensorFlow-Part 2-Convolution Neural Network (MNIST)
[Chainer] Classification des documents par réseau de neurones convolutifs
Réseau neuronal paramétrique
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
Estimation de l'auteur à l'aide du réseau neuronal et de Doc2Vec (Aozora Bunko)
Présentation de DNC (Differentiable Neural Computers) + Implémentation par Chainer
Implémenter un réseau neuronal convolutif
Modèle utilisant un réseau neuronal convolutif dans le traitement du langage naturel
Implémenter le réseau neuronal à partir de zéro
Implémentez un réseau de neurones feedforward dans Chainer pour classer les documents
Expérience de réseau de neurones pliable
Mise en œuvre de l'apprentissage en série de Chainer à l'aide de mini-lots de longueur variable
Précautions lors de l'utilisation de Chainer
Essayez de créer un réseau de neurones en Python sans utiliser de bibliothèque
Implémenter un réseau neuronal à 3 couches
Implémentation de TF-IDF à l'aide de gensim
Réseau de neurones avec Python (scikit-learn)
3. Distribution normale avec un réseau neuronal!
# 1 [python3] Calcul simple à l'aide de variables
Tutoriel sur le réseau neuronal (CNN) de Pytorch 1.3.1.
4. Entourez les paramètres avec un réseau neuronal!
Tutoriel TensorFlow - Réseau neuronal à convolution (traduction)