logo

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

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

定義

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

説明

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

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

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

L:RnRmxWx[x1x2xn][w11w12w1nw21w22w2nwm1wm2wmn][x1x2xn] \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 bRm\mathbf{b} \in \mathbb{R}^{m}を追加して以下のようにアフィン変換となるようにする。

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

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

xWx=[Wx+b] \overline{\mathbf{x}} \mapsto \overline{\mathbf{W}}\overline{\mathbf{x}} = \begin{bmatrix} \mathbf{W}\mathbf{x} + \mathbf{b} \end{bmatrix}

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