ニューラルネットワーク
このパートでは、ニューラルネットワークの原理を研究し、2層のニューラルネットワークを作成します。
ニューラルネットワークは、相互接続されたニューロンで構成されています。
前のパートでニューロンについてもっと書きました。
ニューラルネットワークは次の層に分かれています。
入力レイヤー
隠しレイヤー
出力層
非表示レイヤーは入力と出力の間のレイヤーであり、非表示レイヤーの数は任意です。
入力層と出力層の2層のニューラルネットワークを作成します。
まず、ニューラルネットワークの原理を見てみましょう。
私が言ったように、ニューラルネットワークは層に分かれています。各層には多数のニューロンが含まれています。レイヤー内のすべてのニューロンの出力は、次のレイヤー内のすべてのニューロンの入力に送信されます。
入力に2つのニューロン、非表示に3つ、出力に1つある3層のニューラルネットワーク図は次のようになります。
レイヤー間のこの接続は、フィードフォワードと呼ばれます。
その結果、3つの層と6つのニューロンが得られました。
大規模なプロジェクトの場合、これはそれほど多くはありませんが、学習しているだけなので、2つの入力ニューロンと1つの出力を持つ2層のニューラルネットワークを作成します。
ニューラルネットワークのスキーム
NeuronNet.pyファイルを作成しましょう
最後の部分で書いたニューロンクラスを接続しましょう:
from Neuron import *
NeuronNetクラスとそのコンストラクターをファイルで説明しましょう。
class NeuronNet:
def __init__(self):
self.n = []
for i in range(3):
self.n.append(Neuron(2))
サイズが3ニューロンのNeuronクラスのオブジェクトの配列は、クラスコンストラクターで作成されます。すべてのニューロンに2つの入力があるため、パラメーターのニューロンに数値2を渡します。
, 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
. .
まとめましょう。
今日は私達:
ニューラルネットワークの原理を学びました
ニューラルネットワークにおけるニューロン通信の原理を学びました
NeuronNetクラスをPythonプログラミング言語で作成しました
最初のニューラルネットワークを立ち上げました
次のパートでは、ニューラルネットワークのトレーニングを実装します。
記事を読んだ後に質問がある場合は、コメントで質問してください。