27.6 벡터의 덧셈과 스칼라 곱: 연산 법칙과 기하학적 의미
1. 벡터 덧셈의 정의와 연산 법칙
\mathbb{R}^n에서 두 벡터 \mathbf{u} = (u_1, u_2, \ldots, u_n)^\top와 \mathbf{v} = (v_1, v_2, \ldots, v_n)^\top의 덧셈은 성분별(component-wise)로 정의된다.
\mathbf{u} + \mathbf{v} = \begin{pmatrix} u_1 + v_1 \\ u_2 + v_2 \\ \vdots \\ u_n + v_n \end{pmatrix}
이 연산은 벡터 공간의 공리로부터 다음 법칙들을 만족한다.
- 결합법칙: (\mathbf{u} + \mathbf{v}) + \mathbf{w} = \mathbf{u} + (\mathbf{v} + \mathbf{w})
- 교환법칙: \mathbf{u} + \mathbf{v} = \mathbf{v} + \mathbf{u}
- 항등원: \mathbf{u} + \mathbf{0} = \mathbf{u}
- 역원: \mathbf{u} + (-\mathbf{u}) = \mathbf{0}
벡터의 뺄셈은 역원을 이용하여 \mathbf{u} - \mathbf{v} = \mathbf{u} + (-\mathbf{v})로 정의된다. 성분별로는 (\mathbf{u} - \mathbf{v})_i = u_i - v_i이다.
2. 벡터 덧셈의 기하학적 의미
\mathbb{R}^2 또는 \mathbb{R}^3에서 벡터 덧셈은 두 가지 기하학적 방법으로 해석된다.
삼각형 법칙(triangle rule): 벡터 \mathbf{u}의 종점에서 벡터 \mathbf{v}의 시점을 일치시키면, 합 \mathbf{u} + \mathbf{v}는 \mathbf{u}의 시점에서 \mathbf{v}의 종점까지의 유향 선분이 된다. 이 방법을 머리-꼬리(head-to-tail) 연결이라고도 한다.
평행사변형 법칙(parallelogram rule): 두 벡터 \mathbf{u}와 \mathbf{v}의 시점을 일치시키면, 이 두 벡터를 인접 변으로 하는 평행사변형의 대각선이 합 \mathbf{u} + \mathbf{v}가 된다. 교환법칙 \mathbf{u} + \mathbf{v} = \mathbf{v} + \mathbf{u}는 평행사변형의 두 대각선이 동일함을 반영한다.
벡터 뺄셈 \mathbf{u} - \mathbf{v}는 기하학적으로 \mathbf{v}의 종점에서 \mathbf{u}의 종점으로 향하는 벡터이다. 이는 두 점 사이의 변위(displacement)를 나타내며, 딥러닝에서 두 벡터 사이의 차이를 계산할 때 빈번하게 사용된다.
3. 스칼라 곱의 정의와 연산 법칙
스칼라 \alpha \in \mathbb{R}와 벡터 \mathbf{v} = (v_1, v_2, \ldots, v_n)^\top \in \mathbb{R}^n의 스칼라 곱(scalar multiplication)은 다음과 같이 정의된다.
\alpha \mathbf{v} = \begin{pmatrix} \alpha v_1 \\ \alpha v_2 \\ \vdots \\ \alpha v_n \end{pmatrix}
스칼라 곱은 다음 법칙들을 만족한다.
- 스칼라 결합법칙: \alpha(\beta \mathbf{v}) = (\alpha\beta)\mathbf{v}
- 항등 스칼라: 1 \cdot \mathbf{v} = \mathbf{v}
- 벡터 덧셈에 대한 분배법칙: \alpha(\mathbf{u} + \mathbf{v}) = \alpha\mathbf{u} + \alpha\mathbf{v}
- 스칼라 덧셈에 대한 분배법칙: (\alpha + \beta)\mathbf{v} = \alpha\mathbf{v} + \beta\mathbf{v}
이 법칙들로부터 0 \cdot \mathbf{v} = \mathbf{0}, \alpha \cdot \mathbf{0} = \mathbf{0}, (-1)\mathbf{v} = -\mathbf{v} 등의 성질이 도출된다.
4. 스칼라 곱의 기하학적 의미
스칼라 곱 \alpha\mathbf{v}는 벡터 \mathbf{v}의 크기를 |\alpha|배 변환하는 연산이다. 구체적으로,
- \alpha > 1: 벡터의 크기가 확대되고 방향은 유지된다.
- 0 < \alpha < 1: 벡터의 크기가 축소되고 방향은 유지된다.
- \alpha = 0: 영벡터 \mathbf{0}가 된다.
- \alpha < 0: 벡터의 방향이 반전되고 크기는 |\alpha|배가 된다.
노름에 대하여 다음 관계가 성립한다.
\|\alpha\mathbf{v}\| = |\alpha| \cdot \|\mathbf{v}\|
이는 스칼라 곱이 노름에 대하여 양의 동차성(positive homogeneity)을 가짐을 의미한다.
5. 선형 결합
벡터 덧셈과 스칼라 곱을 결합하면 선형 결합(linear combination)을 정의할 수 있다. 벡터 \mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_k \in \mathbb{R}^n과 스칼라 \alpha_1, \alpha_2, \ldots, \alpha_k \in \mathbb{R}에 대하여
\mathbf{w} = \sum_{i=1}^{k} \alpha_i \mathbf{v}_i = \alpha_1 \mathbf{v}_1 + \alpha_2 \mathbf{v}_2 + \cdots + \alpha_k \mathbf{v}_k
를 선형 결합이라 한다. 선형 결합은 벡터 공간 이론의 핵심 연산이며, 생성(span), 선형 독립(linear independence), 기저(basis) 등 거의 모든 주요 개념이 선형 결합으로 정의된다.
아핀 결합(affine combination): 계수의 합이 1인 선형 결합, 즉 \sum_{i=1}^k \alpha_i = 1인 경우를 아핀 결합이라 한다. 두 점 \mathbf{p}, \mathbf{q}의 아핀 결합 (1-t)\mathbf{p} + t\mathbf{q} (t \in [0,1])는 두 점을 잇는 선분 위의 점을 나타낸다.
볼록 결합(convex combination): 모든 계수가 비음수이고 합이 1인 선형 결합, 즉 \alpha_i \geq 0이고 \sum_{i=1}^k \alpha_i = 1인 경우를 볼록 결합이라 한다.
6. 딥러닝에서의 벡터 연산 활용
딥러닝의 순전파(forward propagation)는 본질적으로 벡터 덧셈과 스칼라 곱의 반복적 적용이다. 단일 완전 연결층(fully connected layer)에서 입력 벡터 \mathbf{x} \in \mathbb{R}^d는 다음과 같이 변환된다.
\mathbf{z} = W\mathbf{x} + \mathbf{b}
여기서 W \in \mathbb{R}^{m \times d}는 가중치 행렬이고 \mathbf{b} \in \mathbb{R}^m은 편향 벡터이다. 행렬-벡터 곱 W\mathbf{x}는 W의 각 행과 \mathbf{x}의 내적으로 계산되며, 이는 스칼라 곱과 덧셈의 조합이다. 편향 벡터 \mathbf{b}의 덧셈은 출력을 원점으로부터 이동시키는 평행 이동(translation)에 해당한다.
경사 하강법(gradient descent)에서 매개변수 갱신도 벡터 덧셈과 스칼라 곱으로 표현된다.
\boldsymbol{\theta}_{t+1} = \boldsymbol{\theta}_t - \eta \nabla_{\boldsymbol{\theta}} \mathcal{L}(\boldsymbol{\theta}_t)
여기서 \eta는 학습률(learning rate) 스칼라이고, \nabla_{\boldsymbol{\theta}} \mathcal{L}은 경사도(gradient) 벡터이다. 스칼라 곱 \eta \nabla_{\boldsymbol{\theta}} \mathcal{L}은 갱신 보폭의 크기를 조절하고, 벡터 뺄셈은 손실이 감소하는 방향으로 매개변수를 이동시킨다.
7. 성분별 연산의 수치적 구현
현대 딥러닝 프레임워크에서 벡터 덧셈과 스칼라 곱은 SIMD(Single Instruction, Multiple Data) 명령어 또는 GPU의 병렬 처리 구조를 활용하여 성분별로 동시에 수행된다. n차원 벡터의 덧셈은 O(n) 연산을 요구하며, 메모리 접근 패턴이 연속적이므로 캐시 효율성이 높다.
브로드캐스팅(broadcasting)은 형상(shape)이 다른 텐서 간의 연산을 자동으로 확장하는 기법이다. 예를 들어 스칼라 \alpha와 벡터 \mathbf{v} \in \mathbb{R}^n의 곱에서, 스칼라가 n차원 벡터 (\alpha, \alpha, \ldots, \alpha)^\top으로 암묵적으로 확장된 후 성분별 곱셈이 수행된다. 이 개념은 벡터 공간의 스칼라 곱 공리를 수치적으로 효율 구현하는 방식이다.