はじめに
Deeplearning学習中
下記のようなニューラルネットワークで一列を一層と捉えた場合、一層移動する毎に何が起こるかをメモ
Blenderの学習も止めないように極力アニメーションを作成
層から層へ前方移動する時に発生する事のイメージ
- b はバイアスで発火しやすさをコントロール
- x1, x2 は入力を表すが途中の層の計算方法と最初の層の計算方法に違いは無い
途中の計算結果等の数値は特に一貫性を意識していない
- ベクトル(右側のノード)と行列を掛ける
- 右側は常にベクトル。左側のノードに行くまでに矢印の数だけ掛け算を行うため ベクトル x 行列 となる
- 数値は適当
- 掛けた結果できたベクトルにバイアスを足す
- 数値は適当
- 数値は適当
- 活性化関数に入れる
- 最後の出力層と中間層の違いは最後の層は活性化関数がない点のみ
- 最後の出力層と中間層の違いは最後の層は活性化関数がない点のみ
ソースコード
コードで書くとこのようになる
X1 = np.array([1, 2]) W1 = np.array([[0.5, 0.7, 0.6],[0.5, 0.4, 0.6]]) B1 = np.array([0.4, 0.7, 0.2]) # 行列積 → バイアス加算 A1 = np.dot(X1, W1) + B1 # 活性化関数 Z1 = f(A1)