多層パーセプトロンの順方向(フィードフォワード)の計算に関して、 式が添字表記で書かれると全体像が見えづらいし、 ベクトル表記で書かれると各ベクトルやマトリクスの次元はなにか、 列ベクトルなのか行ベクトルなのかわからないので、 展開した形で書き下してみます。
フィードフォワードの添字表記
レイヤー\(l\)のニューロン\(j\)に流入する値の合計\(z^l_j\)は、前の層のニューロンからの出力 \(a_k^{l-1}\)にウェイト\(w_{jk}^l\)を掛けたものを足しあわせたものにバイアス値 \(b_j^l\)を加えたもの:
$$ z^l_j = \sum_k w^l_{jk} a^{l-1}_k + b^l_j $$
それを活性関数\(\sigma\)で活性化された、ニューロンからの出力\(a^l_j\)は:
$$ a^l_j = \sigma(z^l_j) $$
とします。
ただし一番最初の入力層(\(l=1\))の活性値は入力値とします(\(a^1_j = x_j\))。
フィードフォワードのベクトル表記
ベクトル表記で書くと、
$$ \begin{align*} \mathbf{z}^l &= \mathbf{W}^l \mathbf{a}^{l-1} + \mathbf{b}^l \\ \mathbf{a}^l &= \sigma(\mathbf{z}^l) \end{align*} $$
ベクトル\(\mathbf{x}\), \(\mathbf{z}^l\), \(\mathbf{a}^l\), \(\mathbf{b}^l\) はすべて列ベクトル、 ウェイト行列\(\mathbf{W}^l\)は層\(l\)のニューロン\(j\)に対するウェイトを 行ベクトルとして並べたもの。
展開形
マトリクスやベクトルの成分まで明示すると、
$$ \begin{pmatrix}z^l_1 \\ z^l_2 \\ \vdots \\ z^l_J \end{pmatrix} = \begin{bmatrix} w^l_{11} & w^l_{12} & w^l_{13} & \cdots & w^l_{1K} \\ w^l_{21} & w^l_{22} & w^l_{23} & \cdots & w^l_{2K} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ w^l_{J1} & w^l_{J2} & w^l_{J3} & \cdots & w^l_{JK} \end{bmatrix} \begin{pmatrix}a^{l-1}_1 \\ a^{l-1}_2 \\ \vdots \\ a^{l-1}_K \end{pmatrix} + \begin{pmatrix}b^l_1 \\ b^l_2 \\ \vdots \\ b^l_J \end{pmatrix}, $$
$$ \begin{pmatrix}a^l_1 \\ a^l_2 \\ \vdots \\ a^l_J \end{pmatrix} = \begin{pmatrix}\sigma(z^l_1) \\ \sigma(z^l_2) \\ \vdots \\ \sigma(z^l_J) \end{pmatrix} $$
例:3層での計算例
入力層、隠れ層、出力層の3層の場合の計算例を示します。 層ごとのニューロンの数はそれぞれ4, 3, 2とします:
$$ \begin{align*} \mathbf{a}^1 &= \mathbf{x} \\ \\ \mathbf{z}^2 &= \mathbf{W}^2 \mathbf{a}^1 + \mathbf{b}^2 \\ \mathbf{a}^2 &= \sigma(\mathbf{z}^2) \\ \\ \mathbf{z}^3 &= \mathbf{W}^3 \mathbf{a}^2 + \mathbf{b}^3 \\ \mathbf{a}^3 &= \sigma(\mathbf{z}^3) \\ \end{align*} $$
展開して書くと、
$$ \begin{pmatrix}a^1_1 \\ a^1_2 \\ a^1_3 \\ a^1_4 \end{pmatrix} = \begin{pmatrix}x_1 \\ x_2 \\ x_3 \\ x_4 \end{pmatrix} $$
$$ \begin{pmatrix}z^2_1 \\ z^2_2 \\ z^2_3 \end{pmatrix} = \begin{bmatrix} w^2_{11} & w^2_{12} & w^2_{13} & w^2_{14} \\ w^2_{21} & w^2_{22} & w^2_{23} & w^2_{24} \\ w^2_{31} & w^2_{32} & w^2_{33} & w^2_{34} \end{bmatrix} \begin{pmatrix}a^1_1 \\ a^1_2 \\ a^1_3 \\ a^1_4 \end{pmatrix} + \begin{pmatrix}b^2_1 \\ b^2_2 \\ b^2_3 \end{pmatrix}, $$
$$ \begin{pmatrix}a^2_1 \\ a^2_2 \\ a^2_3 \end{pmatrix} = \begin{pmatrix}\sigma(z^2_1) \\ \sigma(z^2_2) \\ \sigma(z^l_3) \end{pmatrix} $$
$$ \begin{pmatrix}z^3_1 \\ z^3_2 \end{pmatrix} = \begin{bmatrix} w^3_{11} & w^3_{12} & w^3_{13} \\ w^3_{21} & w^3_{22} & w^3_{23} \\ \end{bmatrix} \begin{pmatrix}a^2_1 \\ a^2_2 \\ a^2_3 \end{pmatrix} + \begin{pmatrix}b^3_1 \\ b^3_2 \end{pmatrix}, $$
$$ \begin{pmatrix}a^3_1 \\ a^3_2 \end{pmatrix} = \begin{pmatrix}\sigma(z^3_1) \\ \sigma(z^3_2) \end{pmatrix} $$