벡터는 평면 또는 고차원 공간의 화살표로 생각할 수 있습니다. 두 가지 핵심 성질이 있습니다.
- 크기(Magnitude): 화살표의 길이
- 방향(Direction): 화살표가 가리키는 방향
머신러닝에서 데이터 하나의 인스턴스(관측값)는 보통 벡터로 표현됩니다.
v=[34]
노름(Norm)은 벡터의 크기, 즉 원점에서 해당 점까지의 거리입니다.
좌표의 절댓값을 모두 더한 값입니다. 격자 도시에서 블록을 따라 이동하는 거리와 같습니다.
∥v∥1=∣v1∣+∣v2∣+⋯+∣vn∣
v=(3,4)⇒∥v∥1=3+4=7
좌표의 제곱합의 제곱근입니다. 피타고라스 정리로 빗변을 구하는 것과 같습니다.
∥v∥2=v12+v22+⋯+vn2
v=(3,4)⇒∥v∥2=9+16=25=5
실무에서는? L2-노름은 정규화(regularization)에서 가중치의 크기를 제한할 때(L2 regularization, Ridge) 사용하고, L1-노름은 희소성(sparsity)을 유도하는 L1 regularization(Lasso)에서 사용합니다.
대응하는 좌표끼리 더하거나 빼면 됩니다.
u=(1,3),v=(6,2)
u+v=(1+6, 3+2)=(7,5)
u−v=(1−6, 3−2)=(−5,1)
기하학적으로 u+v 는 두 벡터가 만드는 평행사변형의 대각선입니다.
두 벡터의 차(difference) 를 구한 뒤, L1 또는 L2 노름을 적용합니다.
u=(3,6),v=(5,2)
u−v=(−2,4)
L1 거리=∣−2∣+∣4∣=6
L2 거리=(−2)2+42=4+16=20
벡터의 각 좌표에 스칼라(상수)를 곱합니다.
k⋅v=k⋅[v1v2]=[kv1kv2]
- 양수 스칼라: 같은 방향으로 크기만 변함
- 음수 스칼라: 방향이 반대로 바뀌고 크기가 변함
- 스칼라 = 0: 영벡터(zero vector)가 됨
u=(3,5),6u=(18,30)
대응하는 좌표를 곱해서 모두 더합니다. 결과는 스칼라입니다.
a⋅b=a1b1+a2b2+⋯+anbn
u=(1,2,3),v=(0,3,5)
u⋅v=(1⋅0)+(2⋅3)+(3⋅5)=0+6+15=21
점곱은 두 벡터의 각도와 밀접한 관계가 있습니다.
a⋅b=∥a∥2⋅∥b∥2⋅cosθ
| cosθ 값 | 각도 | 점곱 부호 |
|---|
| cosθ>0 | θ<90° (같은 방향) | 양수 |
| cosθ=0 | θ=90° (직교) | 0 |
| cosθ<0 | θ>90° (반대 방향) | 음수 |
핵심: 두 벡터가 직교(orthogonal) 이면 점곱은 항상 0입니다.
실무에서는? 코사인 유사도(cosine similarity)는 점곱을 두 벡터의 L2-노름 곱으로 나눈 값으로, 자연어 처리에서 문장 간 유사도를 측정할 때 사용됩니다.
행렬의 각 행(row) 과 벡터의 점곱을 계산합니다.
[acbd][xy]=[ax+bycx+dy]
예시:
[325−114]xyz=[3x+5y+z2x−y+4z]
주의: 행렬의 열(column) 수가 벡터의 길이와 반드시 일치해야 합니다.
이처럼 행렬-벡터 곱은 방정식 시스템을 컴팩트하게 표현하는 방법입니다.
선형 변환은 평면의 각 점을 구조적인 방식으로 다른 점으로 보내는 함수입니다.
T:Rn→Rm
행렬-벡터 곱 Ax 가 바로 선형 변환입니다. 행렬 A 가 변환 규칙을 정의합니다.
선형 변환 T 의 행렬을 구하려면:
- 1열: T(1,0) 의 결과
- 2열: T(0,1) 의 결과
예시: T(1,0)=(4,1), T(0,1)=(1,2) 이면
A=[4112]
행렬 곱셈은 두 선형 변환을 합성하는 연산입니다. 변환 B 를 먼저 적용하고, 그 다음 A 를 적용한 결과가 AB 입니다.
C=AB
C 의 (i,j) 원소는 A 의 i번째 행과 B 의 j번째 열의 점곱입니다.
Cij=∑kAikBkj
예시:
A=1202−12,B=[311−2]
AB=(1⋅3+2⋅1)(2⋅3+(−1)⋅1)(0⋅3+2⋅1)(1⋅1+2⋅(−2))(2⋅1+(−1)⋅(−2))(0⋅1+2⋅(−2))=552−34−4
주의: AB=BA — 행렬 곱셈은 교환법칙이 성립하지 않습니다.
크기 조건: A 가 m×k, B 가 k×n 이면, AB 는 m×n 입니다. A 의 열 수와 B 의 행 수가 일치해야 합니다.
대각 원소가 모두 1이고 나머지는 0인 행렬입니다.
I=[1001],I=100010001
단위 행렬을 선형 변환으로 적용하면 벡터/행렬이 그대로 유지됩니다.
IA=AI=A
숫자에서 1×a=a 와 동일한 역할입니다.
행렬 A 의 역행렬 A−1 은 다음을 만족합니다.
A⋅A−1=A−1⋅A=I
선형 변환으로 보면, 역행렬은 원래 변환을 되돌리는(undo) 변환입니다.
선형방정식 시스템을 풀면 역행렬을 구할 수 있습니다.
A=[2114],A−1=[acbd]
A⋅A−1=I 조건에서:
{2a+c=1a+4c=0⇒a=74, c=−71
{2b+d=0b+4d=1⇒b=−71, d=72
A−1=71[4−1−12]
- 비특이 행렬(Non-singular): 역행렬 존재 (det=0)
- 특이 행렬(Singular): 역행렬 없음 (det=0)
det(A)=0⇒A−1 존재하지 않음
역행렬은 방정식 시스템을 행렬 형태로 풀 때 사용됩니다: Ax=b → x=A−1b
지금까지 배운 개념이 머신러닝 모델에서 어떻게 쓰이는지 봅시다.
퍼셉트론은 가장 단순한 형태의 뉴럴 네트워크입니다. 입력 데이터를 행렬 곱으로 계산하고, 결과가 임계값(threshold)을 초과하면 1(활성화), 아니면 0을 출력합니다.
출력={10if w⋅x≥thresholdotherwise
| 구성 요소 | 행렬/벡터 역할 |
|---|
| 입력 데이터 x | 벡터 (각 피처가 원소) |
| 가중치 w | 벡터 (모델 파라미터) |
| w⋅x | 점곱 → 스칼라 출력 |
| 임계값(threshold) | 활성화 여부 결정 |
| 복권 당첨 | 시험 합격 | 장학금 여부 |
|---|
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 1 | 1 |
가중치를 복권=1점, 시험=1점, 임계값=1.5로 설정하면:
w=(1,1),threshold=1.5
- (0,0): 0<1.5 → 0 ✓
- (1,0): 1<1.5 → 0 ✓
- (0,1): 1<1.5 → 0 ✓
- (1,1): 2≥1.5 → 1 ✓
이것이 바로 AND 게이트를 퍼셉트론으로 구현한 것입니다.
여러 개의 데이터 인스턴스를 한 번에 처리할 때는 행렬 곱셈을 사용합니다.
X⋅W=예측값 행렬
- X: 데이터 행렬 (각 행이 하나의 데이터 인스턴스)
- W: 가중치 행렬 (모델 파라미터)
딥러닝 모델은 이런 행렬 곱셈을 수백~수천 층에 걸쳐 반복합니다. GPU가 행렬 연산에 최적화되어 있기 때문에 딥러닝이 GPU를 필요로 하는 것입니다.
| 개념 | 설명 |
|---|
| 벡터 | 크기와 방향을 가진 데이터 표현 단위 |
| L1-노름 | 좌표 절댓값의 합 (맨해튼 거리) |
| L2-노름 | 좌표 제곱합의 제곱근 (유클리드 거리) |
| 점곱 | 대응 좌표를 곱해 더한 스칼라 값 |
| 직교 | 점곱 = 0, 두 벡터가 90° |
| 선형 변환 | 행렬-벡터 곱으로 표현되는 구조적 변환 |
| 행렬 곱셈 | 두 선형 변환의 합성 (교환법칙 불성립) |
| 단위 행렬 | 곱해도 변하지 않는 행렬 (AI=IA=A) |
| 역행렬 | 원래 변환을 되돌리는 행렬 (비특이일 때만 존재) |
| 퍼셉트론 | 점곱 + 임계값으로 구현되는 단순 뉴럴 네트워크 |
Q1. 다음 벡터의 L1-노름과 L2-노름을 구하세요.
v=(−3,4)
정답 보기
∥v∥1=∣−3∣+∣4∣=3+4=7
∥v∥2=(−3)2+42=9+16=25=5
Q2. u=(2,−1,3), v=(1,4,−2) 일 때, 점곱을 구하세요.
정답 보기
u⋅v=(2⋅1)+((−1)⋅4)+(3⋅(−2))=2−4−6=−8
점곱이 음수이므로 두 벡터의 사잇각은 90°보다 큽니다.
Q3. 다음 행렬 곱셈을 계산하세요.
[2103][124−1]
정답 보기
[(2⋅1+0⋅2)(1⋅1+3⋅2)(2⋅4+0⋅(−1))(1⋅4+3⋅(−1))]=[2781]
Q4. 선형 변환 T(1,0)=(2,−1), T(0,1)=(3,4) 를 행렬로 표현하세요.
정답 보기
1열 = T(1,0)=(2,−1), 2열 = T(0,1)=(3,4)
A=[2−134]
Q5. 다음 행렬의 역행렬이 존재하는지 판단하고, 존재한다면 구하세요.
A=[2142]
정답 보기
det(A)=(2×2)−(4×1)=4−4=0
행렬식이 0이므로 A 는 특이 행렬이며, 역행렬이 존재하지 않습니다.
다음 글에서는 행렬식의 기하학적 의미(넓이로서의 행렬식), 고유값·고유벡터 계산법, 차원 축소(PCA), 그리고 마르코프 행렬 까지 다룰 예정입니다.