ニューラルネットワークさっぱりわからん

NNよくわからない人による、よくわからないメモ

こんな感じのニューラルネットワークを考えます

入力 x 中間層 y 出力 z

入力と中間層の間の重み w 中間層と出力の重み v

これを行列で表現すると、


\begin{equation} w x=y\end{equation}


\begin{equation} \begin{bmatrix}w_{11} &w_{12}\\w_{21} &w_{22} \\w_{31} &w_{32}\\\end{bmatrix} \begin{bmatrix}x_{1} \\x_{2}\\\end{bmatrix} = \begin{bmatrix}y_{1} \\y_{2}\\y_{3}\\\end{bmatrix}\end{equation}


\begin{equation} v y=v w x =z\end{equation}



\begin{equation} \begin{bmatrix}v_{11}&v_{12}&v_{13}\\v_{21} &v_{22} &v_{23} \\\end{bmatrix} \begin{bmatrix}y_{1} \\y_{2}\\y_{3}\\\end{bmatrix} = \end{equation}


\begin{equation} \begin{bmatrix}v_{11}&v_{12}&v_{13}\\v_{21} &v_{22} &v_{23} \\\end{bmatrix} \begin{bmatrix}w_{11} &w_{12}\\w_{21} &w_{22} \\w_{31}&w_{32}\\\end{bmatrix} \begin{bmatrix}x_{1} \\x_{2}\\\end{bmatrix} = \begin{bmatrix}z_{1} \\z_{2}\\\end{bmatrix} \end{equation}

(追記:ここに勘違いが潜んでいたようです。下へ→)




ここで、 x y z 全てのノード数が同じならば
(v w がどちらも n 行 n 列 ならば


\begin{equation} A = v w \end{equation}



\begin{equation} v y=v w x =A x=z\end{equation}


\begin{equation}\begin{bmatrix}v_{11} &v_{12}\\v_{21} &v{22}\\\end{bmatrix} \begin{bmatrix}w_{11} &w_{12}\\a_{21} &w_{22} \\\end{bmatrix}=\begin{bmatrix}a_{11} &a_{12}\\a_{21} &a_{22}\\\end{bmatrix}\end{equation}


と、一個の行列Aで表現できてしまう= 全てのノード数が同じときは多層にしても意味が薄い、ということになりそうです。 この理解が間違っているらしい → 追記へ


中間層 y のノード数が入力よりも大きいときは、SVMカーネルトリックなどと同様、次元を増やした→ 非線形問題が線形分離可能になる(こともある)と思われます


中間層 y のノード数が入力よりも小さいときは、固有ベクトルとか特異値を使って主成分分析をしているのと同じような状態だと考えられます

<<追記>>
。。。と思ったのですが、ここで問題発生

中間層(隠れ層)のノード数が違う場合でも

\begin{equation} \begin{bmatrix}v_{11}&v_{12}&v_{13}\\v_{21} &v_{22} &v_{23} \\\end{bmatrix} \begin{bmatrix}w_{11} &w_{12}\\w_{21} &w_{22} \\w_{31}&w_{32}\\\end{bmatrix} = \begin{bmatrix}a_{11}&a_{12} \\a_{21}&a_{22}\\\end{bmatrix}  \end{equation}

2行3列 と 3行2列 の積は 2行2列の一個の行列で表現できます。

つまり、上の節の間違いはどこから来ているのか?
ノードにおける「しきい値シグモイド関数)」の挙動 を考慮していない=
しきい値を考えると、やたらと途中の重み関数行列の積をとってコンパクトにまとめちゃいけない、ということになるようです?
(この理解自体も間違ってるかも)