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:
Couche d'entrée
Calques cachés
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:
Apprentissage des principes des réseaux de neurones
Apprentissage des principes de la communication neuronale dans les réseaux neuronaux
Nous avons écrit la classe NeuronNet dans le langage de programmation python
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.