PyBrain: trabajo con redes de alimentación hacia adelante

Una red de retroalimentación es una red neuronal, donde la información entre los nodos se mueve en la dirección de avance y nunca viajará hacia atrás. La red Feed Forward es la primera y la más simple entre las redes disponibles en la red neuronal artificial. La información se pasa desde los nodos de entrada, junto a los nodos ocultos y luego al nodo de salida.

En este capítulo vamos a discutir cómo:

  • Crear redes de retroalimentación
  • Agregar conexión y módulos a FFN

Creación de una red de retroalimentación

Puede usar el IDE de Python de su elección, es decir, PyCharm. En esto, estamos usando Visual Studio Code para escribir el código y ejecutaremos el mismo en la terminal.

Para crear una red feedforward, necesitamos importarla desde pybrain.structure como se muestra a continuación -

ffn.py

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

Ejecute ffn.py como se muestra a continuación -

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

No hemos agregado ningún módulo ni conexión a la red feedforward. Por lo tanto, la red muestra matrices vacías para módulos y conexiones.

Agregar módulos y conexiones

Primero crearemos capas de entrada, ocultas y de salida y agregaremos las mismas a los módulos como se muestra a continuación:

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)

Salida

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

Todavía estamos obteniendo los módulos y las conexiones vacías. Necesitamos proporcionar una conexión a los módulos creados como se muestra a continuación:

Aquí está el código donde hemos creado una conexión entre las capas de entrada, oculta y de salida y agregamos la conexión a la red.

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)

Salida

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

Todavía no podemos obtener los módulos y las conexiones. Ahora agreguemos el paso final, es decir, necesitamos agregar el método sortModules () como se muestra a continuación:

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)

Salida

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'>]

Ahora podemos ver los módulos y los detalles de las conexiones para la red feedforward.