Neural Networkシーケンス伝搬マトリクス乗算と配置処理


純伝播時のNumpy行列積


def sigmoid(x):
    return 1/(1+np.exp(-x))
X = np.array([1, 2])
W = np.array([[0.1, 0.2], [0.3, 0.4]])
B = np.array([0.1, 0.2])
Z = sigmoid(np.dot(X, W) + B)
print(Z)
[0.68997448 0.76852478]

バッチ処理


Sikittrunのirisデータは全部で4つの特徴数があり,ターゲットは3つのクラスである.
第1層が50個の隠層であり、第2層が100個の隠層のニューラルネットワークモデルである場合、1つのデータに対してニューラルネットワークが配列する現象は、
               X      W1      W2      W3    ->    Y
                 
               4     4X50   50X100   100X3        3
しかしirisデータの総数は150個であるため,これらのデータを1つずつ計算するのに長い時間がかかる.この計算時間を短縮する方法で、バッチを使用します.
              X      W1      W2      W3    ->    Y
              
            150X4   4X50   50X100   100X3      150X3
これにより150 X 3のマトリクスに出力される.このような一刀切の入力データをバッチと呼ぶ.