이번 글에서 다룰 내용
이 글에서는 선형결합(linear combination)과 생성 범위(span)를 다룹니다.
- 여러 벡터를 섞는다는 것이 수학적으로 무엇인지 설명합니다.
- 생성 범위(span)가 "만들 수 있는 모든 벡터 집합"이라는 점을 정리합니다.
- 열공간(column space), 표현 가능성(representability)과 연결합니다.
- 프로그래밍에서 특성 조합(feature combination)과 잠재 요인(latent factor) 관점으로 해석합니다.
이번 글에서 새로 나오는 용어
- 벡터 (vector): 선형결합의 재료가 되는 기본 대상입니다.
- 선형결합 (linear combination): 벡터들을 스칼라배한 뒤 더한 조합입니다.
- 생성 범위 (span): 그런 선형결합으로 만들 수 있는 모든 결과 집합입니다.
- 열공간 (column space): 행렬 열벡터들의 생성 범위입니다.
핵심 아이디어
데이터 분석에서 여러 특성(feature)을 조합해 새 값을 만들거나, 그래픽스에서 색을 섞거나, 행렬의 열벡터로 출력을 만드는 상황을 떠올려 보면 결국 핵심은 "여러 방향을 섞어 새로운 결과를 만드는 일"입니다. 벡터 덧셈과 스칼라배를 배운 이유도 바로 이 조합을 이해하기 위해서입니다. 이 조합을 선형결합 (linear combination)이라고 합니다.
벡터 v1, v2, ..., vk가 있을 때, 임의의 실수(real number) 스칼라 a1, a2, ..., ak에 대해
a1v1 + a2v2 + ... + akvk
처럼 스칼라를 곱해서 더한 결과가 선형결합입니다.
그렇다면 자연스럽게 다음 질문이 생깁니다.
이 벡터들로 만들 수 있는 모든 결과는 무엇인가?
이 질문에 대한 답이 생성 범위 (span)입니다. 즉 span은 주어진 벡터들로 만들 수 있는 모든 선형결합의 집합입니다. 여기서는 우선 "무엇을 표현할 수 있는가"에 집중하면 충분합니다.
이 개념은 선형대수에서 매우 중요합니다. 왜냐하면 어떤 행렬이 만들 수 있는 출력, 어떤 데이터가 표현 가능한 범위, 어떤 잠재 축으로 전체 구조를 설명할 수 있는지가 모두 span 관점으로 정리되기 때문입니다.
단계별 예시
예시 1) 2차원 두 벡터
벡터 v1 = (1, 0)와 v2 = (0, 1)이 있으면
a v1 + b v2 = (a, b)
이므로 평면의 모든 벡터를 만들 수 있습니다. 즉 이 두 벡터의 생성 범위(span)는 2차원 평면 전체입니다.
예시 2) 평행한 두 벡터
v1 = (1, 2)와 v2 = (2, 4)를 보겠습니다. 둘은 같은 방향입니다. 그래서 이 둘을 아무리 섞어도 결국 같은 직선 위 벡터만 나옵니다. 즉 생성 범위(span)는 평면 전체가 아니라 한 직선뿐입니다.
좌표평면에 그려 보면 모든 결과가 (1, 2) 방향 직선 위에만 놓입니다. 이 예시는 벡터 개수가 많다고 해서 표현력이 자동으로 늘어나는 것은 아니라는 점을 잘 보여 줍니다.
예시 3) 구체적인 행렬 예시
다음과 같은 3 x 2 행렬을 보겠습니다.
A = [1 0
0 1
0 0]
열벡터를 [1; 0; 0], [0; 1; 0]라고 보면
Ax = x1[1; 0; 0] + x2[0; 1; 0]
이므로 어떤 출력을 만들더라도 세 번째 성분은 항상 0입니다. 즉 이 두 열벡터의 생성 범위(span)는 3차원 전체가 아니라 z = 0 평면입니다.
예시 4) 행렬 출력의 범위
행렬 A가 m x n 크기이고 열벡터들을 a1, a2, ..., an이라고 하면, x는 n차원 입력 벡터이고 Ax는 m차원 출력 벡터입니다. 이때 Ax는 항상
x1a1 + x2a2 + ... + xnan
형태입니다. 즉 Ax로 만들 수 있는 모든 출력은 A의 열벡터들이 만드는 생성 범위(span) 안에 있습니다. 이 집합이 바로 열공간 (column space)입니다. 따라서 Ax=b는 결국 "열벡터들을 잘 섞어서 b를 만들 수 있는가"를 묻는 문제입니다.
수학 주석
- 생성 범위(span)는 유한한 점 집합이 아니라, 보통 무한히 많은 벡터를 포함하는 공간입니다.
- 스칼라 계수는 임의의 실수(real number)를 취할 수 있으므로 값을 계속 바꾸면 무한히 많은 결과가 생깁니다.
- 모든 계수를 0으로 두면 항상 영벡터(zero vector)가 포함됩니다.
Ax=b문제는 결국b가A의 열벡터 span 안에 있는가, 즉 열공간 안에 있는가를 묻는 문제이기도 합니다.
머신러닝에서 여러 특성(feature)에 가중치를 주어 예측값을 만드는 것도 선형결합입니다. 추천 시스템이나 차원축소에서는 몇 개 잠재 요인(latent factor)의 생성 범위(span)가 원래 데이터를 얼마나 잘 설명하는지가 핵심이 됩니다.
자주 하는 오해
벡터 몇 개만 주어졌으니 span도 몇 개 결과뿐이라고 생각하기
아닙니다. 스칼라 계수는 연속적으로 바뀔 수 있으므로 보통 무한히 많은 결과가 나옵니다.
벡터 수가 많으면 자동으로 더 큰 span을 만든다고 생각하기
서로 중복되거나 같은 방향이면 표현력이 늘지 않습니다. 중요한 것은 개수가 아니라 독립성(independence)입니다.
span을 단순 공식으로만 보기
span은 앞으로 기저(basis), 차원(dimension), 열공간(column space), 계수(rank)로 이어지는 중심 개념입니다. 한 번에 구조로 받아들이는 것이 좋습니다.
연습 또는 확장
아래 벡터들이 어떤 생성 범위(span)를 만드는지 설명해 보세요.
(1, 0),(0, 1)(1, 2),(2, 4)(1, 0, 0),(0, 1, 0)(3, 6)은(1, 2),(2, 4)의 생성 범위(span) 안에 있는가?(5, -3)은(1, 0),(0, 1)의 생성 범위(span) 안에 있는가? 있다면 어떻게 만들 수 있는가?
그리고 다음 질문도 생각해 보세요.
- 왜 평행한 벡터 두 개는 새로운 방향을 추가하지 못하는가?
Ax=b를 span 관점으로 읽으면 해 존재성이 어떻게 보이는가?
마무리
이번 글에서는 선형결합(linear combination)과 생성 범위(span)를 정리했습니다.
- 선형결합은 벡터를 스칼라배하고 더하는 조합입니다.
- 생성 범위(span)는 그렇게 만들 수 있는 모든 벡터의 집합입니다.
- 행렬의 출력 가능 범위도 결국 열벡터 span으로 설명할 수 있습니다.
- 다음 단계는 이 벡터 집합 안에 중복이 있는지 없는지를 보는 것입니다.
다음 글에서는 선형독립(linear independence)과 종속(dependence)을 다뤄 보겠습니다.
💬 댓글
이 글에 대한 의견을 남겨주세요