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) 합성한 함수를 approximator로 사용한 것이 초기의 딥러닝이다. 이를 (다층) 퍼셉트론이라고 한다. 현재는 이미지와 관련한 문제에서는 합성곱층을 주로 사용하지만, 분류 작업을 위해서는 여전히 마지막 층에서 선형층을 사용한다.