딥러닝에서 신경망(Neural Network)은 수많은 행렬 연산을 기반으로 구성되어 있습니다. 특히, 각 층의 가중치(weight) 행렬과 입력(input) 벡터 간의 곱셈은 신경망이 데이터를 처리하고 학습하는 핵심입니다. 이 글에서는 신경망 내에서 행렬이 어떤 방식으로 가중치 계산에 사용되는지, 그 수학적 구조와 함께 설명합니다.
1. 신경망의 기본 구조와 행렬 연산
1-1. 층(Layer) 개념
신경망은 입력층, 은닉층(hidden layer), 출력층으로 구성됩니다. 각 층은 다음 층과 연결되며, 이 연결이 행렬 연산으로 표현됩니다.
1-2. 수식 표현
한 층의 출력 \( \vec{y} \)는 다음과 같이 계산됩니다:
\[ \vec{y} = f(W\vec{x} + \vec{b}) \]
- \( \vec{x} \): 입력 벡터 (n차원)
- \( W \): 가중치 행렬 (m × n)
- \( \vec{b} \): 편향 벡터 (m차원)
- \( f \): 비선형 활성화 함수 (ReLU, sigmoid 등)
2. 가중치 행렬의 의미
- 각 입력 노드에서 출력 노드로의 연결 강도를 나타냄
- 행렬 \( W \)의 각 행은 한 뉴런의 입력 가중치를 의미
- 행렬 곱을 통해 다중 입력 → 다중 출력 연산을 병렬 처리
2-1. 예시
\[ W = \begin{bmatrix} 0.2 & -0.5 \\ 0.3 & 0.8 \end{bmatrix}, \quad \vec{x} = \begin{bmatrix} 1.0 \\ -1.5 \end{bmatrix}, \quad \vec{b} = \begin{bmatrix} 0.1 \\ -0.2 \end{bmatrix} \]
\[ \vec{y} = W\vec{x} + \vec{b} = \begin{bmatrix} 0.2(1.0) + (-0.5)(-1.5) + 0.1 \\ 0.3(1.0) + 0.8(-1.5) – 0.2 \end{bmatrix} = \begin{bmatrix} 0.2 + 0.75 + 0.1 \\ 0.3 – 1.2 – 0.2 \end{bmatrix} = \begin{bmatrix} 1.05 \\ -1.1 \end{bmatrix} \]
3. 행렬 연산을 통한 순전파(Forward Propagation)
신경망의 각 층은 다음과 같은 행렬 연산을 통해 출력 벡터를 전달합니다:
\[ \vec{h}^{(1)} = f(W^{(1)} \vec{x} + \vec{b}^{(1)}) \\ \vec{h}^{(2)} = f(W^{(2)} \vec{h}^{(1)} + \vec{b}^{(2)}) \\ \cdots \\ \vec{y} = f(W^{(L)} \vec{h}^{(L-1)} + \vec{b}^{(L)}) \]
이 과정에서 각 가중치 \( W^{(l)} \)는 층 \( l-1 \)과 층 \( l \) 사이의 연결을 행렬로 표현합니다.
4. 역전파(Backpropagation)와 행렬
- 역전파는 오차를 각 가중치로 전달하며, 이 또한 행렬 미분을 통해 계산
- 미분 결과는 행렬 형식으로 저장되어 각 가중치 행렬의 업데이트에 사용
\[ \frac{\partial \mathcal{L}}{\partial W} = \delta^{(l)} \cdot (h^{(l-1)})^T \]
여기서 \( \delta^{(l)} \)는 출력 오차의 그라디언트 벡터입니다.
5. GPU 병렬 처리와 행렬
- 행렬 연산은 GPU의 병렬처리 아키텍처에 최적화되어 있음
- 대규모 모델도 빠르게 학습 가능
- Tensor Cores, cuBLAS 등 활용
6. 행렬 연산 최적화 팁
- 배치 연산 사용 (입력을 행렬로 묶어 한 번에 연산)
- 정규화 및 초기화 시에도 행렬 기반 연산 사용
- 학습률 조절, 가중치 감소 등 정규화 전략도 행렬 연산과 결합됨
결론
딥러닝의 신경망은 본질적으로 행렬 연산으로 구성된 함수 체인입니다.
가중치 행렬은 각 층 간 입력과 출력의 관계를 수치적으로 나타내며, 이를 통해 병렬 연산과 미분이 효율적으로 수행됩니다.
이러한 구조는 딥러닝이 수치 해석, 최적화, 행렬 대수 등의 이론적 토대 위에 작동함을 보여주며, 행렬의 개념을 잘 이해하면 신경망의 내부 동작 원리를 명확하게 파악할 수 있습니다.