PyBrain - Travailler avec des réseaux Feed-Forward

Un réseau à anticipation est un réseau neuronal, où les informations entre les nœuds se déplacent vers l'avant et ne voyageront jamais vers l'arrière. Le réseau Feed Forward est le premier et le plus simple parmi les réseaux disponibles dans le réseau de neurones artificiels. Les informations sont transmises à partir des nœuds d'entrée, à côté des nœuds masqués et plus tard au nœud de sortie.

Dans ce chapitre, nous allons discuter de la façon de -

  • Créer des réseaux Feed-Forward
  • Ajouter une connexion et des modules à FFN

Créer un réseau Feed Forward

Vous pouvez utiliser l'IDE python de votre choix, c'est-à-dire PyCharm. En cela, nous utilisons Visual Studio Code pour écrire le code et l'exécuterons dans le terminal.

Pour créer un réseau feedforward, nous devons l'importer depuis pybrain.structure comme indiqué ci-dessous -

ffn.py

from pybrain.structure import FeedForwardNetwork
network = FeedForwardNetwork()
print(network)

Exécutez ffn.py comme indiqué ci-dessous -

C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-0
Modules:
[]
Connections:
[]

Nous n'avons ajouté aucun module ni aucune connexion au réseau feedforward. Par conséquent, le réseau affiche des tableaux vides pour les modules et les connexions.

Ajout de modules et de connexions

Nous allons d'abord créer des couches d'entrée, cachées et de sortie et ajouter la même chose aux modules comme indiqué ci-dessous -

ffy.py

from pybrain.structure import FeedForwardNetwork
from pybrain.structure import LinearLayer, SigmoidLayer
network = FeedForwardNetwork()

#creating layer for input => 2 , hidden=> 3 and output=>1
inputLayer = LinearLayer(2)
hiddenLayer = SigmoidLayer(3)
outputLayer = LinearLayer(1)

#adding the layer to feedforward network
network.addInputModule(inputLayer)
network.addModule(hiddenLayer)
network.addOutputModule(outputLayer)

print(network)

Production

C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-3
Modules:
[]
Connections:
[]

Nous obtenons toujours les modules et les connexions vides. Nous devons fournir une connexion aux modules créés comme indiqué ci-dessous -

Voici le code où nous avons créé une connexion entre les couches d'entrée, cachées et de sortie et ajoutons la connexion au réseau.

ffy.py

from pybrain.structure import FeedForwardNetwork
from pybrain.structure import LinearLayer, SigmoidLayer
from pybrain.structure import FullConnection
network = FeedForwardNetwork()

#creating layer for input => 2 , hidden=> 3 and output=>1
inputLayer = LinearLayer(2)
hiddenLayer = SigmoidLayer(3)
outputLayer = LinearLayer(1)

#adding the layer to feedforward network
network.addInputModule(inputLayer)
network.addModule(hiddenLayer)
network.addOutputModule(outputLayer)

#Create connection between input ,hidden and output
input_to_hidden = FullConnection(inputLayer, hiddenLayer)
hidden_to_output = FullConnection(hiddenLayer, outputLayer)

#add connection to the network
network.addConnection(input_to_hidden)
network.addConnection(hidden_to_output)

print(network)

Production

C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-3
Modules:
[]
Connections:
[]

Nous ne sommes toujours pas en mesure d'obtenir les modules et les connexions. Ajoutons maintenant l'étape finale, c'est-à-dire que nous devons ajouter la méthode sortModules () comme indiqué ci-dessous -

ffy.py

from pybrain.structure import FeedForwardNetwork
from pybrain.structure import LinearLayer, SigmoidLayer
from pybrain.structure import FullConnection
network = FeedForwardNetwork()

#creating layer for input => 2 , hidden=> 3 and output=>1
inputLayer = LinearLayer(2)
hiddenLayer = SigmoidLayer(3)
outputLayer = LinearLayer(1)

#adding the layer to feedforward network
network.addInputModule(inputLayer)
network.addModule(hiddenLayer)
network.addOutputModule(outputLayer)

#Create connection between input ,hidden and output
input_to_hidden = FullConnection(inputLayer, hiddenLayer)
hidden_to_output = FullConnection(hiddenLayer, outputLayer)

#add connection to the network
network.addConnection(input_to_hidden)
network.addConnection(hidden_to_output)
network.sortModules()

print(network)

Production

C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-6
Modules:
[<LinearLayer 'LinearLayer-3'gt;, <SigmoidLayer 'SigmoidLayer-7'>, 
   <LinearLayer 'LinearLayer-8'>]
Connections:
[<FullConnection 'FullConnection-4': 'SigmoidLayer-7' -> 'LinearLayer-8'>, 
   <FullConnection 'FullConnection-5': 'LinearLayer-3' -> 'SigmoidLayer-7'>]

Nous sommes maintenant en mesure de voir les modules et les détails des connexions pour feedforwardnetwork.