Réseaux de neurones artificiels. Partie 2

Réseau neuronal

Dans cette partie, nous étudierons les principes des réseaux de neurones et écrirons un réseau de neurones à 2 couches.





Les réseaux neuronaux sont constitués de neurones interconnectés.





J'ai écrit plus sur les neurones dans la partie précédente.





Les réseaux de neurones sont divisés en couches:





  1. Couche d'entrée





  2. Calques cachés





  3. Couche de sortie





Les couches cachées sont des couches entre l'entrée et la sortie, le nombre de couches cachées peut être quelconque.





Nous écrirons un réseau neuronal de 2 couches, des couches d'entrée et de sortie.





Examinons d'abord les principes des réseaux de neurones.





Comme je l'ai dit, les réseaux de neurones sont divisés en couches. Chaque couche contient un certain nombre de neurones. Les sorties de tous les neurones d'une couche sont envoyées aux entrées de tous les neurones de la couche suivante.





Un diagramme de réseau neuronal de 3 couches avec 2 neurones à l'entrée, 3 cachés, 1 sortie ressemblera à ceci





Cette connexion entre les couches est appelée feedforward.





En conséquence, nous avons 3 couches et 6 neurones.





Pour les grands projets, ce n'est pas beaucoup, mais comme nous ne faisons qu'apprendre, nous allons écrire un réseau neuronal de 2 couches avec 2 neurones d'entrée et 1 sortie.





Schéma de notre réseau neuronal





Créons le fichier NeuronNet.py





Connectons la classe de neurones que nous avons écrite dans la dernière partie:





from Neuron import *
      
      



Décrivons la classe NeuronNet et son constructeur dans le fichier:





class NeuronNet:

    def __init__(self):
    
        self.n = []
        
        for i in range(3):
            self.n.append(Neuron(2))
      
      



Un tableau d'objets de la classe Neuron de 3 neurones en taille est créé dans le constructeur de classe. Nous passons le numéro 2 au neurone dans les paramètres, car il y aura 2 entrées pour tous les neurones.





, 3 1 2 , 1 2 :





def activate(self, inputs):
    return self.n[2].activate(np.array([self.n[0].activate(inputs), self.n[1].activate(inputs)]))
      
      



NeuronNet. NeuronNet.py.





NeuronNet.py:





from Neuron import *

class NeuronNet:
    def __init__(self):

        self.n = []

        for i in range(3):
            self.n.append(Neuron(2))

    def activate(self, inputs):
        return self.n[2].activate(np.array([self.n[0].activate(inputs), self.n[1].activate(inputs)]))
      
      



main.py, .





main.py numpy NeuronNet.py:





import numpy as np
from NeuronNet import *
      
      



:





net = NeuronNet()
      
      



:





x = np.array([1, 2])

print(net.activate(x))
      
      



:





import numpy as np

from NeuronNet import *

net = NeuronNet()

x = np.array([1, 2])

print(net.activate(x))
      
      



. :





python main.py
      
      











. .





Résumons.





Aujourd'hui nous:





  1. Apprentissage des principes des réseaux de neurones





  2. Apprentissage des principes de la communication neuronale dans les réseaux neuronaux





  3. Nous avons écrit la classe NeuronNet dans le langage de programmation python





  4. Nous avons lancé notre premier réseau de neurones





Dans la partie suivante, nous mettrons en œuvre la formation de notre réseau de neurones.





Si vous avez des questions après avoir lu l'article, posez-les dans les commentaires.








All Articles