완전연결층(선형층, 밀집층)
📂머신러닝 완전연결층(선형층, 밀집층) 정의 L : R n → R m L: \mathbb{R}^{n} \to \mathbb{R}^{m} L : R n → R m 을 레이어 라고 하자. W \mathbf{W} W 를 L L L 의 행렬표현 이라 하자. W \mathbf{W} W 가 0 0 0 이 아닌 성분 만을 가지고 있을 때, L L L 을 완전연결층 fully connected layer 이라고 한다.
설명 완전연결층은 인공 신경망 에서 가장 기본적인 레이어이다. 딥러닝에서 대부분의 레이어는 선형이지만, 간단히 선형층 이라고 하면 완전연결층을 의미하는 경우가 많다. 밀집층 dense layer 이라는 말도 많이 쓰인다.
함숫값의 각 성분이 모든 변수에 의존하므로 완전 연결 이라 부르며 흔히 다음과 같은 그림으로 표현된다.
구체적으로, 완전연결층은 다음과 같은 함수이다.
L : R n → R m x ↦ W x [ x 1 x 2 ⋮ x n ] ↦ [ w 11 w 12 ⋯ w 1 n w 21 w 22 ⋯ w 2 n ⋮ ⋮ ⋱ ⋮ w m 1 w m 2 ⋯ w m n ] [ x 1 x 2 ⋮ x n ]
\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*}
L : R n x x 1 x 2 ⋮ x n → R m ↦ Wx ↦ w 11 w 21 ⋮ w m 1 w 12 w 22 ⋮ w m 2 ⋯ ⋯ ⋱ ⋯ w 1 n w 2 n ⋮ w mn x 1 x 2 ⋮ x n
실제로 신경망을 구성할 때는 바이어스 bias b ∈ R m \mathbf{b} \in \mathbb{R}^{m} b ∈ R m 를 추가하여 다음과 같이 아핀 변환 이 되도록 한다.
L : x ↦ W x + b
L : \mathbf{x} \mapsto \mathbf{W}\mathbf{x} + \mathbf{b}
L : x ↦ Wx + b
물론 이 경우에도 x ‾ = [ x 1 ] \overline{\mathbf{x}} = \begin{bmatrix}\mathbf{x} \\ 1 \end{bmatrix} x = [ x 1 ] , W ‾ = [ W b ] \overline{\mathbf{W}} = \left[ \begin{array}{c|c}\mathbf{W} & \mathbf{b} \end{array} \right] W = [ W b ] 라 두면 여전히 다음과 같은 선형 변환 인 것을 알 수 있다.
x ‾ ↦ W ‾ x ‾ = [ W x + b ]
\overline{\mathbf{x}} \mapsto \overline{\mathbf{W}}\overline{\mathbf{x}} = \begin{bmatrix} \mathbf{W}\mathbf{x} + \mathbf{b} \end{bmatrix}
x ↦ W x = [ Wx + b ]
머신러닝/딥러닝의 본질은 우리가 원하는 함수를 인공 신경망 이라는 구조로 잘 근사 approximate 하는 것이다. 완전연결결층과 활성화함수를 여러번(=깊게=deep) 합성한 함수를 approximator로 사용한 것이 초기의 딥러닝이다. 이를 (다층) 퍼셉트론 이라고 한다. 현재는 이미지와 관련한 문제에서는 합성곱층 을 주로 사용하지만, 분류 작업을 위해서는 여전히 마지막 층에서 선형층을 사용한다.