テキストP55の図4-4-01に書いてあるニューラルネットワークの計算をPythonでやってみる。まず、入力層のデータ「2, 3, 1」をNumpy配列で定義する。
import numpy as np x = np.array([2, 3, 1])
リスト1.入力層のデータx
次に、ノード11の重み「3, 1, 2」とバイアス「1」を定義する。
w11 = np.array([3, 1, 2]) b11 = 1
リスト2.ノード11の重みとバイアス
同様に、ノード12の重み「-2, -3, -1」とバイアス「3」を定義する。
w12 = np.array([-2, -3, -1]) b12 = 3
リスト3.ノード12の重みとバイアス
テキストP56の図4-4-02に書いてある「重みと入力値の積和+バイアス」の計算は次のようになる。
u11 = sum(w11 * x) + b11 u12 = sum(w12 * x) + b12
リスト4.「重みと入力値の積和+バイアス」の計算
活性化関数「ReLU」は関数として以下のように定義する。
def ReLU(u): return u if u > 0 else 0
リスト5.活性化関数「ReLU」
これを使って、テキストP57の図4-4-03に書いてあるノード11とノード12の最終的な出力値は次のようになる。
z11 = ReLU(u11) z12 = ReLU(u12) z = np.array([z11, z12])
リスト6.ノード11とノード12の最終的な出力値
最後に、テキストP58の図4-4-04に書いてある出力値に得られた結果は次のように計算する。
w21 = np.array([3, 2]) b21 = -2 y = ReLU(sum(w21 * z) + b21)
リスト7.出力値に得られた結果
0 件のコメント:
コメントを投稿