이 강의의 목표는 공식을 빨리 외우는 것이 아닙니다. 목표는 아래 식을 스스로 설명할 수 있게 되는 것입니다.
v=c1e1+c2e2+⋯+cnen
이 식은 말로 풀면 다음 뜻입니다.
벡터 v는 기준 벡터 e1,e2,…,en을 각각 c1,c2,…,cn만큼 섞어 만든 것이다.
이 한 줄이 7강의 출발점이자 도착점입니다. 이 식을 이해하려면 다음을 알아야 합니다.
- 벡터란 무엇인가? 화살표로 어떻게 그리는가?
- 벡터를 어떻게 더하고, 어떻게 늘리고 줄이는가?
- "기준 벡터"란 어떤 의미이고, 어떻게 골라야 하는가?
- 같은 공간을 다른 기준으로 볼 수도 있는가?
- 그래서 "차원"이라는 말이 정말 뜻하는 게 뭔가?
이 강의는 이 질문을 하나씩, 아주 작은 단계로 나누어 설명합니다. 2강에서 배운 다항식의 변수가 한 개의 수였다면, 벡터는 여러 수를 한꺼번에 다루는 새 언어입니다.
이번 강은 선형대수의 첫 단계라서 거의 모든 어휘가 새로 등장합니다. 1~6강에서는 한 변수를 다뤘다면, 이제부터는 여러 변수를 한 묶음으로 다루는 도구를 익힙니다.
| 말 |
뜻 |
| 벡터 |
여러 숫자를 순서 있게 묶은 것 |
| 성분 |
벡터 안의 각각의 숫자 |
| n차원 벡터 |
성분이 n개인 벡터 |
| 영벡터 (0) |
모든 성분이 0인 벡터. 어디로도 가지 않는 이동 |
| 스칼라 |
벡터를 몇 배 할 때 쓰는 보통의 수 |
| 벡터 덧셈 |
같은 위치의 성분끼리 더하는 계산 |
| 스칼라배 |
벡터의 모든 성분에 같은 수를 곱하는 계산 |
| 선형결합 |
벡터들을 스칼라배해서 더한 것 |
| Span |
어떤 벡터들로 만들 수 있는 모든 선형결합의 모임 |
| 선형독립 |
한 벡터가 다른 벡터들의 선형결합으로 표현될 수 없는 상태 |
| 기저 |
공간을 만들 수 있는 가장 작은 독립 벡터 묶음 |
| 표준기저 |
e1,e2,…로 한 성분만 1이고 나머지는 0인 가장 단순한 기저 |
| 차원 |
한 공간의 기저 벡터 개수 |
| 좌표 |
기저 벡터를 얼마씩 썼는지 적은 숫자들 |
| 벡터의 길이 |
벡터의 크기. 10강에서 노름(∥v∥)으로 자세히 본다 |
| 벡터공간 |
벡터 덧셈과 스칼라배가 그 안에서 닫혀 있는 공간 |
| 부분공간 |
벡터공간 안에 들어 있는 또 다른 벡터공간 |
여기서 가장 중요한 식은 도입부에서 본
v=c1e1+c2e2+⋯+cnen
입니다. 이 식이 곧 8강에서 배울 행렬-벡터 곱의 뼈대입니다.
벡터는 여러 숫자를 정해진 순서로 묶은 것입니다.
v=[32]
이 벡터는 성분이 두 개입니다.
- 첫 번째 성분: 3
- 두 번째 성분: 2
성분이 두 개면 2차원 벡터, 세 개면 3차원 벡터입니다. 더 일반적으로 성분이 n개면 n차원 벡터, 또는 "Rn의 원소"라고 부릅니다.
⎣⎢⎢⎢⎡0.5−127⎦⎥⎥⎥⎤∈R4
표기 약속: 이 책에서는 벡터를 세로로 적습니다. 가로 형태도 같은 뜻이지만, 행렬과 함께 다룰 때는 세로가 표준입니다.
R2 벡터 [32]를 평면에 그리면, 첫 번째 성분만큼 가로로, 두 번째 성분만큼 세로로 가는 화살표가 됩니다.
여기서 중요한 점 하나. 벡터는 위치가 아니라 이동입니다.
- 점 (3,2): "원점에서 그 자리에 있다"는 위치.
- 벡터 [32]: "오른쪽으로 3, 위로 2 가라"는 이동.
벡터는 시작점이 어디든 같은 양의 이동입니다. 출발점이 원점이든 다른 점이든 화살표의 길이와 방향이 같으면 같은 벡터입니다.
3차원 이상에서는 그림으로 그릴 수 없습니다. 하지만 "각 성분만큼 그 축 방향으로 이동" 이라는 직관은 그대로 통합니다. 100차원 벡터도 머릿속에서는 "100개의 축 각각으로 정해진 양만큼 이동"으로 봅시다. AI에서 다루는 벡터는 보통 수백~수만 차원입니다.
벡터 덧셈과 스칼라배는 7강에서 만나는 두 가지 기본 연산입니다. 이 두 연산이 8강의 행렬, 9강의 변환, 10강의 내적·투영을 모두 떠받칩니다.
두 벡터를 더하려면 같은 자리 성분을 더합니다.
[12]+[34]=[1+32+4]=[46]
이동 관점으로 읽으면, 먼저 한 화살표만큼 가고 이어서 다른 화살표만큼 가는 것과 같습니다. 출발점에서 도착점까지의 전체 이동이 합 벡터입니다.
벡터 덧셈을 하려면 두 벡터의 차원이 같아야 합니다.
벡터에 보통의 수(스칼라)를 곱하면 모든 성분에 그 수를 곱합니다.
2⋅[32]=[64]
방향은 같고 길이만 2배가 됐습니다.
스칼라 부호와 크기에 따라 효과가 달라집니다.
| 스칼라 c |
효과 |
| c>1 |
같은 방향으로 늘어남 |
| 0<c<1 |
같은 방향으로 줄어듦 |
| c=0 |
영벡터로 짜부라짐 |
| −1<c<0 |
반대 방향으로 줄어듦 |
| c=−1 |
정확히 반대 방향 |
| c<−1 |
반대 방향으로 늘어남 |
- 교환·결합: u+v=v+u, (u+v)+w=u+(v+w)
- 분배: c(u+v)=cu+cv, (c+d)v=cv+dv
- 영벡터: v+0=v
- 역원: 모든 v에 대해 −v가 있어 v+(−v)=0
7강의 모든 결과는 이 단순한 성질에서 출발합니다.
이 강의 도입부 식
v=c1e1+c2e2+⋯+cnen
이 바로 선형결합입니다. 두 가지 기본 연산(스칼라배와 덧셈)을 동시에 쓰는, 7강에서 가장 중요한 동작입니다.
두 벡터
u=[10],v=[01]
가 있을 때 3u+2v는
3[10]+2[01]=[30]+[02]=[32]
입니다. 벡터들을 스칼라배한 뒤 더해서 새 벡터를 만드는 것을 선형결합이라고 합니다.
u와 v를 고정해 두고, 스칼라 c1,c2를 모든 실수로 바꿔 가며 c1u+c2v를 모두 모으면 어떤 벡터들이 나올까요?
위의 u,v의 경우 모든 2차원 벡터 [ab]를 만들 수 있습니다 (왜냐하면 au+bv=[ab]).
이렇게 어떤 벡터들의 모든 선형결합으로 만들어지는 벡터의 모임을 그 벡터들의 Span이라고 합니다.
Span{u,v}={c1u+c2v:c1,c2∈R}
직관적으로 Span은 "이 벡터들이 도달할 수 있는 모든 곳"입니다.
| 벡터들 |
Span |
| \ |
한 점 (원점) |
| {v} (v=0) |
v를 지나는 한 직선 |
| {u,v}, u∦v |
평면 전체 |
| {u,v}, u∥v |
u를 지나는 한 직선 |
벡터 두 개가 같은 방향이면(평행이면) 두 번째 벡터는 새로운 방향을 주지 못해 Span이 직선에 머무릅니다.
가장 자주 쓰는 기준 벡터 두 개
e1=[10],e2=[01]
를 표준기저라고 부릅니다. e1은 오른쪽 방향, e2는 위쪽 방향 단위 벡터입니다.
평면의 어떤 벡터든 이 두 벡터의 선형결합으로 쓸 수 있습니다.
[32]=3e1+2e2,[−47]=−4e1+7e2
n차원에서도 마찬가지로
e1=⎣⎢⎢⎢⎢⎡10⋮0⎦⎥⎥⎥⎥⎤,e2=⎣⎢⎢⎢⎢⎡01⋮0⎦⎥⎥⎥⎥⎤,…,en=⎣⎢⎢⎢⎢⎡00⋮1⎦⎥⎥⎥⎥⎤
가 표준기저입니다.
표준기저뿐 아니라 다른 기저도 가능합니다. 어떤 벡터 묶음이 좋은 기저가 되려면 어떤 조건을 만족해야 할까요? 핵심은 선형독립입니다.
다음 두 벡터를 봅시다.
v1=[10],v2=[20]
v2=2v1이므로 두 벡터는 같은 방향(가로축)입니다. 이 두 벡터를 어떻게 섞어도
c1v1+c2v2=(c1+2c2)[10]
여전히 가로축 위에 머뭅니다. 위쪽 방향 벡터 [01]은 만들 수 없습니다. 이런 상황을 선형종속이라고 합니다.
벡터 묶음 {v1,v2,…,vk}가 선형독립이라는 것은
c1v1+c2v2+⋯+ckvk=0
이라는 식을 만족시키는 스칼라가 c1=c2=⋯=ck=0일 때뿐이라는 뜻입니다.
말로 풀면 이렇습니다.
이 벡터들을 섞어서 영벡터를 만들려면, 아무도 안 쓰는 방법(모두 0배) 외에는 없다.
반대로 위 식이 일부 ci=0로도 성립하면 선형종속입니다. 6.1의 예시에서는 c1=2,c2=−1로 2v1−v2=0이 가능하므로 선형종속입니다.
각 벡터가 다른 벡터들이 줄 수 없는 새로운 방향을 가져오면 독립입니다. 한 벡터가 다른 벡터들의 선형결합으로 표현되면 그 벡터는 새 정보가 없어 종속입니다.
이제 두 가지 도구(Span, 선형독립)를 합쳐 기저를 정의합니다.
벡터 묶음 {v1,…,vn}이 어떤 공간 V의 기저라는 것은 두 조건을 동시에 만족하는 것입니다.
- Spanning: 이 묶음의 Span이 V 전체와 같다. (모든 벡터를 만들 수 있다)
- 선형독립: 묶음이 선형독립이다. (군더더기가 없다)
말로 풀면
기저는 공간을 다 채울 수 있을 만큼 충분하고, 동시에 군더더기가 없을 만큼 절약된 묶음이다.
표준기저 {e1,e2}가 R2의 기저인 이유를 확인해 봅시다.
- Spanning: 어떤 [ab]도 ae1+be2로 만들 수 있음. ✓
- 선형독립: c1e1+c2e2=[c1c2]=0이라면 c1=c2=0. ✓
따라서 {e1,e2}는 R2의 기저입니다.
기저는 표준기저만이 아닙니다. 예를 들어
b1=[11],b2=[1−1]
도 R2의 기저입니다. 이 두 벡터는 평행이 아니어서 독립이고, R2를 모두 만들 수 있습니다.
같은 공간을 여러 기저로 볼 수 있다는 점은 9강의 대각화, 11강의 SVD에서 결정적입니다.
"n차원"이라는 말의 정확한 의미는 다음과 같습니다.
벡터공간 V의 모든 기저는 같은 개수의 벡터를 가집니다. 이 개수를 V의 차원이라고 합니다.
- R1 (수직선): 1차원. 기저 1개. 예: {1}.
- R2 (평면): 2차원. 기저 2개. 예: {e1,e2} 또는 {b1,b2}.
- R3 (공간): 3차원. 기저 3개.
- Rn: n차원. 기저 n개.
"차원"은 위치나 이동을 설명하는 데 필요한 독립 방향의 개수입니다.
예를 들어 R2의 기저 {e1,e2}와 {b1,b2} (7.3절). 이 둘은 다른 기저이지만 둘 다 2개의 벡터로 구성됩니다. 평면의 차원은 어느 기저로 보든 항상 2입니다.
차원은 "자유도"와도 같습니다. 평면에서 한 점을 정하려면 두 숫자 (x,y)가 필요합니다. 즉 평면에서 자유롭게 정할 수 있는 양이 두 가지라는 뜻이고, 그게 곧 2차원입니다.
AI에서 단어 임베딩이 보통 768차원, 1024차원처럼 큰 차원으로 표현되는데, 이건 그 단어를 묘사하는 "독립 정보 축"이 그만큼 많다는 의미입니다.
벡터 v를 기저 {e1,e2,…,en}로 표현하면
v=c1e1+c2e2+⋯+cnen
이 됩니다. 이때 스칼라들 (c1,c2,…,cn)을 v의 그 기저에 대한 좌표라고 부릅니다.
표준기저 {e1,e2}에서 벡터 [32]의 좌표는
[32]=3e1+2e2
이므로 (3,2)입니다. 표준기저에서는 좌표가 곧 벡터의 성분과 같습니다.
7.3절에서 본 다른 기저 {b1,b2}로 같은 벡터를 표현해 봅시다.
b1=[11],b2=[1−1]
[32]을 c1b1+c2b2로 쓰려면 두 식을 풀어야 합니다.
c1+c2c1−c2=3=2⇒c1=2.5,c2=0.5
따라서 [32]=2.5b1+0.5b2이고, {b1,b2} 기저에서의 좌표는 (2.5,0.5)입니다.
같은 벡터인데 기저가 다르면 좌표가 다릅니다. 벡터 자체는 변하지 않고, 그 벡터를 묘사하는 언어가 바뀐 것뿐입니다.
핵심: 벡터는 한 개이지만, 좌표는 어느 기저에서 보는가에 따라 달라진다.
이 관점은 9강(대각화), 11강(SVD)에서 핵심입니다. SVD는 "더 좋은 기저를 골라 같은 벡터를 다시 본다"고 요약할 수 있습니다.
벡터공간은 벡터들이 사는 무대입니다. 형식적으로는 다음 조건을 만족하는 모임입니다.
벡터공간 V 안의 두 벡터 u,v와 스칼라 c에 대해
- u+v도 V 안에 있어야 한다 (덧셈에 닫혀 있음)
- cu도 V 안에 있어야 한다 (스칼라배에 닫혀 있음)
이 외에도 결합·분배·영벡터·역원 등 3.3절에서 본 성질을 만족해야 합니다 (총 8가지 공리). 그러나 처음 보는 입장에서는 "두 연산이 그 안에서 닫혀 있다"만 외워도 충분합니다.
- Rn: n차원 실수 벡터들의 모임. 가장 익숙한 벡터공간.
- 행렬들의 모임 Mm×n: 같은 크기의 행렬들도 벡터공간을 이룬다.
- 함수들의 모임: 어떤 조건을 만족하는 함수들의 집합도 벡터공간이 될 수 있다.
벡터공간 개념이 강력한 이유는 "벡터처럼 더하고 곱할 수 있는 모든 것"에 통일된 언어를 제공하기 때문입니다.
벡터공간 V 안의 어떤 부분집합 W가 그 자체로도 벡터공간이면, W를 V의 부분공간이라고 부릅니다.
가장 흔한 부분공간의 예: 어떤 벡터 묶음의 Span은 항상 부분공간입니다. 예를 들어 R3에서
W=Span⎩⎪⎨⎪⎧⎣⎢⎡100⎦⎥⎤,⎣⎢⎡010⎦⎥⎤⎭⎪⎬⎪⎫
는 R3 안의 xy 평면(2차원 부분공간)입니다.
부분공간의 차원은 항상 원래 공간의 차원 이하입니다.
여기까지는 방향과 결합만 다뤘습니다. 벡터의 또 다른 정보인 크기에 대해 간단히 짚어 둡니다. (10강에서 자세히 노름으로 다시 본다.)
2차원 벡터 v=[34]의 길이는 피타고라스 정리로
∥v∥=32+42=5
입니다. 일반적으로 n차원 벡터의 길이는
∥v∥=v12+v22+⋯+vn2
입니다.
길이가 1인 벡터를 단위벡터라고 합니다. 표준기저 e1,e2,…는 모두 단위벡터입니다.
영벡터가 아닌 어떤 벡터 v도 자기 길이로 나누면 단위벡터가 됩니다.
v^=∥v∥v
이 작업을 정규화라고 부릅니다. 예를 들어 v=[34]의 길이가 5이므로
v^=51[34]=[0.60.8]
가 단위벡터입니다.
AI에서는 종종 벡터의 길이를 모두 1로 맞춘 뒤 방향 정보만 보고 작업합니다(예: 코사인 유사도).
벡터와 기저는 AI 거의 모든 곳에 등장합니다.
이미지 한 장은 픽셀 값들로 이뤄진 고차원 벡터, 단어는 임베딩이라는 벡터, 사용자 한 명은 행동 기록 벡터로 표현됩니다.
신경망이 학습하는 일은 결국 데이터를 가장 유용하게 표현하는 새 기저를 찾는 일입니다. 어떤 임베딩 공간에서는 "왕 - 남자 + 여자 ≈ 여왕"처럼 의미 관계가 선형결합으로 표현됩니다.
고차원 데이터에서 의미 있는 방향(주성분)을 찾아 더 작은 차원으로 옮기는 일이 차원 축소이고, 그 핵심 도구가 9강의 고유값분해와 11강의 SVD입니다.
이번 강에서 익힌 도구는 다음 강의의 출발점이 됩니다.
- 8강: 행렬을 "벡터들의 가로 쌓기"로 보고, 행렬-벡터 곱을 4절의 선형결합으로 읽는다.
- 9강: 행렬을 변환으로 보고, 자기와 같은 방향에 머무르는 벡터(고유벡터)를 찾는다. 9.3절의 "기저가 바뀌면 좌표도 바뀐다"가 대각화의 핵심.
- 10강: 벡터의 길이(11절)와 직교 개념으로 투영, 최소제곱을 만든다.
- 11강: 어떤 행렬에 가장 잘 맞는 기저를 찾는 SVD. "한 벡터, 여러 좌표" 관점의 절정.
문제: 다음 벡터를 더하시오.
[2−1]+[35]
풀이:
성분끼리 더합니다.
[2+3−1+5]=[54]
문제: 다음 값을 구하시오.
2[12]−3[01]
풀이:
2[12]=[24]
이고
3[01]=[03]
입니다.
따라서
[24]−[03]=[21]
입니다.
문제: 표준기저 e1, e2로 다음 벡터를 선형결합으로 표현하시오.
[−26]
풀이: 9.2절에 따르면 표준기저에서는 성분 자체가 좌표입니다.
[−26]=−2e1+6e2
문제: 다음 세 벡터가 선형독립인지 판별하시오.
v1=[12],v2=[21],v3=[33]
풀이:
R2의 차원이 2이므로 세 벡터는 절대 선형독립일 수 없습니다 (한 공간의 독립 벡터 개수는 그 차원 이하). 어떤 종속 관계가 있는지 확인해 봅시다.
v3=v1+v2인지 검토해 보면
v1+v2=[1+22+1]=[33]=v3✓
따라서 1⋅v1+1⋅v2−1⋅v3=0이라는 자명하지 않은 영 선형결합이 존재합니다. 선형종속입니다.
문제: 벡터 w=[51]의 기저 {b1,b2}에서의 좌표를 구하시오. 단,
b1=[11],b2=[1−1]
풀이:
w=c1b1+c2b2로 두면
c1+c2c1−c2=5=1
두 식을 더하면 2c1=6이므로 c1=3. 첫 번째 식에서 c2=2.
따라서 좌표는 (3,2)이고, w=3b1+2b2.
검증: 3[11]+2[1−1]=[3+23−2]=[51]✓.
- 벡터는 여러 숫자를 순서 있게 묶은 것이고, 위치가 아닌 이동(화살표)으로 본다.
- 벡터 덧셈은 같은 위치의 성분끼리 더하고, 스칼라배는 모든 성분에 같은 수를 곱한다.
- 선형결합은 벡터들을 스칼라배해서 더한 것이고, 그 모임을 Span이라고 부른다.
- 벡터 묶음이 영벡터를 만드는 유일한 방법이 "전부 0배"일 때 선형독립이다.
- 기저는 Spanning이면서 동시에 선형독립인 벡터 묶음이다.
- 한 공간의 모든 기저는 같은 개수의 벡터를 가지고, 그 개수가 차원이다.
- 표준기저 {e1,e2,…}가 가장 자주 쓰이지만 다른 기저도 가능하다.
- 좌표는 기저에 따라 달라진다. 같은 벡터라도 기저가 다르면 좌표가 다르다.
- 벡터공간은 두 연산에 닫힌 모임이고, 그 안의 또 다른 벡터공간이 부분공간이다.
- 벡터의 길이는 ∑vi2이고, 길이로 나누면 단위벡터가 된다(10강에서 자세히).
- AI 데이터는 모두 벡터이고, 학습은 좋은 기저를 찾는 일이다.
- [4−1]를 "이동"의 관점으로 한 줄로 설명할 수 있는가?
- 두 벡터를 성분끼리 더할 수 있는가? 결과를 화살표 그림으로 그려서 설명할 수 있는가?
- 스칼라가 양수, 음수, 0, 1보다 큰 수, 1보다 작은 양수일 때 스칼라배의 효과를 각각 말할 수 있는가?
- 선형결합 3e1+5e2가 어떤 벡터인지 말할 수 있는가?
- Span{(1,2),(2,4)}가 평면 전체인지 직선인지, 그 이유를 설명할 수 있는가?
- 선형독립의 정의를 식으로 쓸 수 있는가?
- 다음 두 벡터가 선형독립인지 판별할 수 있는가?
[10],[23]
- 기저가 되려면 어떤 두 조건이 필요한지 말할 수 있는가?
- 평면이 왜 2차원인지, 그리고 다른 기저로 잡아도 왜 여전히 2차원인지 설명할 수 있는가?
- 좌표가 기저에 따라 달라진다는 말을 자기 말로 풀어서 설명할 수 있는가?