Pybrain-working-with-feed-forward-networks
提供:Dev Guides
PyBrain-フィードフォワードネットワークの使用
フィードフォワードネットワークは、ノード間の情報が順方向に移動し、決して逆方向に移動しないニューラルネットワークです。 フィードフォワードネットワークは、人工ニューラルネットワークで利用可能なネットワークの中で最初で最も単純なネットワークです。 情報は、入力ノードから、非表示ノードの隣に、さらに出力ノードに渡されます。
この章では、次の方法について説明します-
- フィードフォワードネットワークを作成する
- 接続とモジュールをFFNに追加する
フィードフォワードネットワークの作成
選択したpython IDE、つまりPyCharmを使用できます。 これでは、Visual Studio Codeを使用してコードを記述し、ターミナルで同じものを実行します。
フィードフォワードネットワークを作成するには、以下に示すように pybrain.structure からインポートする必要があります-
ffn.py
from pybrain.structure import FeedForwardNetwork
network = FeedForwardNetwork()
print(network)
以下に示すようにffn.pyを実行します-
C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-0
Modules:
[]
Connections:
[]
フィードフォワードネットワークにモジュールと接続を追加していません。 したがって、ネットワークには、モジュールと接続の空の配列が表示されます。
モジュールと接続の追加
まず、入力、非表示、出力の各レイヤーを作成し、以下に示すようにモジュールに追加します-
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)
出力
C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-3
Modules:
[]
Connections:
[]
モジュールと接続は空のままです。 以下に示すように作成されたモジュールへの接続を提供する必要があります-
以下に、入力層、非表示層、出力層の間に接続を作成し、ネットワークに接続を追加するコードを示します。
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)
出力
C:\pybrain\pybrain\src>python ffn.py
FeedForwardNetwork-3
Modules:
[]
Connections:
[]
まだモジュールと接続を取得できません。 ここで最終ステップを追加しましょう。つまり、以下に示すようにsortModules()メソッドを追加する必要があります-
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)
出力
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'>]
これで、feedforwardnetworkのモジュールと接続の詳細を確認できます。