2021. 5. 6. 22:13ㆍ수학/선형대수
인공지능을 공부하면서 수학은 옵션이 아닌 필수가 되었다.
선형대수에 관한 지식이 없던 나로써는 기초를 먼저 배우고 싶었고,
수악중독이라는 유튜버 채널이 안성맞춤이었다.
이 글은 수악중독 선생님의 유튜브를 보고 공부하면서 요약한 글이다.
더 자세한 내용과, 동영상을 보면서 공부하고 싶다면 수악중독님의 유튜브를 참고하자!
1. 선형대수란,
선형대수학이란, Vector와 한 Vector Space에서 다른 Vector Space로의 변환을 다루는 수학이다.
여기서 Vector란, 연속 또는 이산 숫자의 배열이며, Vector Space는 Vector로 구성된 공간을 말한다.
Vector의 차원에 따라 부르는 호칭이 다른데
- 1차원 벡터를 스칼라(크기만 존재하고 방향이 존재하지 않음)
- 2차원 벡터를 행렬
- 다차원 벡터를 텐서(주로 데이터 저장 및 처리에 사용)
2. Orthogonal and Orthonormal Vector
Orthoganl Vector
본인을 내적했을 때 k가 나오고, 서로 다른 벡터와의 내적은 0이 되는 vector이다.
즉, 두 벡터는 직교 상태에 있고, 각 벡터의 크기는 1이 아니다.
Orthonormal Vector
본인을 내적했을 때 1이 나오고, 서로 다른 벡터와의 내적은 0이 되는 vector이다.
즉, 두 벡터는 직교 상태에 있고, 각 벡터는 단위벡터이다.
3. Linearly Combination(선형 결합)
벡터 v가 $c_1, c_2, ...., c_k$ 상수로 아래 수식처럼 구성된다면 그것을 선형 결합이라고 한다.
예를 들어, 3차원 공간($R^3$)의 모든 벡터는 다음 i, j, k벡터의 선형결합으로 표현 될 수 있다.
Space Spanning
S = ($v_1, v_2, ..., v_k$)이고, S의 벡터들을 이용하여 아래와 같이 선형결합한 W를 나타낼 수 있다면 이를 공간이 Span한다고 표현한다.
$$W = c_1v_1 + c_2v_2 + \dots + c_kv_k$$
즉, W는 S의 벡터들로 형성할 수 있는 공간, S의 벡터들의 모든 선형 조합으로 이루어진 공간이 되고,
이를 S가 W를 Span(포괄)한다라고 말하는 것이다.
**W 공간의 어떤 점이든 S의 벡터들의 선형조합으로 표현할 수 있음.
4. 벡터기저
아래의 조건을 만족하면 벡터기저라고 한다.
- $(v_1, v_2, \dots, v_k)$가 선형 독립이다.
- $(v_1, v_2, \dots, v_k)$가 W를 Span한다.
- 즉, W공간의 모든 벡터에 대해 $v_1, v_2, \dots, v_k$의 선형 결합으로 표현할 수 있음을 말한다.
5. Linearly Independant
$Y=AX$에서 $Y$가 주어진다면 항상 해 $X$가 존재할까?
위 식에 Vector Y=[1,0]을 넣어보면, 아무리 계산을 해보아도 해를 찾을 수 없다.
행렬 A부분을 보면 [1, 2]와 [2, 4]는 상수배 관계에 있어 사실상 같은 정보를 가지고 있다고 볼 수 있다.
연립방정식을 풀기 위해서는 미지수 개수만큼의 조건식이 필요한데,
위에서 얻을 수 있는 조건식은 1개뿐이므로 해를 구할 수 없는 것이다.
즉, 이 식은 항상 해를 가지는가? = 이 조건식들이 서로 독립인가? 이다.
Linearly Independant의 정의
다음 식을 만족할 때, Vector $v_1, v_2, \dots, v_n$은 서로 Linearly Independant하다 말한다.
$c_1v_1+c_2v_2+\dots+c_nv_n \neq 0 (except for c_1=c_2=\dots=c_n=0)$
바꾸어 말하면, 어떠한 한 vector $c_k$를 다른 벡터들의 조합으로 절대 만들 수 없다는 말이다.
(ex. $v_2, v_3, \dots, v_n$들을 아무리 조합해서 선형결합해봤자 절대 벡터 $v_1$을 만들 수 없다)
Linearly Independant한 조건식의 개수 구하기
1) 1행 1열의 원소를 기준으로, 아래 조건식들의 1열 원소가 모두 0이 되도록 빼준다.
2) 2행 2열의 원소를 기준으로, 아래 조건식들의 2열 원소가 모두 0이 되도록 빼준다.
$$\dots$$
3) 마지막 n행 n열의 원소를 기준으로, 아래 조건식들의 n열 원소가 모두 0이 되도록 빼준다.
이러한 과정을 통해, 영벡터가 되지 않은 Vector는 1행, 2행이고,
이 vector들이 바로 Linearly Independant한 조건식이다. 즉, 정답은 2개.
**영벡터: 모든 원소가 0인 벡터.
**Linearly Independant한 조건식의 수를 Rank라고 부른다.**Rank에는 좋은 성질이 있는데, 위 식의 matrix를 전치(transpose)하여도 똑같이 rank가 2가 나온다.
Vector Space
Vector Space란, N차원 공간에서의 모든 점들의 집합이다.
즉, 2차원 Vector Space는 2차원 공간의 모든 점들의 집합을 의미하고, 3차원 Vector Space는 3차원 공간의 모든 점들의 집합을 의미한다.
Vector Space는 선형대수학에서 다루는 여러 가지 Vector들이 존재하는 공간이다.선형대수는 쉽게 말해서, Vector와 Sub Space가 이 Vecor Space에서 어떻게 존재하는가를 다룬다고 보면 된다.
여기서 핵심은 각 Vector들이 같은 차원의 공간을 공유할 수도 있고, 다른 차원의 공간에 존재할 수도 있다는 것이다. 머신러닝에서 다루는 대부분의 Matrix는 다른 차원의 공간들 간의 관계이다.
같은 차원의 공간을 공유할 때
다음과 같은 식이 주어졌다고 하자.
위의 그림과 같이, X가 존재하는 Vector Space에서 Y가 존재하는 Vector Space로 1:1 매칭이 된다고 가정해 보자.
즉, X위의 한 점이 Y위의 한 점으로 매칭이 된다. 이 때 우리가 구하고자 하는 해는 한 개만 나오게 된다.
다른 차원의 공간을 공유할 때
위의 예와 다르게 X가 존재하는 Vector Space에서 Y가 존재하는 Vector Space로 다:1 매칭이 돤다고 가정하자.
즉, X위의 모든 점이 Y위의 한 점으로 매칭이 된다.
$(y_1, y_2)=(0,0)$을 만족하는 vector X는 무엇이 있을까?
$(0, 0, 0), (0, 1, 1), (0, 2, 2), \dots$
이전과 달리, 해가 하나만 존재하는 것이 아니라 집합으로 존재하게 된다.
즉, 다른 차원끼리 매칭을 하면 Y공간 한 점에, X공간의 해 집합이 매칭된다.
6. 고유 벡터와 고유 값(Eigen Vector & Eigen Value)
고유벡터와 고유 값은 선형대수에서 빠질 수 없는 존재이다.
도대체 무엇을 뜻하는지 알기가 어려운데 여기서 간단하게 정리해보겠다.
고유 벡터와 고유 값 문제란 즉,
$A^n\cdot x = b$의 해를 어떻게 구할 것인가가 핵심이다.
간단하게 A행렬을 n번 곱해준 다음, $H\cdot x=b$의 해를 구하면 된다 생각할 수 있다.
**$H=A^n$
이론상으로는 물론 가능하다. 하지만 실제로 행렬 곱을 여러 번하게 되면 연산량 관점에서 매우 좋지 않다.
**또한, 행렬의 크기가 커질 수록 연산량은 기하급수적으로 커짐.
여기서 Eigen Vector와 Eigen Value가 나오는 것이다.
이 둘의 핵심은 복잡한 matrix 곱셈을 scalar 곱셈으로 바꾸어 주는 것에 있다.
Eigen Vector와 Eigen Value의 정의
기하학적인 의미로는 v라는 벡터가 A에 의해 선형변환 되었을 때,
방향은 그대로인데 크기만 변하는 상태를 의미한다.
$$A\cdot v=\lambda\cdot v$$
$$v: Eigen vector, \lambda: Eigen value$$
이걸로 어떻게 위의 문제를 해결할까?
$$A^n\cdot x=A^{n-1}\cdot \lambda x=A^{n-2}\cdot \lambda^2x=\lambda^nx$$f
위와 같이 matrix를 곱할 때 소모되는 엄청난 연산량을 n번의 스칼라곱으로 바꾸어 줌으로써 대폭적으로 줄여준다.
**저 식이 가능한 것은 오직 x가 eigen vector일 경우이다.
위의 문제를 해결하기 위해, Vector x를 eigen vector의 조합으로 구해 풀면된다.
$$x=c_1v_1+c_2v_2 (단, v_1, v_2는 eigen vector)$$
$$A^nx=A^n(c_1v_1+c_2v_2)=c_1A^nv_1+c_2A^nv_2=c_1\lambda_1^nv_1+c_2\lambda_2^nv_2$$
$\lambda와 v$구하기
$det(A-\lambda I)=0$을 통해 구할 수 있다.
이를 통해 구한 $lambda$를 행렬식에 대입하여, 각 $\lambda$에 대응하는 eigen vector를 구할 수 있다.
Eigen value와 Eigen vector의 성질
- 고유 값과 고유 벡터는 정방행렬일 때만 정의된다.
- 고유 벡터들은 Unique하지 않다.
- $\lambda$값이 0이면 역행렬이 존재하지 않는다.
7. 행렬 대각화(Matrix Disgonalization)
다른 말로는 고유값 분해라고도 불린다.
행렬의 대각화를 통해 LU분해, QR분해와 같이 행렬을 고유값과 고유벡터로 구성된 부분 행렬로 분해할 수 있고, 이는 반복적인 선형방정식을 풀 때 굉장히 유용한 특성이 된다.
$P=[v_1, v_2, \dots, v_n]$이고 v가 모두 eigen vector일 때,
$$P^{-1}AP=\Lambda$$
위 수식을 만족하는 경우, 행렬 대각화가 가능하다고 말할 수 있다.
만약 행렬 A가 대각화가 가능하면 상응하는 eigen vector들은 $R^n$의 기저가 된다.
행렬 대각화 성립 조건
- 행렬 A의 eigen vector가 모두 선형 독립이면 대각화가 가능하다.
- 모든 벡터가 선형 독립이어야 역행렬이 존재하기 때문이다.
- eigen value가 각각 고유하면 선형 독립이다.
- eigen value가 고유하지 않으면 행렬 대각화가 될 수도 있고, 안될 수도 있다.
행렬 분해
행렬 A의 대각화가 가능하면 A는 행렬 분해를 할 수 있다.
이상으로 선형대수 기초 요약을 마치겠다.
선형대수를 이미 공부한 적이 있거나 수업을 들었다면 충분히 알만한 기초적인 내용일 것이다.
이 자료는 정말 선형대수를 처음 시작하여 대략의 기본을 갖추자라는 의미로 보는 것을 추천한다.
더 자세한 설명이 필요하다면 처음에 써둔 수악중독 유튜브를 보는 것도 추천한다.
**사용된 이미지에 대해서 출처를 같이 적었지만 문제가 된다면 삭제하겠습니다. 메일로 연락주세요.
If you any problem with Images uploaded, Contact me by email please. I will delete it.
'수학 > 선형대수' 카테고리의 다른 글
[선형대수] 독립과 span (0) | 2022.01.07 |
---|