인공지능을 위해 필요한 선형대수 내용을 간단하게 정리해보고자 한다.
4년간 배운 내용과 다른 블로그, 유튜브 등 여러 곳에서 조금씩 참고하여 정리했다.
전체적인 흐름은 유명한 '3Blue1Brown' 유튜브 채널의 선형대수 부분을 따랐다.
벡터 합, 벡터와 스칼라 곱, 행렬 합, 행렬 곱 등 기초적인 내용은 제외하고, 중요하면서도 외워둬야 할 것들 위주로 정리할 것이다.
목차
1. 선형 대수(Linear Algebra)의 필요성
데이터 분석, 인공지능에서 선형대수의 필요성은 다음과 같다.
- 수많은 데이터를 벡터와 행렬을 이용하여 쉽게 개념화하고 활용할 수 있다.
- 이를 통해 데이터의 패턴을 명확하게 해줄 수 있다.
- 컴퓨터에 시공간을 수치적으로 표현할 때 필수적이다.
2. Linear Combinations, Span, Basis
1) 기저(Basis)
벡터의 좌표를 표현하는 대표적인 방법 중 하나는 각 좌표값을 하나의 스칼라로 생각하는 것이다.
xy 좌표계에서는 x방향의 1의 길이를 갖는 벡터는 \(\hat{i}\), y방향의 1의 길이를 갖는 벡터는 \(\hat{j}\)로 두고, 이 둘의 스칼라 곱으로 각 좌표를 표시한다.
이는 각각 x축 단위벡터(unit vector), y축의 단위벡터(unit vector)라 한다.
그리고 이러한 \(\hat{i}\), \(\hat{j}\)를 'xy좌표계의 standard basis vector'라 한다.
\([1, 2]^T\) 벡터를 나타낼 때, 이러한 기저 벡터들은 1, 2라는 스칼라가 scaling하는 대상이 된다.
만약 똑같은 벡터를 표현하더라도 다른 기저 벡터를 사용하게 된다면, 또다른 새로운 좌표계를 갖는다는 의미이며, scaling하는 스칼라 값이 달라지게 된다.
2) 선형 결합 (Linear Combinations)
선형 결합이란, 여러 벡터를 스칼라 값으로 스케일링하고 더해주는 것을 말한다.
$$ a \mathbf{v} + b \mathbf{w} $$
선형이라는 것은 위와 같이 \(\mathbf{v}, \mathbf{w}\) 두 벡터에 대한 선형 결합이 있다면
스칼라 중 하나를 고정하고, 다른 하나만 자유롭게 변경할 경우 벡터의 끝 점이 선을 잇게 되는 것을 연관시켜볼 수 있다.
3) 스팬(Span)
두 벡터의 스팬(span)이란, 주어진 두 벡터 쌍의 linear combination으로 나타날 수 있는 결과 벡터들의 집합을 말한다.
즉, 두 벡터의 선형 결합 식
$$ a \mathbf{v} + b \mathbf{w} $$
에서 a와 b의 값을 모든 실수로 두었을 때, 가능한 결과 벡터들의 집합이다.
2차원 벡터 쌍의 스팬은 대부분 2차원 공간 전체가 되지만, \(\mathbf{v} = k \mathbf{w}\)와 같이, 한 벡터가 다른 벡터의 스케일링의 결과라면, 즉 두 벡터가 같은 선 상에 있다면 해당 선 상으로 span이 제한되고,
두 벡터가 모두 영벡터(zero vector)라면 span이 원점으로 제한된다.
3차원에서의 경우, 두 벡터의 span은 보통의 경우 원점을 지나는 특정 평면을 나타낸다.
마찬가지로 확장해서 생각해보면, 3차원에서 세 벡터의 span은 보통 3차원 공간 전체를 나타낸다.
이때 한 벡터가 나머지 두 벡터의 span 평면 상에 존재한다면, 세 벡터의 span 또한 평면으로 제한될 것이다.
4) 선형 종속, 선형 독립 (Linear Dependent, Linear Independent)
두 벡터의 span이 선인 경우, 세 벡터의 span이 평면(또는 선)인 경우를 달리 말하면
'불필요한(redundant) 벡터 때문에 그 벡터를 추가해도 span이 확장되지 않는다'라고 말할 수 있다.
이러한 경우 '벡터가 선형 종속이다'라고 표현한다.
다른 표현으로는, 벡터 중 (최소) 하나가 다른 벡터의 선형 조합으로 표현이 가능한 경우를 말한다.
즉, 세 벡터 \(\mathbf{u}, \mathbf{v}, \mathbf{w}\)에 대해
$$ \mathbf{u} = a \mathbf{v} + b \mathbf{w} $$
인 경우이다.
수식의 의미 자체로, 벡터 \(\mathbf{u}\) (좌변) 가 \(\mathbf{v}, \mathbf{w}\)의 span (우변) 상에 존재하는 경우이다.
반대로, 각각의 벡터가 나머지 벡터들의 span에 또 다른 차원을 추가해주는 게 가능하다면 '선형 독립적이다'라고 표현한다.
즉, 모든 벡터에 대해 각 벡터가 다른 벡터의 선형 조합으로 표현이 불가능한 경우이다.
그렇다면 이제, 기저(basis)의 기술적 정의가 이해가 될것이다.
The basis of a vector space is a set of linearly independent vectors that span the full space. (벡터 공간의 basis란, 전체 공간을 span하는 선형 독립인 벡터들의 집합이다.)
3. Linear Transformations and Matrices
1) 선형 변환 (Linear Transformation)
변환이란, 함수의 다른 말로 생각해볼 수 있다. 주어진 입력에 대해 어떠한 출력을 내는 것이다.
이를 선형 대수의 맥락에서 보면, 특정 벡터를 다른 벡터로 바꾸는 변환이 있을 것이다. 이러한 변환이 선형적으로 일어나는 것이 바로 선형 변환이다.
선형적으로 변환이 일어난다는 것은 다음을 뜻한다.
- 공간 상의 모든 선은 변환 이후에도 휘지 않고 직선이다.
- 원점은 변환 이후에도 그대로 원점이다.
이러한 선형 변환을 쉽게 표현하기 위해, 행렬을 사용한다.
xy 좌표계의 \(\hat{i}, \hat{j}\)가 선형 변환에 의해 어떻게 변하는지 살펴보면, 임의의 벡터를 표현하는 것이 쉬울 것이다.
\(\mathbf{v} = [-1, 2]^T\)를 선형 변환한다고 생각해보면, 선형 변환 이후에도 \(\hat{i}, \hat{j}\)에 의해 \(\mathbf{v}\)는 아래와 같이 똑같이 표현된다.
\(\mathbf{v} = -1 \hat{i} + 2 \hat{j} \)
\( \Rightarrow \; Transformed \; \mathbf{v} = -1 (Transformed \; \hat{i}) + 2 (Transformed \; \hat{j}) \)
이는 곧, 선형 변환 이후에도 선형 결합이 그대로 유지된다는 의미이기도 하다.
\(\mathbf{v} = [x y]^T\)에 대해
\(\hat{i} = \begin{bmatrix} 1 \\ 0 \end{bmatrix} \rightarrow \begin{bmatrix} 1 \\ -2 \end{bmatrix} \; , \; \hat{j} = \begin{bmatrix} 0 \\ 1 \end{bmatrix} \rightarrow \begin{bmatrix} 3 \\ 0 \end{bmatrix} \)과 같이 선형 변환이 일어날 때,
\(\mathbf{v} = \begin{bmatrix} x \\ y \end{bmatrix} \rightarrow x \begin{bmatrix} 1 \\ -2 \end{bmatrix} + y \begin{bmatrix} 3 \\ 0 \end{bmatrix} = \begin{bmatrix} 1x + 3y \\ -2x + 0y \end{bmatrix} \)
2) 선형 변환 행렬 (Linear Transformation Matrix)
이러한 변환 과정을 행렬을 사용하여 쉽게 나타낼 수 있다.
이렇게 바뀐 후의 \(\hat{i}\), \(\hat{j}\)를 그대로 Matrix로 표현하면 선형변환 행렬이 된다.
\( Transformation \; Matrix \; A = \begin{bmatrix} 1 & 3 \\ -2 & 0 \end{bmatrix} \)
이러한 선형변환 행렬을 단순히 임의의 벡터와 곱해주면 위에서와 같은 결과를 얻을 수 있다.
\( Transformed \; \mathbf{v} = A \begin{bmatrix} x \\ y \end{bmatrix} \)
이때, 만약 변형된 \(\hat{i}\)과 \(\hat{j}\)이 선형 종속이라면, 이러한 선형변환은 2차원 공간을 수축(squish)시켜 두 벡터가 놓인 선으로 만드는 것을 의미한다.
또한, 행렬을 곱한다는 것은 각 행렬의 선형 변환을 여러 번 적용한다는 의미로 해석할 수 있다.
이를 Composition of Linear Transformation (선형 변환의 조합)이라 한다.
주의할 점은, 행렬 A, B를 사용하여 벡터 v에 대해 B 변환을 진행한 후 A 변환을 진행하고 싶다면, 오른쪽에서 왼쪽 순서로 진행된다는 것이다. 따라서 수식으로 다음과 같이 나타낼 수 있다.
\( Transformed \; \mathbf{v} = A B \mathbf{v} \)
최근댓글