logo

全結合層(線形層, 密接続層) 📂機械学習

全結合層(線形層, 密接続層)

定義

$L: \mathbb{R}^{n} \to \mathbb{R}^{m}$をレイヤーとする。$\mathbf{W}$を$L$の行列表現とする。$\mathbf{W}$が$0$でない成分だけを持つとき、$L$を完全結合層fully connected layerと呼ぶ。

説明

完全結合層は人工神経ネットワークにおける最も基本的なレイヤーだ。ディープラーニングで多くのレイヤーは線形だが、単に線形層と言うと完全結合層を意味する場合が多い。密集層dense layerという言葉もよく使われる。

関数値の各成分がすべての変数に依存するため完全結合と呼ばれ、以下のような図で表現されることが多い。

具体的に、完全結合層は以下のような関数である。

$$ \begin{align*} L : \mathbb{R}^{n} &\to \mathbb{R}^{m} \\ \mathbf{x} &\mapsto \mathbf{W}\mathbf{x}\\ \begin{bmatrix} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{bmatrix} &\mapsto \begin{bmatrix} w_{11} & w_{12} & \cdots & w_{1n} \\ w_{21} & w_{22} & \cdots & w_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ w_{m1} & w_{m2} & \cdots & w_{mn} \end{bmatrix} \begin{bmatrix} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \end{bmatrix} \end{align*} $$

実際に神経ネットワークを構成するときは、バイアスbias $\mathbf{b} \in \mathbb{R}^{m}$を追加して以下のようにアフィン変換となるようにする。

$$ L : \mathbf{x} \mapsto \mathbf{W}\mathbf{x} + \mathbf{b} $$

もちろんこの場合でも、$\overline{\mathbf{x}} = \begin{bmatrix}\mathbf{x} \\ 1 \end{bmatrix}$、$\overline{\mathbf{W}} = \left[ \begin{array}{c|c}\mathbf{W} & \mathbf{b} \end{array} \right]$とすれば依然として以下のような線形変換であることがわかる。

$$ \overline{\mathbf{x}} \mapsto \overline{\mathbf{W}}\overline{\mathbf{x}} = \begin{bmatrix} \mathbf{W}\mathbf{x} + \mathbf{b} \end{bmatrix} $$

機械学習/ディープラーニングの本質は、我々が望む関数を人工神経ネットワークという構造でうまく近似approximateすることだ。完全結合層と活性化関数を何度も(=深く=deep)合成した関数をアプロキシメーターとして使用したのが初期のディープラーニングだ。これを(多層)パーセプトロンと呼ぶ。現在では画像に関する問題には畳み込み層を主に使用するが、分類作業のためには依然として最後の層で線形層を使用する。